*** 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
