mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
59 lines
2.2 KiB
C
59 lines
2.2 KiB
C
/*
|
|
* ztype.h - character classification macros
|
|
*
|
|
* This file is part of zsh, the Z shell.
|
|
*
|
|
* Copyright (c) 1992-1997 Paul Falstad
|
|
* All rights reserved.
|
|
*
|
|
* Permission is hereby granted, without written agreement and without
|
|
* license or royalty fees, to use, copy, modify, and distribute this
|
|
* software and to distribute modified versions of this software for any
|
|
* purpose, provided that the above copyright notice and the following
|
|
* two paragraphs appear in all copies of this software.
|
|
*
|
|
* In no event shall Paul Falstad or the Zsh Development Group be liable
|
|
* to any party for direct, indirect, special, incidental, or consequential
|
|
* damages arising out of the use of this software and its documentation,
|
|
* even if Paul Falstad and the Zsh Development Group have been advised of
|
|
* the possibility of such damage.
|
|
*
|
|
* Paul Falstad and the Zsh Development Group specifically disclaim any
|
|
* warranties, including, but not limited to, the implied warranties of
|
|
* merchantability and fitness for a particular purpose. The software
|
|
* provided hereunder is on an "as is" basis, and Paul Falstad and the
|
|
* Zsh Development Group have no obligation to provide maintenance,
|
|
* support, updates, enhancements, or modifications.
|
|
*
|
|
*/
|
|
|
|
#define IDIGIT (1 << 0)
|
|
#define IALNUM (1 << 1)
|
|
#define IBLANK (1 << 2)
|
|
#define INBLANK (1 << 3)
|
|
#define ITOK (1 << 4)
|
|
#define ISEP (1 << 5)
|
|
#define IALPHA (1 << 6)
|
|
#define IIDENT (1 << 7)
|
|
#define IUSER (1 << 8)
|
|
#define ICNTRL (1 << 9)
|
|
#define IWORD (1 << 10)
|
|
#define ISPECIAL (1 << 11)
|
|
#define IMETA (1 << 12)
|
|
#define IWSEP (1 << 13)
|
|
#define _icom(X,Y) (typtab[STOUC(X)] & Y)
|
|
#define idigit(X) _icom(X,IDIGIT)
|
|
#define ialnum(X) _icom(X,IALNUM)
|
|
#define iblank(X) _icom(X,IBLANK) /* blank, not including \n */
|
|
#define inblank(X) _icom(X,INBLANK) /* blank or \n */
|
|
#define itok(X) _icom(X,ITOK)
|
|
#define isep(X) _icom(X,ISEP)
|
|
#define ialpha(X) _icom(X,IALPHA)
|
|
#define iident(X) _icom(X,IIDENT)
|
|
#define iuser(X) _icom(X,IUSER) /* username char */
|
|
#define icntrl(X) _icom(X,ICNTRL)
|
|
#define iword(X) _icom(X,IWORD)
|
|
#define ispecial(X) _icom(X,ISPECIAL)
|
|
#define imeta(X) _icom(X,IMETA)
|
|
#define iwsep(X) _icom(X,IWSEP)
|