diff options
author | agc <agc@pkgsrc.org> | 1997-10-24 14:14:32 +0000 |
---|---|---|
committer | agc <agc@pkgsrc.org> | 1997-10-24 14:14:32 +0000 |
commit | c1af73ac789097b0369e7f83bbdc6d88b305bb80 (patch) | |
tree | 17704e85e052efa5bb5d390c0f0114e40811e48f /shells/tcsh/patches/patch-ad | |
parent | a623bb1503466be0e1a39148700ba3ef3d1359ca (diff) | |
download | pkgsrc-c1af73ac789097b0369e7f83bbdc6d88b305bb80.tar.gz |
Initial import of FreeBSD's shells ports category into NetBSD package
system.
Diffstat (limited to 'shells/tcsh/patches/patch-ad')
-rw-r--r-- | shells/tcsh/patches/patch-ad | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/shells/tcsh/patches/patch-ad b/shells/tcsh/patches/patch-ad new file mode 100644 index 00000000000..490b9f6b044 --- /dev/null +++ b/shells/tcsh/patches/patch-ad @@ -0,0 +1,83 @@ +*** glob.c.orig Sat Nov 13 03:40:56 1993 +--- glob.c Mon Dec 16 03:09:07 1996 +*************** +*** 139,144 **** +--- 139,165 ---- + #define M_SET META('[') + #define ismeta(c) (((c)&M_META) != 0) + ++ int collate_range_cmp (c1, c2) ++ int c1, c2; ++ { ++ #if defined(NLS) && defined(LC_COLLATE) ++ static char s1[2], s2[2]; ++ int ret; ++ #endif ++ ++ c1 &= 0xFF; ++ c2 &= 0xFF; ++ #if defined(NLS) && defined(LC_COLLATE) ++ if (c1 == c2) ++ return (0); ++ s1[0] = c1; ++ s2[0] = c2; ++ if ((ret = strcoll(s1, s2)) != 0) ++ return (ret); ++ #endif ++ return (c1 - c2); ++ } ++ + /* + * Need to dodge two kernel bugs: + * opendir("") != opendir(".") +*************** +*** 646,652 **** + ++pat; + while (((c = *pat++) & M_MASK) != M_END) { + if ((*pat & M_MASK) == M_RNG) { +! if (c <= k && k <= pat[1]) + ok = 1; + pat += 2; + } +--- 667,675 ---- + ++pat; + while (((c = *pat++) & M_MASK) != M_END) { + if ((*pat & M_MASK) == M_RNG) { +! if ( collate_range_cmp(CHAR(c), CHAR(k)) <= 0 +! && collate_range_cmp(CHAR(k), CHAR(pat[1])) <= 0 +! ) + ok = 1; + pat += 2; + } +*** sh.glob.c.orig Sun May 14 00:49:17 1995 +--- sh.glob.c Thu Oct 31 18:04:28 1996 +*************** +*** 85,90 **** +--- 85,91 ---- + static void pword __P((int)); + static void psave __P((int)); + static void backeval __P((Char *, bool)); ++ extern int collate_range_cmp __P((int, int)); + + static Char * + globtilde(nv, s) +*************** +*** 1038,1045 **** + if (match) + continue; + if (rangec == '-' && *(pattern-2) != '[' && *pattern != ']') { +! match = (stringc <= (*pattern & TRIM) && +! (*(pattern-2) & TRIM) <= stringc); + pattern++; + } + else +--- 1039,1047 ---- + if (match) + continue; + if (rangec == '-' && *(pattern-2) != '[' && *pattern != ']') { +! match = ( collate_range_cmp(stringc, *pattern & TRIM) <= 0 +! && collate_range_cmp(*(pattern-2) & TRIM, stringc) <= 0 +! ); + pattern++; + } + else |