X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/311854206c50ea4207e7e1faa4efeb20f1bc8290..b5d655f7532a546b54809da387f7467d128a756b:/nls/FreeBSD/msgcat.c.patch?ds=inline diff --git a/nls/FreeBSD/msgcat.c.patch b/nls/FreeBSD/msgcat.c.patch index 6a531ba..e267fae 100644 --- a/nls/FreeBSD/msgcat.c.patch +++ b/nls/FreeBSD/msgcat.c.patch @@ -1,6 +1,6 @@ ---- /Network/Servers/hills/Volumes/capanna/josborne/work-area/PR-4416984/Libc/nls/FreeBSD/msgcat.c 2004-11-25 11:38:30.000000000 -0800 -+++ msgcat.c 2006-02-21 12:46:25.000000000 -0800 -@@ -45,16 +45,23 @@ +--- msgcat.c.orig 2007-02-07 01:54:34.000000000 -0800 ++++ msgcat.c 2007-02-07 02:03:33.000000000 -0800 +@@ -45,16 +45,22 @@ #include #include #include @@ -19,14 +19,13 @@ -#include "../locale/setlocale.h" /* for ENCODING_LEN */ +#include "setlocale.h" /* for ENCODING_LEN */ + -+#ifndef htonll -+#define htonll(x) OSSwapHostToBigInt64(x) ++#ifndef ntohll +#define ntohll(x) OSSwapBigToHostInt64(x) +#endif #define _DEFAULT_NLS_PATH "/usr/share/nls/%L/%N.cat:/usr/share/nls/%N/%L:/usr/local/share/nls/%L/%N.cat:/usr/local/share/nls/%N/%L" -@@ -87,7 +94,7 @@ +@@ -87,7 +93,7 @@ return (loadCat(name)); if (type == NL_CAT_LOCALE) @@ -35,7 +34,7 @@ else lang = getenv("LANG"); -@@ -210,21 +217,21 @@ +@@ -210,21 +216,21 @@ #define LOOKUP(PARENT, CHILD, ID, NUM, SET) { \ lo = 0; \ @@ -51,19 +50,19 @@ while (TRUE) { \ CHILD = PARENT->SET + cur; \ - if (CHILD->ID == ID) \ -+ if (htonl(CHILD->ID) == ID) \ ++ if (ntohl(CHILD->ID) == ID) \ break; \ - if (CHILD->ID < ID) { \ -+ if (htonl(CHILD->ID) < ID) { \ ++ if (ntohl(CHILD->ID) < ID) { \ lo = cur + 1; \ - if (hi > cur + (ID - CHILD->ID) + 1) \ - hi = cur + (ID - CHILD->ID) + 1; \ -+ if (hi > cur + (ID - htonl(CHILD->ID)) + 1) \ -+ hi = cur + (ID - htonl(CHILD->ID)) + 1; \ ++ if (hi > cur + (ID - ntohl(CHILD->ID)) + 1) \ ++ hi = cur + (ID - ntohl(CHILD->ID)) + 1; \ dir = 1; \ } else { \ hi = cur; \ -@@ -240,32 +247,28 @@ +@@ -240,32 +246,28 @@ } static MCSetT * @@ -73,7 +72,8 @@ +MCGetSet(MCCatT *cat, int setId) { MCSetT *set; - long lo, hi, cur, dir; +- long lo, hi, cur, dir; ++ int32_t lo, hi, cur, dir; if (cat == NULL || setId <= 0) return (NULL); @@ -91,118 +91,129 @@ +MCGetMsg(MCSetT *set, int msgId) { MCMsgT *msg; - long lo, hi, cur, dir; +- long lo, hi, cur, dir; ++ int32_t lo, hi, cur, dir; if (set == NULL || set->invalid || msgId <= 0) return (NULL); - LOOKUP(set, msg, msgId, numMsgs, u.msgs); -+ LOOKUP(set, msg, msgId, htonl(set->numMsgs), u.msgs); ++ LOOKUP(set, msg, msgId, ntohl(set->numMsgs), u.msgs); return (msg); } -@@ -377,27 +380,30 @@ +@@ -357,7 +359,7 @@ + MCHeaderT header; + MCCatT *cat; + MCSetT *set; +- long i; ++ int32_t i; + off_t nextSet; + int saverr; + +@@ -377,27 +379,30 @@ strncmp(header.magic, MCMagic, MCMagicLen) != 0) CORRUPT(); - if (header.majorVer != MCMajorVer) { -+ if (htonl(header.majorVer) != MCMajorVer) { ++ if (ntohl(header.majorVer) != MCMajorVer) { (void)fclose(cat->fp); free(cat); - (void)fprintf(stderr, "%s: %s is version %ld, we need %ld.\n", - _errowner, catpath, header.majorVer, MCMajorVer); -+ if (OSSwapInt32(htonl(header.majorVer)) == MCMajorVer) { ++ if (OSSwapInt32(ntohl(header.majorVer)) == MCMajorVer) { + (void)fprintf(stderr, "%s: %s is the wrong byte ordering.\n", _errowner, catpath); + } else { -+ (void)fprintf(stderr, "%s: %s is version %ld, we need %ld.\n", _errowner, catpath, htonl(header.majorVer), MCMajorVer); ++ (void)fprintf(stderr, "%s: %s is version %d, we need %d.\n", _errowner, catpath, (int)ntohl(header.majorVer), MCMajorVer); + } NLRETERR(EFTYPE); } - if (header.numSets <= 0) { -+ if (htonl(header.numSets) <= 0) { ++ if (ntohl(header.numSets) <= 0) { (void)fclose(cat->fp); free(cat); - (void)fprintf(stderr, "%s: %s has %ld sets!\n", +- (void)fprintf(stderr, "%s: %s has %ld sets!\n", - _errowner, catpath, header.numSets); -+ _errowner, catpath, htonl(header.numSets)); ++ (void)fprintf(stderr, "%s: %s has %d sets!\n", ++ _errowner, catpath, (int)ntohl(header.numSets)); NLRETERR(EFTYPE); } - cat->numSets = header.numSets; - if ((cat->sets = (MCSetT *)malloc(sizeof(MCSetT) * header.numSets)) == -+ cat->numSets = htonl(header.numSets); ++ cat->numSets = ntohl(header.numSets); + if ((cat->sets = (MCSetT *)malloc(sizeof(MCSetT) * cat->numSets)) == NULL) NOSPACE(); - nextSet = header.firstSet; -+ nextSet = htonll(header.firstSet); ++ nextSet = ntohll(header.firstSet); for (i = 0; i < cat->numSets; ++i) { if (fseeko(cat->fp, nextSet, SEEK_SET) == -1) { __nls_free_resources(cat, i); -@@ -414,7 +420,7 @@ +@@ -414,7 +419,7 @@ /* if it's invalid, skip over it (and backup 'i') */ if (set->invalid) { --i; - nextSet = set->nextSet; -+ nextSet = htonll(set->nextSet); ++ nextSet = ntohll(set->nextSet); continue; } #if 0 -@@ -432,7 +438,7 @@ +@@ -432,7 +437,7 @@ } else #endif set->invalid = TRUE; - nextSet = set->nextSet; -+ nextSet = htonll(set->nextSet); ++ nextSet = ntohll(set->nextSet); } #if 0 if (cat->loadType == MCLoadAll) { -@@ -453,11 +459,11 @@ +@@ -453,11 +458,11 @@ int saverr; /* Get the data */ - if (fseeko(cat->fp, set->data.off, SEEK_SET) == -1) -+ if (fseeko(cat->fp, htonll(set->data.off), SEEK_SET) == -1) ++ if (fseeko(cat->fp, ntohll(set->data.off), SEEK_SET) == -1) return (0); - if ((set->data.str = malloc(set->dataLen)) == NULL) -+ if ((set->data.str = malloc(htonl(set->dataLen))) == NULL) ++ if ((set->data.str = malloc(ntohl(set->dataLen))) == NULL) return (-1); - if (fread(set->data.str, set->dataLen, 1, cat->fp) != 1) { -+ if (fread(set->data.str, htonl(set->dataLen), 1, cat->fp) != 1) { ++ if (fread(set->data.str, ntohl(set->dataLen), 1, cat->fp) != 1) { saverr = errno; free(set->data.str); errno = saverr; -@@ -465,13 +471,13 @@ +@@ -465,13 +470,13 @@ } /* Get the messages */ - if (fseeko(cat->fp, set->u.firstMsg, SEEK_SET) == -1) { -+ if (fseeko(cat->fp, htonll(set->u.firstMsg), SEEK_SET) == -1) { ++ if (fseeko(cat->fp, ntohll(set->u.firstMsg), SEEK_SET) == -1) { saverr = errno; free(set->data.str); errno = saverr; return (0); } - if ((set->u.msgs = (MCMsgT *)malloc(sizeof(MCMsgT) * set->numMsgs)) == -+ if ((set->u.msgs = (MCMsgT *)malloc(sizeof(MCMsgT) * htonl(set->numMsgs))) == ++ if ((set->u.msgs = (MCMsgT *)malloc(sizeof(MCMsgT) * ntohl(set->numMsgs))) == NULL) { saverr = errno; free(set->data.str); -@@ -479,7 +485,7 @@ +@@ -479,7 +484,7 @@ return (-1); } - for (i = 0; i < set->numMsgs; ++i) { -+ for (i = 0; i < htonl(set->numMsgs); ++i) { ++ for (i = 0; i < ntohl(set->numMsgs); ++i) { msg = set->u.msgs + i; if (fread(msg, sizeof(*msg), 1, cat->fp) != 1) { saverr = errno; -@@ -492,7 +498,7 @@ +@@ -492,7 +497,7 @@ --i; continue; } - msg->msg.str = (char *)(set->data.str + msg->msg.off); -+ msg->msg.str = (char *)(set->data.str + htonll(msg->msg.off)); ++ msg->msg.str = (char *)(set->data.str + ntohll(msg->msg.off)); } set->invalid = FALSE; return (1);