Index: dw2gencfi.c =================================================================== RCS file: /cvs/src/src/gas/dw2gencfi.c,v retrieving revision 1.4 diff -c -r1.4 dw2gencfi.c *** dw2gencfi.c 21 May 2003 11:31:07 -0000 1.4 --- dw2gencfi.c 26 May 2003 19:59:36 -0000 *************** *** 141,151 **** long value; int retval = -1; int nchars; assert (param != NULL); SKIP_WHITESPACE (); ! if (sscanf (input_line_pointer, "%li%n", &value, &nchars) >= 1) { input_line_pointer += nchars; retval = 1; --- 141,172 ---- long value; int retval = -1; int nchars; + int negative; assert (param != NULL); SKIP_WHITESPACE (); ! /* First check for positive or negative hexadecimal numbers. */ ! if ((input_line_pointer[0] == '0' && input_line_pointer[1] == 'x') ! || (input_line_pointer[0] == '-' && input_line_pointer[1] == '0' ! && input_line_pointer[2] == 'x')) ! { ! if (input_line_pointer[0] == '-') ! { ! negative = 1; ! input_line_pointer++; ! } ! else ! negative = 0; ! if (sscanf (input_line_pointer, "0x%lx%n", &value, &nchars) >= 1) ! { ! input_line_pointer += nchars; ! retval = 1; ! if (negative) ! value = -value; ! } ! } ! else if (sscanf (input_line_pointer, "%li%n", &value, &nchars) >= 1) { input_line_pointer += nchars; retval = 1;