Commit 9b91d8f4 by Ulrich Drepper

Add _() and N_() macros.

From-SVN: r20209
parent fb2aebdb
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <ctype.h> #include <ctype.h>
/* Jim Meyering writes: /* Jim Meyering writes:
"... Some ctype macros are valid only for character codes that "... Some ctype macros are valid only for character codes that
isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
using /bin/cc or gcc but without giving an ansi option). So, all using /bin/cc or gcc but without giving an ansi option). So, all
...@@ -20,21 +20,21 @@ ...@@ -20,21 +20,21 @@
macros don't need to be guarded with references to isascii. ... macros don't need to be guarded with references to isascii. ...
Defining isascii to 1 should let any compiler worth its salt Defining isascii to 1 should let any compiler worth its salt
eliminate the && through constant folding." eliminate the && through constant folding."
Bruno Haible adds: Bruno Haible adds:
"... Furthermore, isupper(c) etc. have an undefined result if c is "... Furthermore, isupper(c) etc. have an undefined result if c is
outside the range -1 <= c <= 255. One is tempted to write isupper(c) outside the range -1 <= c <= 255. One is tempted to write isupper(c)
with c being of type `char', but this is wrong if c is an 8-bit with c being of type `char', but this is wrong if c is an 8-bit
character >= 128 which gets sign-extended to a negative value. character >= 128 which gets sign-extended to a negative value.
The macro ISUPPER protects against this as well." */ The macro ISUPPER protects against this as well." */
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1 # define IN_CTYPE_DOMAIN(c) 1
#else #else
# define IN_CTYPE_DOMAIN(c) isascii(c) # define IN_CTYPE_DOMAIN(c) isascii(c)
#endif #endif
#ifdef isblank #ifdef isblank
# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c)) # define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c))
#else #else
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
#else #else
# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (c) && !isspace (c)) # define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (c) && !isspace (c))
#endif #endif
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c)) #define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c)) #define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c))
#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c)) #define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c)) #define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c)) #define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c))
#define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) #define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
/* ISDIGIT differs from ISDIGIT_LOCALE, as follows: /* ISDIGIT differs from ISDIGIT_LOCALE, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char. - Its arg may be any int or unsigned int; it need not be an unsigned char.
- It's guaranteed to evaluate its argument exactly once. - It's guaranteed to evaluate its argument exactly once.
...@@ -267,4 +267,9 @@ void abort (); ...@@ -267,4 +267,9 @@ void abort ();
# endif # endif
#endif /* ! STRINGIFY */ #endif /* ! STRINGIFY */
/* These macros are here in preparation for the use of gettext in egcs. */
#define _(String) String
#define N_(String) String
#endif /* __GCC_SYSTEM_H__ */ #endif /* __GCC_SYSTEM_H__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment