diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | mpi-patches/eliminate-locale-dependencies | 45 | ||||
-rw-r--r-- | mpi-patches/series | 1 |
3 files changed, 53 insertions, 0 deletions
@@ -1,5 +1,12 @@ 2015-03-29 Kaz Kylheku <kaz@kylheku.com> + * mpi-patches/eliminate-locale-dependencies: New patch. + (s_mp_tovalue): Eliminate use of isupper, islower. + + * mpi-patches/series: Add patch. + +2015-03-29 Kaz Kylheku <kaz@kylheku.com> + New -n option. New "i" mode letter in file opening functions. * stream.c (struct stdio_mode): New struct type. diff --git a/mpi-patches/eliminate-locale-dependencies b/mpi-patches/eliminate-locale-dependencies new file mode 100644 index 00000000..6ab1b63a --- /dev/null +++ b/mpi-patches/eliminate-locale-dependencies @@ -0,0 +1,45 @@ +Index: mpi-1.8.6/mpi.c +=================================================================== +--- mpi-1.8.6.orig/mpi.c 2015-03-29 22:04:45.548237064 -0700 ++++ mpi-1.8.6/mpi.c 2015-03-30 08:17:35.252749065 -0700 +@@ -4693,17 +4693,22 @@ + int s_mp_tovalue(int ch, int r) + { + int val, xch; +- +- if(r > 36) +- xch = ch; ++ ++ /* For bases up to 36, the letters of the alphabet are ++ case-insensitive and denote digits valued 10 through 36. ++ For bases greater than 36, the lower case letters have ++ their own meaning and denote values past 36. */ ++ ++ if (r <= 36 && ch >= 'a' && ch <= 'z') ++ xch = ch - 'a' + 'A'; + else +- xch = toupper(ch); ++ xch = ch; + +- if(isdigit(xch)) ++ if(xch >= '0' && xch <= '9') + val = xch - '0'; +- else if(isupper(xch)) ++ else if(xch >= 'A' && xch <= 'Z') + val = xch - 'A' + 10; +- else if(islower(xch)) ++ else if(xch >= 'a' && xch <= 'z') + val = xch - 'a' + 36; + else if(xch == '+') + val = 62; +@@ -4741,8 +4746,8 @@ + + ch = s_dmap_1[val]; + +- if(r <= 36 && low) +- ch = tolower(ch); ++ if(low && val > 9 && r <= 36) ++ ch = ch - 'A' + 'a'; + + return ch; + diff --git a/mpi-patches/series b/mpi-patches/series index 4d56c94a..84d76abd 100644 --- a/mpi-patches/series +++ b/mpi-patches/series @@ -16,3 +16,4 @@ faster-square-root mpi-to-double fix-ctype-warnings add-bitops +eliminate-locale-dependencies |