| OLD | NEW |
| 1 /**************************************************************** | 1 /**************************************************************** |
| 2 * | 2 * |
| 3 * The author of this software is David M. Gay. | 3 * The author of this software is David M. Gay. |
| 4 * | 4 * |
| 5 * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. | 5 * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. |
| 6 * | 6 * |
| 7 * Permission to use, copy, modify, and distribute this software for any | 7 * Permission to use, copy, modify, and distribute this software for any |
| 8 * purpose without fee is hereby granted, provided that this entire notice | 8 * purpose without fee is hereby granted, provided that this entire notice |
| 9 * is included in all copies of any software which is or includes a copy | 9 * is included in all copies of any software which is or includes a copy |
| 10 * or modification of this software and in all copies of the supporting | 10 * or modification of this software and in all copies of the supporting |
| (...skipping 2579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2590 esign = 1; | 2590 esign = 1; |
| 2591 case '+': | 2591 case '+': |
| 2592 c = *++s; | 2592 c = *++s; |
| 2593 } | 2593 } |
| 2594 if (c >= '0' && c <= '9') { | 2594 if (c >= '0' && c <= '9') { |
| 2595 while(c == '0') | 2595 while(c == '0') |
| 2596 c = *++s; | 2596 c = *++s; |
| 2597 if (c > '0' && c <= '9') { | 2597 if (c > '0' && c <= '9') { |
| 2598 L = c - '0'; | 2598 L = c - '0'; |
| 2599 s1 = s; | 2599 s1 = s; |
| 2600 » » » » while((c = *++s) >= '0' && c <= '9') | 2600 » » » » while((c = *++s) >= '0' && c <= '9') { |
| 2601 L = 10*L + c - '0'; | 2601 L = 10*L + c - '0'; |
| 2602 if (L > DBL_MAX_10_EXP) |
| 2603 break; |
| 2604 } |
| 2602 if (s - s1 > 8 || L > 19999) | 2605 if (s - s1 > 8 || L > 19999) |
| 2603 /* Avoid confusion from exponents | 2606 /* Avoid confusion from exponents |
| 2604 * so large that e might overflow. | 2607 * so large that e might overflow. |
| 2605 */ | 2608 */ |
| 2606 e = 19999; /* safe for 16 bit ints */ | 2609 e = 19999; /* safe for 16 bit ints */ |
| 2607 else | 2610 else |
| 2608 e = (int)L; | 2611 e = (int)L; |
| 2609 if (esign) | 2612 if (esign) |
| 2610 e = -e; | 2613 e = -e; |
| 2611 } | 2614 } |
| (...skipping 1613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4225 #endif | 4228 #endif |
| 4226 Bfree(b); | 4229 Bfree(b); |
| 4227 *s = 0; | 4230 *s = 0; |
| 4228 *decpt = k + 1; | 4231 *decpt = k + 1; |
| 4229 if (rve) | 4232 if (rve) |
| 4230 *rve = s; | 4233 *rve = s; |
| 4231 return s0; | 4234 return s0; |
| 4232 } | 4235 } |
| 4233 | 4236 |
| 4234 } // namespace dmg_fp | 4237 } // namespace dmg_fp |
| OLD | NEW |