{
CHECK_CHAR_COERCE_INT (newval);
if (idx >= XSTRING_CHAR_LENGTH (array)) goto range_error;
- set_string_char (XSTRING (array), idx, XCHAR (newval));
+ set_string_char (XSTRING (array), idx, (unsigned char) XCHAR (newval));
bump_string_modiff (array);
}
else
p++;
#ifdef LISP_FLOAT_TYPE
- if (isfloat_string (p))
+ if (isfloat_string (p) && b == 10)
return make_float (atof (p));
#endif /* LISP_FLOAT_TYPE */