X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/7b00c0c43f52e9d27168e67a26aac19065cdb40c..ad3c9f2af814c84582fdd1649e49ec4f68572c5a:/regex/FreeBSD/regex2.h.patch diff --git a/regex/FreeBSD/regex2.h.patch b/regex/FreeBSD/regex2.h.patch deleted file mode 100644 index ec20caa..0000000 --- a/regex/FreeBSD/regex2.h.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- regex2.h.bsdnew 2009-11-11 11:29:04.000000000 -0800 -+++ regex2.h 2009-11-11 12:18:35.000000000 -0800 -@@ -120,14 +120,23 @@ typedef struct { - int nranges; - int invert; - int icase; -+ int *equiv_classes; -+ int nequiv_classes; - } cset; - -+#include "collate.h" -+ - static int --CHIN1(cset *cs, wint_t ch) -+CHIN1(cset *cs, wint_t ch, locale_t loc) - { - int i; - - assert(ch >= 0); -+ for (i = 0; i < cs->nequiv_classes; i++) -+ /* sadly, we can only deal with single characters from an -+ * equivalence class */ -+ if (__collate_equiv_match(cs->equiv_classes[i], NULL, 0, ch, NULL, 0, NULL, NULL, loc) > 0) -+ return (!cs->invert); - if (ch < NC) - return (((cs->bmp[ch >> 3] & (1 << (ch & 7))) != 0) ^ - cs->invert); -@@ -138,24 +147,24 @@ CHIN1(cset *cs, wint_t ch) - if (cs->ranges[i].min <= ch && ch <= cs->ranges[i].max) - return (!cs->invert); - for (i = 0; i < cs->ntypes; i++) -- if (iswctype(ch, cs->types[i])) -+ if (iswctype_l(ch, cs->types[i], loc)) - return (!cs->invert); - return (cs->invert); - } - - static __inline int --CHIN(cset *cs, wint_t ch) -+CHIN(cset *cs, wint_t ch, locale_t loc) - { - - assert(ch >= 0); -- if (ch < NC) -+ if (ch < NC && cs->nequiv_classes == 0) - return (((cs->bmp[ch >> 3] & (1 << (ch & 7))) != 0) ^ - cs->invert); - else if (cs->icase) -- return (CHIN1(cs, ch) || CHIN1(cs, towlower(ch)) || -- CHIN1(cs, towupper(ch))); -+ return (CHIN1(cs, ch, loc) || CHIN1(cs, towlower_l(ch, loc), loc) || -+ CHIN1(cs, towupper_l(ch, loc), loc)); - else -- return (CHIN1(cs, ch)); -+ return (CHIN1(cs, ch, loc)); - } - - /* -@@ -185,8 +194,9 @@ struct re_guts { - size_t nsub; /* copy of re_nsub */ - int backrefs; /* does it use back references? */ - sopno nplus; /* how deep does it nest +s? */ -+ locale_t loc; /* current locale */ - }; - - /* misc utilities */ --#define OUT (CHAR_MIN - 1) /* a non-character value */ --#define ISWORD(c) (iswalnum((uch)(c)) || (c) == '_') -+#define OUT (CHAR_MIN - 2) /* a non-character value */ -+#define ISWORD(c,l) (iswalnum_l((uch)(c), l) || (c) == '_')