⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handy.h

📁 MSYS在windows下模拟了一个类unix的终端
💻 H
📖 第 1 页 / 共 2 页
字号:
	((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) =='\r' || (c) == '\f')#define isPSXSPC(c)	(isSPACE(c) || (c) == '\v')#define isBLANK(c)	((c) == ' ' || (c) == '\t')#define isDIGIT(c)	((c) >= '0' && (c) <= '9')#ifdef EBCDIC    /* In EBCDIC we do not do locales: therefore() isupper() is fine. */#   define isUPPER(c)	isupper(c)#   define isLOWER(c)	islower(c)#   define isALNUMC(c)	isalnum(c)#   define isASCII(c)	isascii(c)#   define isCNTRL(c)	iscntrl(c)#   define isGRAPH(c)	isgraph(c)#   define isPRINT(c)	isprint(c)#   define isPUNCT(c)	ispunct(c)#   define isXDIGIT(c)	isxdigit(c)#   define toUPPER(c)	toupper(c)#   define toLOWER(c)	tolower(c)#else#   define isUPPER(c)	((c) >= 'A' && (c) <= 'Z')#   define isLOWER(c)	((c) >= 'a' && (c) <= 'z')#   define isALNUMC(c)	(isALPHA(c) || isDIGIT(c))#   define isASCII(c)	((c) <= 127)#   define isCNTRL(c)	((c) < ' ')#   define isGRAPH(c)	(isALNUM(c) || isPUNCT(c))#   define isPRINT(c)	(((c) > 32 && (c) < 127) || isSPACE(c))#   define isPUNCT(c)	(((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64)  || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))#   define isXDIGIT(c)  (isdigit(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))#   define toUPPER(c)	(isLOWER(c) ? (c) - ('a' - 'A') : (c))#   define toLOWER(c)	(isUPPER(c) ? (c) + ('a' - 'A') : (c))#endif#ifdef USE_NEXT_CTYPE#  define isALNUM_LC(c) \	(NXIsAlNum((unsigned int)(c)) || (char)(c) == '_')#  define isIDFIRST_LC(c) \	(NXIsAlpha((unsigned int)(c)) || (char)(c) == '_')#  define isALPHA_LC(c)		NXIsAlpha((unsigned int)(c))#  define isSPACE_LC(c)		NXIsSpace((unsigned int)(c))#  define isDIGIT_LC(c)		NXIsDigit((unsigned int)(c))#  define isUPPER_LC(c)		NXIsUpper((unsigned int)(c))#  define isLOWER_LC(c)		NXIsLower((unsigned int)(c))#  define isALNUMC_LC(c)	NXIsAlNum((unsigned int)(c))#  define isCNTRL_LC(c)		NXIsCntrl((unsigned int)(c))#  define isGRAPH_LC(c)		NXIsGraph((unsigned int)(c))#  define isPRINT_LC(c)		NXIsPrint((unsigned int)(c))#  define isPUNCT_LC(c)		NXIsPunct((unsigned int)(c))#  define toUPPER_LC(c)		NXToUpper((unsigned int)(c))#  define toLOWER_LC(c)		NXToLower((unsigned int)(c))#else /* !USE_NEXT_CTYPE */#  if defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))#    define isALNUM_LC(c)   (isalnum((unsigned char)(c)) || (char)(c) == '_')#    define isIDFIRST_LC(c) (isalpha((unsigned char)(c)) || (char)(c) == '_')#    define isALPHA_LC(c)	isalpha((unsigned char)(c))#    define isSPACE_LC(c)	isspace((unsigned char)(c))#    define isDIGIT_LC(c)	isdigit((unsigned char)(c))#    define isUPPER_LC(c)	isupper((unsigned char)(c))#    define isLOWER_LC(c)	islower((unsigned char)(c))#    define isALNUMC_LC(c)	isalnum((unsigned char)(c))#    define isCNTRL_LC(c)	iscntrl((unsigned char)(c))#    define isGRAPH_LC(c)	isgraph((unsigned char)(c))#    define isPRINT_LC(c)	isprint((unsigned char)(c))#    define isPUNCT_LC(c)	ispunct((unsigned char)(c))#    define toUPPER_LC(c)	toupper((unsigned char)(c))#    define toLOWER_LC(c)	tolower((unsigned char)(c))#  else#    define isALNUM_LC(c) 	(isascii(c) && (isalnum(c) || (c) == '_'))#    define isIDFIRST_LC(c)	(isascii(c) && (isalpha(c) || (c) == '_'))#    define isALPHA_LC(c)	(isascii(c) && isalpha(c))#    define isSPACE_LC(c)	(isascii(c) && isspace(c))#    define isDIGIT_LC(c)	(isascii(c) && isdigit(c))#    define isUPPER_LC(c)	(isascii(c) && isupper(c))#    define isLOWER_LC(c)	(isascii(c) && islower(c))#    define isALNUMC_LC(c)	(isascii(c) && isalnum(c))#    define isCNTRL_LC(c)	(isascii(c) && iscntrl(c))#    define isGRAPH_LC(c)	(isascii(c) && isgraph(c))#    define isPRINT_LC(c)	(isascii(c) && isprint(c))#    define isPUNCT_LC(c)	(isascii(c) && ispunct(c))#    define toUPPER_LC(c)	toupper(c)#    define toLOWER_LC(c)	tolower(c)#  endif#endif /* USE_NEXT_CTYPE */#define isPSXSPC_LC(c)		(isSPACE_LC(c) || (c) == '\v')#define isBLANK_LC(c)		isBLANK(c) /* could be wrong */#define isALNUM_uni(c)		is_uni_alnum(c)#define isIDFIRST_uni(c)	is_uni_idfirst(c)#define isALPHA_uni(c)		is_uni_alpha(c)#define isSPACE_uni(c)		is_uni_space(c)#define isDIGIT_uni(c)		is_uni_digit(c)#define isUPPER_uni(c)		is_uni_upper(c)#define isLOWER_uni(c)		is_uni_lower(c)#define isALNUMC_uni(c)		is_uni_alnumc(c)#define isASCII_uni(c)		is_uni_ascii(c)#define isCNTRL_uni(c)		is_uni_cntrl(c)#define isGRAPH_uni(c)		is_uni_graph(c)#define isPRINT_uni(c)		is_uni_print(c)#define isPUNCT_uni(c)		is_uni_punct(c)#define isXDIGIT_uni(c)		is_uni_xdigit(c)#define toUPPER_uni(c)		to_uni_upper(c)#define toTITLE_uni(c)		to_uni_title(c)#define toLOWER_uni(c)		to_uni_lower(c)#define isPSXSPC_uni(c)		(isSPACE_uni(c) ||(c) == '\f')#define isBLANK_uni(c)		isBLANK(c) /* could be wrong */#define isALNUM_LC_uni(c)	(c < 256 ? isALNUM_LC(c) : is_uni_alnum_lc(c))#define isIDFIRST_LC_uni(c)	(c < 256 ? isIDFIRST_LC(c) : is_uni_idfirst_lc(c))#define isALPHA_LC_uni(c)	(c < 256 ? isALPHA_LC(c) : is_uni_alpha_lc(c))#define isSPACE_LC_uni(c)	(c < 256 ? isSPACE_LC(c) : is_uni_space_lc(c))#define isDIGIT_LC_uni(c)	(c < 256 ? isDIGIT_LC(c) : is_uni_digit_lc(c))#define isUPPER_LC_uni(c)	(c < 256 ? isUPPER_LC(c) : is_uni_upper_lc(c))#define isLOWER_LC_uni(c)	(c < 256 ? isLOWER_LC(c) : is_uni_lower_lc(c))#define isALNUMC_LC_uni(c)	(c < 256 ? isALNUMC_LC(c) : is_uni_alnumc_lc(c))#define isCNTRL_LC_uni(c)	(c < 256 ? isCNTRL_LC(c) : is_uni_cntrl_lc(c))#define isGRAPH_LC_uni(c)	(c < 256 ? isGRAPH_LC(c) : is_uni_graph_lc(c))#define isPRINT_LC_uni(c)	(c < 256 ? isPRINT_LC(c) : is_uni_print_lc(c))#define isPUNCT_LC_uni(c)	(c < 256 ? isPUNCT_LC(c) : is_uni_punct_lc(c))#define toUPPER_LC_uni(c)	(c < 256 ? toUPPER_LC(c) : to_uni_upper_lc(c))#define toTITLE_LC_uni(c)	(c < 256 ? toUPPER_LC(c) : to_uni_title_lc(c))#define toLOWER_LC_uni(c)	(c < 256 ? toLOWER_LC(c) : to_uni_lower_lc(c))#define isPSXSPC_LC_uni(c)	(isSPACE_LC_uni(c) ||(c) == '\f')#define isBLANK_LC_uni(c)	isBLANK(c) /* could be wrong */#define isALNUM_utf8(p)		is_utf8_alnum(p)#define isIDFIRST_utf8(p)	is_utf8_idfirst(p)#define isALPHA_utf8(p)		is_utf8_alpha(p)#define isSPACE_utf8(p)		is_utf8_space(p)#define isDIGIT_utf8(p)		is_utf8_digit(p)#define isUPPER_utf8(p)		is_utf8_upper(p)#define isLOWER_utf8(p)		is_utf8_lower(p)#define isALNUMC_utf8(p)	is_utf8_alnumc(p)#define isASCII_utf8(p)		is_utf8_ascii(p)#define isCNTRL_utf8(p)		is_utf8_cntrl(p)#define isGRAPH_utf8(p)		is_utf8_graph(p)#define isPRINT_utf8(p)		is_utf8_print(p)#define isPUNCT_utf8(p)		is_utf8_punct(p)#define isXDIGIT_utf8(p)	is_utf8_xdigit(p)#define toUPPER_utf8(p)		to_utf8_upper(p)#define toTITLE_utf8(p)		to_utf8_title(p)#define toLOWER_utf8(p)		to_utf8_lower(p)#define isPSXSPC_utf8(c)	(isSPACE_utf8(c) ||(c) == '\f')#define isBLANK_utf8(c)		isBLANK(c) /* could be wrong */#define isALNUM_LC_utf8(p)	isALNUM_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isIDFIRST_LC_utf8(p)	isIDFIRST_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isALPHA_LC_utf8(p)	isALPHA_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isSPACE_LC_utf8(p)	isSPACE_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isDIGIT_LC_utf8(p)	isDIGIT_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isUPPER_LC_utf8(p)	isUPPER_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isLOWER_LC_utf8(p)	isLOWER_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isALNUMC_LC_utf8(p)	isALNUMC_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isCNTRL_LC_utf8(p)	isCNTRL_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isGRAPH_LC_utf8(p)	isGRAPH_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isPRINT_LC_utf8(p)	isPRINT_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isPUNCT_LC_utf8(p)	isPUNCT_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define toUPPER_LC_utf8(p)	toUPPER_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define toTITLE_LC_utf8(p)	toTITLE_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define toLOWER_LC_utf8(p)	toLOWER_LC_uni(utf8_to_uv(p, UTF8_MAXLEN, 0, 0))#define isPSXSPC_LC_utf8(c)	(isSPACE_LC_utf8(c) ||(c) == '\f')#define isBLANK_LC_utf8(c)	isBLANK(c) /* could be wrong */#ifdef EBCDIC#  define toCTRL(c)	Perl_ebcdic_control(c)#else  /* This conversion works both ways, strangely enough. */#  define toCTRL(c)    (toUPPER(c) ^ 64)#endif/* Line numbers are unsigned, 16 bits. */typedef U16 line_t;#ifdef lint#define NOLINE ((line_t)0)#else#define NOLINE ((line_t) 65535)#endif/*   XXX LEAKTEST doesn't really work in perl5.  There are direct calls to   safemalloc() in the source, so LEAKTEST won't pick them up.   (The main "offenders" are extensions.)   Further, if you try LEAKTEST, you'll also end up calling   Safefree, which might call safexfree() on some things that weren't   malloced with safexmalloc.  The correct "fix" to this, if anyone   is interested, is to ensure that all calls go through the New and   Renew macros.	--Andy Dougherty		August 1996*//*=for apidoc Am|SV*|NEWSV|int id|STRLEN lenCreates a new SV.  A non-zero C<len> parameter indicates the number ofbytes of preallocated string space the SV should have.  An extra byte for atailing NUL is also reserved.  (SvPOK is not set for the SV even if stringspace is allocated.)  The reference count for the new SV is set to 1.C<id> is an integer id between 0 and 1299 (used to identify leaks).=for apidoc Am|void|New|int id|void* ptr|int nitems|typeThe XSUB-writer's interface to the C C<malloc> function.=for apidoc Am|void|Newc|int id|void* ptr|int nitems|type|castThe XSUB-writer's interface to the C C<malloc> function, withcast.=for apidoc Am|void|Newz|int id|void* ptr|int nitems|typeThe XSUB-writer's interface to the C C<malloc> function.  The allocatedmemory is zeroed with C<memzero>.=for apidoc Am|void|Renew|void* ptr|int nitems|typeThe XSUB-writer's interface to the C C<realloc> function.=for apidoc Am|void|Renewc|void* ptr|int nitems|type|castThe XSUB-writer's interface to the C C<realloc> function, withcast.=for apidoc Am|void|Safefree|void* ptrThe XSUB-writer's interface to the C C<free> function.=for apidoc Am|void|Move|void* src|void* dest|int nitems|typeThe XSUB-writer's interface to the C C<memmove> function.  The C<src> is thesource, C<dest> is the destination, C<nitems> is the number of items, and C<type> isthe type.  Can do overlapping moves.  See also C<Copy>.=for apidoc Am|void|Copy|void* src|void* dest|int nitems|typeThe XSUB-writer's interface to the C C<memcpy> function.  The C<src> is thesource, C<dest> is the destination, C<nitems> is the number of items, and C<type> isthe type.  May fail on overlapping copies.  See also C<Move>.=for apidoc Am|void|Zero|void* dest|int nitems|typeThe XSUB-writer's interface to the C C<memzero> function.  The C<dest> is thedestination, C<nitems> is the number of items, and C<type> is the type.=for apidoc Am|void|StructCopy|type src|type dest|typeThis is an architecture-independent macro to copy one structure to another.=cut*/#ifndef lint#define NEWSV(x,len)	newSV(len)#ifndef LEAKTEST#define New(x,v,n,t)	(v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))#define Newc(x,v,n,t,c)	(v = (c*)safemalloc((MEM_SIZE)((n)*sizeof(t))))#define Newz(x,v,n,t)	(v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t)))), \			memzero((char*)(v), (n)*sizeof(t))#define Renew(v,n,t) \	  (v = (t*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))#define Renewc(v,n,t,c) \	  (v = (c*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))#define Safefree(d)	safefree((Malloc_t)(d))#else /* LEAKTEST */#define New(x,v,n,t)	(v = (t*)safexmalloc((x),(MEM_SIZE)((n)*sizeof(t))))#define Newc(x,v,n,t,c)	(v = (c*)safexmalloc((x),(MEM_SIZE)((n)*sizeof(t))))#define Newz(x,v,n,t)	(v = (t*)safexmalloc((x),(MEM_SIZE)((n)*sizeof(t)))), \			 memzero((char*)(v), (n)*sizeof(t))#define Renew(v,n,t) \	  (v = (t*)safexrealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))#define Renewc(v,n,t,c) \	  (v = (c*)safexrealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))#define Safefree(d)	safexfree((Malloc_t)(d))#define MAXXCOUNT 1400#define MAXY_SIZE 80#define MAXYCOUNT 16			/* (MAXY_SIZE/4 + 1) */extern long xcount[MAXXCOUNT];extern long lastxcount[MAXXCOUNT];extern long xycount[MAXXCOUNT][MAXYCOUNT];extern long lastxycount[MAXXCOUNT][MAXYCOUNT];#endif /* LEAKTEST */#define Move(s,d,n,t)	(void)memmove((char*)(d),(char*)(s), (n) * sizeof(t))#define Copy(s,d,n,t)	(void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t))#define Zero(d,n,t)	(void)memzero((char*)(d), (n) * sizeof(t))#else /* lint */#define New(x,v,n,s)	(v = Null(s *))#define Newc(x,v,n,s,c)	(v = Null(s *))#define Newz(x,v,n,s)	(v = Null(s *))#define Renew(v,n,s)	(v = Null(s *))#define Move(s,d,n,t)#define Copy(s,d,n,t)#define Zero(d,n,t)#define Safefree(d)	(d) = (d)#endif /* lint */#ifdef USE_STRUCT_COPY#define StructCopy(s,d,t) (*((t*)(d)) = *((t*)(s)))#else#define StructCopy(s,d,t) Copy(s,d,1,t)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -