Skip to content

Commit

Permalink
Better documentation for 'lctype.h'
Browse files Browse the repository at this point in the history
The old documentation said that 'ltolower' only works for alphabetic
characters. However, 'l_str2d' uses it (correctly) also on dots ('.').
  • Loading branch information
roberto-ieru committed Sep 3, 2020
1 parent 6bc0f13 commit 8496112
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions lctype.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/*
** WARNING: the functions defined here do not necessarily correspond
** to the similar functions in the standard C ctype.h. They are
** optimized for the specific needs of Lua
** optimized for the specific needs of Lua.
*/

#if !defined(LUA_USE_CTYPE)
Expand Down Expand Up @@ -61,13 +61,19 @@
#define lisprint(c) testprop(c, MASK(PRINTBIT))
#define lisxdigit(c) testprop(c, MASK(XDIGITBIT))


/*
** this 'ltolower' only works for alphabetic characters
** In ASCII, this 'ltolower' is correct for alphabetic characters and
** for '.'. That is enough for Lua needs. ('check_exp' ensures that
** the character either is an upper-case letter or is unchanged by
** the transformation, which holds for lower-case letters and '.'.)
*/
#define ltolower(c) ((c) | ('A' ^ 'a'))
#define ltolower(c) \
check_exp(('A' <= (c) && (c) <= 'Z') || (c) == ((c) | ('A' ^ 'a')), \
(c) | ('A' ^ 'a'))


/* two more entries for 0 and -1 (EOZ) */
/* one entry for each character and for -1 (EOZ) */
LUAI_DDEC(const lu_byte luai_ctype_[UCHAR_MAX + 2];)


Expand Down

0 comments on commit 8496112

Please sign in to comment.