Remove definition of ISDIGIT_LOCALE(c)
It wasn't being used at all. Let's remove it. Use isdigit(3) directly in comments that referenced it. Also, in those comments, remove an outdated reference to the fact that ISDIGIT_LOCALE(c) might evaluate its argument more than once, which could be true a few commits ago, until IN_CTYPE_DEFINITION(c) was removed. Previously, the definition for ISDIGIT_LOCALE(c) was: #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) # define IN_CTYPE_DOMAIN(c) 1 #else # define IN_CTYPE_DOMAIN(c) isascii(c) #endif #define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) Which could evaluate 'c' twice on pre-C89 systems (which I hope don't exist nowadays). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
This commit is contained in:
parent
2a41a72b8c
commit
44126d85ee
@ -22,8 +22,6 @@ typedef unsigned char _Bool;
|
|||||||
# define __bool_true_false_are_defined 1
|
# define __bool_true_false_are_defined 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ISDIGIT_LOCALE(c) isdigit (c)
|
|
||||||
|
|
||||||
/* Take care of NLS matters. */
|
/* Take care of NLS matters. */
|
||||||
#ifdef S_SPLINT_S
|
#ifdef S_SPLINT_S
|
||||||
extern char *setlocale(int categories, const char *locale);
|
extern char *setlocale(int categories, const char *locale);
|
||||||
|
@ -31,14 +31,11 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#define ISDIGIT_LOCALE(c) isdigit (c)
|
/* ISDIGIT differs from isdigit(3), 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 typically faster.
|
- It's typically faster.
|
||||||
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
|
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
|
||||||
only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT_LOCALE unless
|
only '0' through '9' are digits. Prefer ISDIGIT to isdigit(3) unless
|
||||||
it's important to use the locale's definition of `digit' even when the
|
it's important to use the locale's definition of `digit' even when the
|
||||||
host does not conform to Posix. */
|
host does not conform to Posix. */
|
||||||
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
|
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
|
||||||
|
Loading…
Reference in New Issue
Block a user