--- Begin Message ---
Subject: |
dfa.c patch for systems with no locale support |
Date: |
Fri, 21 Mar 2014 13:40:17 +0200 |
User-agent: |
Heirloom mailx 12.5 6/20/10 |
Hi.
This turned up in testing on DJGPP. Thanks,
Arnold
--------------------------
diff --git a/dfa.c b/dfa.c
index 8771bbe..813c239 100644
--- a/dfa.c
+++ b/dfa.c
@@ -820,9 +820,13 @@ using_simple_locale (void)
static int unibyte_c = -1;
if (unibyte_c < 0)
{
+#ifdef LC_ALL
char *locale = setlocale (LC_ALL, NULL);
unibyte_c = (locale && (STREQ (locale, "C")
|| STREQ (locale, "POSIX")));
+#else
+ unibyte_c = 1;
+#endif
}
return unibyte_c;
}
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#17056: dfa.c patch for systems with no locale support |
Date: |
Sun, 23 Mar 2014 14:16:47 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
Aharon Robbins wrote:
See the original report below
I downloaded the DJGPP sources. LC_ALL is defined unless one compiles
as a freestanding environment, in which case neither LC_ALL nor
setlocale are declared. So my guess is that your correspondent is using
a freestanding environment somehow, and the patch that I suggested
should work. It's better to avoid #ifdefs inside functions so I
installed this into the grep master (see attached) and am marking this
as done; we can always resurrect it if my guess is wrong.
0001-dfa-port-to-freestanding-DJGPP-Bug-17056.patch
Description: Text document
--- End Message ---