45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
--- bc/execute.c
|
|
+++ bc/execute.c
|
|
@@ -638,19 +638,19 @@ push_constant (int (*in_char)(VOID), int conv_base)
|
|
}
|
|
|
|
/* Check for the special case of a single digit. */
|
|
- if (in_ch < 36)
|
|
+ if (in_ch < 16)
|
|
{
|
|
first_ch = in_ch;
|
|
in_ch = in_char();
|
|
- if (in_ch < 36 && first_ch >= conv_base)
|
|
+ if (in_ch < 16 && first_ch >= conv_base)
|
|
first_ch = conv_base - 1;
|
|
bc_int2num (&build, (int) first_ch);
|
|
}
|
|
|
|
/* Convert the integer part. */
|
|
- while (in_ch < 36)
|
|
+ while (in_ch < 16)
|
|
{
|
|
- if (in_ch < 36 && in_ch >= conv_base) in_ch = conv_base-1;
|
|
+ if (in_ch < 16 && in_ch >= conv_base) in_ch = conv_base-1;
|
|
bc_multiply (build, mult, &result, 0);
|
|
bc_int2num (&temp, (int) in_ch);
|
|
bc_add (result, temp, &build, 0);
|
|
@@ -665,7 +665,7 @@ push_constant (int (*in_char)(VOID), int conv_base)
|
|
divisor = bc_copy_num (_one_);
|
|
result = bc_copy_num (_zero_);
|
|
digits = 0;
|
|
- while (in_ch < 36)
|
|
+ while (in_ch < 16)
|
|
{
|
|
bc_multiply (result, mult, &result, 0);
|
|
bc_int2num (&temp, (int) in_ch);
|
|
@@ -673,7 +673,7 @@ push_constant (int (*in_char)(VOID), int conv_base)
|
|
bc_multiply (divisor, mult, &divisor, 0);
|
|
digits++;
|
|
in_ch = in_char();
|
|
- if (in_ch < 36 && in_ch >= conv_base) in_ch = conv_base-1;
|
|
+ if (in_ch < 16 && in_ch >= conv_base) in_ch = conv_base-1;
|
|
}
|
|
bc_divide (result, divisor, &result, digits);
|
|
bc_add (build, result, &build, 0);
|