From 0a24bd259aad26d1191fca26a34890a68e8c088c Mon Sep 17 00:00:00 2001 From: David Turner Date: Tue, 15 May 2007 10:54:10 +0000 Subject: [PATCH] do not use functions from , they are locale-dependent (and slower) --- ChangeLog | 8 ++++++++ include/freetype/config/ftstdlib.h | 9 --------- include/freetype/internal/ftobjs.h | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2376263b3..81b99b341 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-05-15 David Turner + + * include/freetype/config/ftstdlib.h, + include/freetype/internal/ftobjs.h: as suggested by Graham Asher, + ensure that ft_isalnum, ft_isdigit, etc... use hard-coded values + instead on relying on the locale-dependent functions provided by + + 2007-05-15 Graham Asher * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused diff --git a/include/freetype/config/ftstdlib.h b/include/freetype/config/ftstdlib.h index 82702d3cd..f923f3e4c 100644 --- a/include/freetype/config/ftstdlib.h +++ b/include/freetype/config/ftstdlib.h @@ -78,15 +78,6 @@ /**********************************************************************/ -#include - -#define ft_isalnum isalnum -#define ft_isdigit isdigit -#define ft_islower islower -#define ft_isupper isupper -#define ft_isxdigit isxdigit - - #include #define ft_memchr memchr diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index 2f497582c..5f9f9e858 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -89,6 +89,26 @@ FT_BEGIN_HEADER ft_highpow2( FT_UInt32 value ); + /* + * character classification functions. Since these are used to parse font + * files, we must not use those in which are locale-dependent !! + */ +#define ft_isdigit(x) (((unsigned)(x) - '0') < 10U) + +#define ft_isxdigit(x) ( ((unsigned)(x) - '0') < 10U || \ + ((unsigned)(x) - 'a') < 6U || \ + ((unsigned)(x) - 'A') < 6U ) + +#define ft_isupper(x) ( ((unsigned)(x) - 'A') < 26U ) + +#define ft_islower(x) ( ((unsigned)(x) - 'a') < 26U ) + +#define ft_isalpha(x) ( ft_is_upper(x) || ft_is_lower(x) ) + +#define ft_isalnum(x) ( ft_isdigit(x) || ft_isalpha(x) ) + + + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/