Am 15.11.2012 13:19, schrieb Nguyễn Thái Ngọc Duy: > On Thu, Nov 15, 2012 at 2:30 AM, René Scharfe <rene.scharfe@xxxxxxxxxxxxxx> wrote: > > Nevertheless, it's unfortunate that we have an isspace() that *almost* does > > what the widely known thing of the same name does. I'd shy away from > > changing git's version directly, because it's used more than a hundred times > > in the code, and estimating the impact of adding \v and \f to it. > > Perhaps renaming it to isgitspace() is a good first step, followed by > > adding a "standard" version of isspace() for wildmatch? > > There are just too many call sites of isspace() and there is a risk > of new call sites coming in independently. So I think keeping isspace() > as-is and using a different name for the standard version is probably > a better choice. After having a closer look, where wildmatch is actually used -- matching filenames -- and I've not yet seen \v or \f in a filename, it's possibly unnecessary to do anything about isspace() right now. (It's probably more an issue that filenames can be localized, and we only support unlocalized character classes.) > diff --git a/git-compat-util.h b/git-compat-util.h > index 02f48f6..d4c3fda 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -486,6 +486,7 @@ extern const unsigned char sane_ctype[256]; > #define sane_istest(x,mask) ((sane_ctype[(unsigned char)(x)] & (mask)) != 0) > #define isascii(x) (((x) & ~0x7f) == 0) > #define isspace(x) sane_istest(x,GIT_SPACE) > +#define isspace_posix(x) (((x) >= 9 && (x) <= 13) || (x) == 32) > #define isdigit(x) sane_istest(x,GIT_DIGIT) > #define isalpha(x) sane_istest(x,GIT_ALPHA) > #define isalnum(x) sane_istest(x,GIT_ALPHA | GIT_DIGIT) > @@ -499,7 +500,8 @@ extern const unsigned char sane_ctype[256]; > #define isxdigit(x) (hexval_table[x] != -1) This was from a previous patch, but maybe: "hexval_table[(unsigned char)x]" > #define isprint(x) (sane_istest(x, GIT_ALPHA | GIT_DIGIT | GIT_SPACE | \ > GIT_PUNCT | GIT_REGEX_SPECIAL | GIT_GLOB_SPECIAL | \ > - GIT_PATHSPEC_MAGIC)) > + GIT_PATHSPEC_MAGIC) && \ > + (x) >= 32) May I suggest the current is_print() implementation in master: #define isprint(x) ((x) >= 0x20 && (x) <= 0x7e) To summarize my opinion: I no longer see a reason to correct isspace() (unless somebody with an actual use case complains), and a more POSIXly isprint() is already in master. => Nothing to do. :) Regards Jan -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html