*** mpf/set_str.c 25 Aug 2008 14:09:29 -0000 1.5 --- mpf/set_str.c 25 Aug 2008 14:13:11 -0000 1.6 *************** *** 3,8 **** of STRING is used to figure out the base. ! Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2005, 2007 Free ! Software Foundation, Inc. This file is part of the GNU MP Library. --- 3,8 ---- of STRING is used to figure out the base. ! Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2005, 2007, ! 2008 Free Software Foundation, Inc. This file is part of the GNU MP Library. *************** mpf_set_str (mpf_ptr x, const char *str, *** 275,280 **** { /* Scan and convert the exponent, in base exp_base. */ ! long dig, neg = -(long) ('-' == expptr[0]); ! expptr -= neg; /* conditional increment */ c = (unsigned char) *expptr++; dig = digit_value[c]; --- 275,283 ---- { /* Scan and convert the exponent, in base exp_base. */ ! long dig, minus, plusminus; ! c = (unsigned char) *expptr; ! minus = -(long) (c == '-'); ! plusminus = minus | -(long) (c == '+'); ! expptr -= plusminus; /* conditional increment */ c = (unsigned char) *expptr++; dig = digit_value[c]; *************** mpf_set_str (mpf_ptr x, const char *str, *** 294,298 **** dig = digit_value[c]; } ! exp_in_base = (exp_in_base ^ neg) - neg; /* conditional negation */ } else --- 297,301 ---- dig = digit_value[c]; } ! exp_in_base = (exp_in_base ^ minus) - minus; /* conditional negation */ } else