From 44126d85ee9a33d10e24da1a8b901f8145918d95 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Tue, 28 Dec 2021 19:38:58 +0100 Subject: [PATCH] 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 --- lib/defines.h | 2 -- libmisc/getdate.y | 7 ++----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/defines.h b/lib/defines.h index 6b1bb3cb..316cce5a 100644 --- a/lib/defines.h +++ b/lib/defines.h @@ -22,8 +22,6 @@ typedef unsigned char _Bool; # define __bool_true_false_are_defined 1 #endif -#define ISDIGIT_LOCALE(c) isdigit (c) - /* Take care of NLS matters. */ #ifdef S_SPLINT_S extern char *setlocale(int categories, const char *locale); diff --git a/libmisc/getdate.y b/libmisc/getdate.y index 4d282edc..82f1369c 100644 --- a/libmisc/getdate.y +++ b/libmisc/getdate.y @@ -31,14 +31,11 @@ #include #include -#define ISDIGIT_LOCALE(c) isdigit (c) - -/* ISDIGIT differs from ISDIGIT_LOCALE, as follows: +/* ISDIGIT differs from isdigit(3), as follows: - 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. 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 host does not conform to Posix. */ #define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)