Mercurial > hg > xemacs-beta
comparison src/lread.c @ 5088:207dad9e74f7
Signal an error upon reading 1/0.
Thanks to Ben Wing for finding the problem. See xemacs-patches message with ID
<870180fe1003021239k77d81203xb7b6f94ce83208b3@mail.gmail.com> and also
<d7ba68911002240223u36bb87c2nf4ccfde06b5519cc@mail.gmail.com> in xemacs-beta.
author | Jerry James <james@xemacs.org> |
---|---|
date | Tue, 02 Mar 2010 13:42:37 -0700 |
parents | 2ade80e8c640 |
children | a48ef26d87ee |
comparison
equal
deleted
inserted
replaced
5087:818eeb72e0fb | 5088:207dad9e74f7 |
---|---|
1980 { | 1980 { |
1981 /* GMP ratio_set_string has no effect with initial + sign */ | 1981 /* GMP ratio_set_string has no effect with initial + sign */ |
1982 if (*read_ptr == '+') | 1982 if (*read_ptr == '+') |
1983 read_ptr++; | 1983 read_ptr++; |
1984 ratio_set_string (scratch_ratio, read_ptr, 0); | 1984 ratio_set_string (scratch_ratio, read_ptr, 0); |
1985 ratio_canonicalize (scratch_ratio); | 1985 if (bignum_sign (ratio_denominator (scratch_ratio)) != 0) { |
1986 return Fcanonicalize_number (make_ratio_rt (scratch_ratio)); | 1986 ratio_canonicalize (scratch_ratio); |
1987 return Fcanonicalize_number (make_ratio_rt (scratch_ratio)); | |
1988 } | |
1989 return Fsignal (Qinvalid_read_syntax, | |
1990 list2 (build_msg_string | |
1991 ("Invalid ratio constant in reader"), | |
1992 make_string ((Ibyte *) read_ptr, len))); | |
1987 } | 1993 } |
1988 #endif | 1994 #endif |
1989 if (isfloat_string (read_ptr)) | 1995 if (isfloat_string (read_ptr)) |
1990 return make_float (atof (read_ptr)); | 1996 return make_float (atof (read_ptr)); |
1991 } | 1997 } |