summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/sort
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1995-10-28 19:29:58 +0000
committerache <ache@FreeBSD.org>1995-10-28 19:29:58 +0000
commit32ea54ed8e103c6d4738a48150bfd5f432cdb528 (patch)
tree288fbfb67afd2f50a509e82269c917cab652188d /gnu/usr.bin/sort
parent88603439e6de8261f410c8c7419fe0484e92eeed (diff)
downloadFreeBSD-src-32ea54ed8e103c6d4738a48150bfd5f432cdb528.zip
FreeBSD-src-32ea54ed8e103c6d4738a48150bfd5f432cdb528.tar.gz
Add setlocale LC_CTYPE
Fix ctype functions for 8bit charsets
Diffstat (limited to 'gnu/usr.bin/sort')
-rw-r--r--gnu/usr.bin/sort/sort.c6
-rw-r--r--gnu/usr.bin/sort/system.h36
2 files changed, 25 insertions, 17 deletions
diff --git a/gnu/usr.bin/sort/sort.c b/gnu/usr.bin/sort/sort.c
index 74d4b46..a6c7539 100644
--- a/gnu/usr.bin/sort/sort.c
+++ b/gnu/usr.bin/sort/sort.c
@@ -36,6 +36,9 @@
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
+#ifdef __FreeBSD__
+#include <locale.h>
+#endif
#include "system.h"
#include "long-options.h"
@@ -1459,6 +1462,9 @@ main (argc, argv)
struct sigaction oldact, newact;
#endif /* _POSIX_VERSION */
+#ifdef __FreeBSD__
+ (void) setlocale(LC_CTYPE, "");
+#endif
program_name = argv[0];
parse_long_options (argc, argv, usage);
diff --git a/gnu/usr.bin/sort/system.h b/gnu/usr.bin/sort/system.h
index 4aeaaea..4e2ec1e 100644
--- a/gnu/usr.bin/sort/system.h
+++ b/gnu/usr.bin/sort/system.h
@@ -173,28 +173,30 @@ extern int errno;
#include <ctype.h>
-#ifndef isascii
-#define isascii(c) 1
+#if !defined(isascii) || defined(__FreeBSD__)
+#define ISASCII(c) 1
+#else
+#define ISASCII(c) isascii (c)
#endif
#ifdef isblank
-#define ISBLANK(c) (isascii (c) && isblank (c))
+#define ISBLANK(c) (ISASCII (c) && isblank (c))
#else
#define ISBLANK(c) ((c) == ' ' || (c) == '\t')
#endif
#ifdef isgraph
-#define ISGRAPH(c) (isascii (c) && isgraph (c))
+#define ISGRAPH(c) (ISASCII (c) && isgraph (c))
#else
-#define ISGRAPH(c) (isascii (c) && isprint (c) && !isspace (c))
-#endif
-
-#define ISPRINT(c) (isascii (c) && isprint (c))
-#define ISDIGIT(c) (isascii (c) && isdigit (c))
-#define ISALNUM(c) (isascii (c) && isalnum (c))
-#define ISALPHA(c) (isascii (c) && isalpha (c))
-#define ISCNTRL(c) (isascii (c) && iscntrl (c))
-#define ISLOWER(c) (isascii (c) && islower (c))
-#define ISPUNCT(c) (isascii (c) && ispunct (c))
-#define ISSPACE(c) (isascii (c) && isspace (c))
-#define ISUPPER(c) (isascii (c) && isupper (c))
-#define ISXDIGIT(c) (isascii (c) && isxdigit (c))
+#define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
+#endif
+
+#define ISPRINT(c) (ISASCII (c) && isprint (c))
+#define ISDIGIT(c) (ISASCII (c) && isdigit (c))
+#define ISALNUM(c) (ISASCII (c) && isalnum (c))
+#define ISALPHA(c) (ISASCII (c) && isalpha (c))
+#define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
+#define ISLOWER(c) (ISASCII (c) && islower (c))
+#define ISPUNCT(c) (ISASCII (c) && ispunct (c))
+#define ISSPACE(c) (ISASCII (c) && isspace (c))
+#define ISUPPER(c) (ISASCII (c) && isupper (c))
+#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
OpenPOWER on IntegriCloud