{"thread":{"id":"2209","subject":"The MIT error","startedAt":"2005-10-24T18:57:15Z","lastAt":"2005-10-24T18:57:15Z","messageCount":1,"participants":["Morten Welinder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"10546","messageId":"118833cc0510241157j39d5ff2cib2ccea50d15210d4@mail.gmail.com","threadId":"2209","inReplyTo":null,"subject":"The MIT error","fromName":"Morten Welinder","fromEmail":"mwelinder@gmail.com","sentAt":"2005-10-24T18:57:15Z","receivedAt":"2005-10-24T18:57:15Z","isPatch":false,"sender":{"key":"mwelinder@gmail.com","avatar":null},"body":"After the isspace/BSD conflict I looked into what reserved symbols are\nbeing used by git.  Quite a few, it turns out.\n\n--M.\n\n\nThe C standard says you should not use identifiers matching:\n\n    (is|to)[a-z].*                         <-- such as isize\n    E[0-9A-Z].*                         <-- such as EMIT\n    str[a-z].*                              <-- such as strbuf\n    (PRI|SCN)[a-zX].*\n    LC_[A-Z].*\n    (SIG|SIG_)[A-Z].*\n    (uint|int).*_t\n    (UINT|INT).*_(MIN|MAX|C)\n    wcs[a-z].*\n\nThe three top ones are the easiest to violate.  While fixing the existing\nviolations is probably pointless, new code ought not make things worse.\n\nJust as isspace is reserved by the C implementation...\n\n       7.26.2  Character handling <ctype.h>\n\n       [#1]  Function  names that begin with either is or to, and a\n       lowercase letter (possibly followed by  any  combination  of\n       digits,  letters,  and  underscore)  may  be  added  to  the\n       declarations in the <ctype.h> header.\n\n[so there goes any use of \"isize\"], so are macro names EMIT, ETHIS,\nand ETHAT, at least when <errno.h> is included.\n\n      7.26.3  Errors <errno.h>\n\n       [#1] Macros that begin with E  and  a  digit  or  E  and  an\n       uppercase  letter  (possibly  followed by any combination of\n       digits,  letters,  and  underscore)  may  be  added  to  the\n       declarations in the <errno.h> header.\n\nquote.c:#undef EMIT\nquote.c:#define EMIT(x) ( (++len < n) && (*bp++ = (x)) )\nquote.c:#define EMITQ() EMIT('\\\\')\nserver-info.c:#define EMITTED   04\ntar-tree.c:#define EXT_HEADER_PATH              1\ntar-tree.c:#define EXT_HEADER_LINKPATH  2\nls-files.c:#define EXC_CMDL 0\nls-files.c:#define EXC_DIRS 1\nls-files.c:#define EXC_FILE 2\nepoch.h:#define EPOCH_H\nupdate-index.c:static inline void *ERR_PTR(long error)\n\n        7.26.10  General utilities <stdlib.h>\n\n       [#1] Function names that begin  with  str  and  a  lowercase\n       letter  (possibly  followed  by  any  combination of digits,\n       letters, and underscore) may be added to the declarations in\n       the <stdlib.h> header.\n"}]}