git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/2] ctype: implement islower/isupper macro

From
Namhyung Kim <namhyung.kim@lge.com>
Date
Feb 10, 2012, 02:13 UTC
Message-ID
<1328840011-19028-2-git-send-email-namhyung.kim@lge.com>
In-Reply-To
<1328840011-19028-1-git-send-email-namhyung.kim@lge.com>

The git-compat-util.h provides various ctype macros but lacks those two (along with others). Add them.

Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
---
 git-compat-util.h |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index 8f3972c..d3f8f17 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -463,6 +463,8 @@ static inline int has_extension(const char *filename, const char *ext)
 #undef isdigit
 #undef isalpha
 #undef isalnum
+#undef islower
+#undef isupper
 #undef tolower
 #undef toupper
 extern unsigned char sane_ctype[256];
@@ -478,6 +480,8 @@ extern unsigned char sane_ctype[256];
 #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)
+#define islower(x) sane_iscase(x, 1)
+#define isupper(x) sane_iscase(x, 0)
 #define is_glob_special(x) sane_istest(x,GIT_GLOB_SPECIAL)
 #define is_regex_special(x) sane_istest(x,GIT_GLOB_SPECIAL | GIT_REGEX_SPECIAL)
 #define tolower(x) sane_case((unsigned char)(x), 0x20)
@@ -491,6 +495,17 @@ static inline int sane_case(int x, int high)
 	return x;
 }
 
+static inline int sane_iscase(int x, int lower)
+{
+	if (!sane_istest(x, GIT_ALPHA))
+		return 0;
+
+	if (lower)
+		return (x & 0x20) != 0;
+	else
+		return (x & 0x20) == 0;
+}
+
 static inline int strtoul_ui(char const *s, int base, unsigned int *result)
 {
 	unsigned long ul;
-- 
1.7.9
Previous: Namhyung KimNext: Junio C Hamano
Message 2 of 6 in “ctype.c only wants git-compat-util.h”
  1. 1/2 ctype.c only wants git-compat-util.hNamhyung Kim, Feb 10, 2012
  2. 2/2 ctype: implement islower/isupper macroNamhyung Kim, Feb 10, 2012
  3. Junio C HamanoFeb 10, 2012
  4. 김남형Feb 10, 2012
  5. Junio C HamanoFeb 10, 2012
  6. Namhyung KimFeb 10, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.