summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-freebsd/freebsd-bin/files/freebsd-bin-6.2-sh-cclass.patch')
-rw-r--r--sys-freebsd/freebsd-bin/files/freebsd-bin-6.2-sh-cclass.patch97
1 files changed, 0 insertions, 97 deletions
diff --git a/sys-freebsd/freebsd-bin/files/freebsd-bin-6.2-sh-cclass.patch b/sys-freebsd/freebsd-bin/files/freebsd-bin-6.2-sh-cclass.patch
deleted file mode 100644
index 0de4372209f4..000000000000
--- a/sys-freebsd/freebsd-bin/files/freebsd-bin-6.2-sh-cclass.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-Allow sh to use POSIX character classes, as specified in
-sections 2.13.1 and 9.3.5
-http://www.freebsd.org/cgi/query-pr.cgi?pr=116826
-
-diff -u a/sh/expand.c b/sh/expand.c
---- a/sh/expand.c 2005-11-06 20:39:47 +0000
-+++ b/sh/expand.c 2007-10-02 13:46:28 +0100
-@@ -1320,6 +1320,42 @@
- }
-
-
-+STATIC int ccmatch(char *p, int chr, char **r)
-+{
-+ static const struct class {
-+ char name[10];
-+ int (*fn)(int);
-+ } classes[] = {
-+ { .name = ":alnum:]", .fn = isalnum },
-+ { .name = ":cntrl:]", .fn = iscntrl },
-+ { .name = ":lower:]", .fn = islower },
-+ { .name = ":space:]", .fn = isspace },
-+ { .name = ":alpha:]", .fn = isalpha },
-+ { .name = ":digit:]", .fn = isdigit },
-+ { .name = ":print:]", .fn = isprint },
-+ { .name = ":upper:]", .fn = isupper },
-+ { .name = ":blank:]", .fn = isblank },
-+ { .name = ":graph:]", .fn = isgraph },
-+ { .name = ":punct:]", .fn = ispunct },
-+ { .name = ":xdigit:]", .fn = isxdigit },
-+ };
-+ const struct class *class, *end;
-+ char *q;
-+
-+ end = classes + sizeof(classes) / sizeof(classes[0]);
-+ for (class = classes; class < end; class++) {
-+ q = prefix(class->name, p);
-+ if (!q)
-+ continue;
-+ *r = q;
-+ return class->fn(chr);
-+ }
-+
-+ *r = 0;
-+ return 0;
-+}
-+
-+
- STATIC int
- pmatch(char *pattern, char *string, int squoted)
- {
-@@ -1405,6 +1441,15 @@
- continue;
- if (c == CTLESC)
- c = *p++;
-+ else if (c == '[') {
-+ char *r;
-+
-+ found |= ccmatch(p, chr, &r);
-+ if (r) {
-+ p = r;
-+ continue;
-+ }
-+ }
- if (*p == '-' && p[1] != ']') {
- p++;
- while (*p == CTLQUOTEMARK)
-diff -u a/sh/mystring.c b/sh/mystring.c
---- a/sh/mystring.c 2004-04-06 21:06:51 +0100
-+++ b/sh/mystring.c 2007-10-02 13:45:31 +0100
-@@ -88,14 +88,14 @@
- * prefix -- see if pfx is a prefix of string.
- */
-
--int
-+char *
- prefix(const char *pfx, const char *string)
- {
- while (*pfx) {
- if (*pfx++ != *string++)
- return 0;
- }
-- return 1;
-+ return (char *)string;
- }
-
-
-diff -u a/sh/mystring.h b/sh/mystring.h
---- a/sh/mystring.h 2004-04-06 21:06:51 +0100
-+++ b/sh/mystring.h 2007-10-02 13:45:35 +0100
-@@ -36,7 +36,7 @@
- #include <string.h>
-
- void scopyn(const char *, char *, int);
--int prefix(const char *, const char *);
-+char *prefix(const char *, const char *);
- int number(const char *);
- int is_number(const char *);