summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--mpi-patches/eliminate-locale-dependencies45
-rw-r--r--mpi-patches/series1
3 files changed, 53 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e3652cdd..541c8d9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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