mirror of
				https://github.com/Proxmark/proxmark3.git
				synced 2025-10-31 00:17:20 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| ** $Id: lctype.h,v 1.12 2011/07/15 12:50:29 roberto Exp $
 | |
| ** 'ctype' functions for Lua
 | |
| ** See Copyright Notice in lua.h
 | |
| */
 | |
| 
 | |
| #ifndef lctype_h
 | |
| #define lctype_h
 | |
| 
 | |
| #include "lua.h"
 | |
| 
 | |
| 
 | |
| /*
 | |
| ** 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
 | |
| */
 | |
| 
 | |
| #if !defined(LUA_USE_CTYPE)
 | |
| 
 | |
| #if 'A' == 65 && '0' == 48
 | |
| /* ASCII case: can use its own tables; faster and fixed */
 | |
| #define LUA_USE_CTYPE	0
 | |
| #else
 | |
| /* must use standard C ctype */
 | |
| #define LUA_USE_CTYPE	1
 | |
| #endif
 | |
| 
 | |
| #endif
 | |
| 
 | |
| 
 | |
| #if !LUA_USE_CTYPE	/* { */
 | |
| 
 | |
| #include <limits.h>
 | |
| 
 | |
| #include "llimits.h"
 | |
| 
 | |
| 
 | |
| #define ALPHABIT	0
 | |
| #define DIGITBIT	1
 | |
| #define PRINTBIT	2
 | |
| #define SPACEBIT	3
 | |
| #define XDIGITBIT	4
 | |
| 
 | |
| 
 | |
| #define MASK(B)		(1 << (B))
 | |
| 
 | |
| 
 | |
| /*
 | |
| ** add 1 to char to allow index -1 (EOZ)
 | |
| */
 | |
| #define testprop(c,p)	(luai_ctype_[(c)+1] & (p))
 | |
| 
 | |
| /*
 | |
| ** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_'
 | |
| */
 | |
| #define lislalpha(c)	testprop(c, MASK(ALPHABIT))
 | |
| #define lislalnum(c)	testprop(c, (MASK(ALPHABIT) | MASK(DIGITBIT)))
 | |
| #define lisdigit(c)	testprop(c, MASK(DIGITBIT))
 | |
| #define lisspace(c)	testprop(c, MASK(SPACEBIT))
 | |
| #define lisprint(c)	testprop(c, MASK(PRINTBIT))
 | |
| #define lisxdigit(c)	testprop(c, MASK(XDIGITBIT))
 | |
| 
 | |
| /*
 | |
| ** this 'ltolower' only works for alphabetic characters
 | |
| */
 | |
| #define ltolower(c)	((c) | ('A' ^ 'a'))
 | |
| 
 | |
| 
 | |
| /* two more entries for 0 and -1 (EOZ) */
 | |
| LUAI_DDEC const lu_byte luai_ctype_[UCHAR_MAX + 2];
 | |
| 
 | |
| 
 | |
| #else			/* }{ */
 | |
| 
 | |
| /*
 | |
| ** use standard C ctypes
 | |
| */
 | |
| 
 | |
| #include <ctype.h>
 | |
| 
 | |
| 
 | |
| #define lislalpha(c)	(isalpha(c) || (c) == '_')
 | |
| #define lislalnum(c)	(isalnum(c) || (c) == '_')
 | |
| #define lisdigit(c)	(isdigit(c))
 | |
| #define lisspace(c)	(isspace(c))
 | |
| #define lisprint(c)	(isprint(c))
 | |
| #define lisxdigit(c)	(isxdigit(c))
 | |
| 
 | |
| #define ltolower(c)	(tolower(c))
 | |
| 
 | |
| #endif			/* } */
 | |
| 
 | |
| #endif
 | |
| 
 |