SPECIAL
| SPECIAL opt_namelist STRING SM {
c = SPECIAL;
%term SPECIAL 14
%type <subcmd> INSTALL NOTIFY EXCEPT PATTERN SPECIAL cmdlist cmd
case SPECIAL:
if (sc->sc_type != SPECIAL)
tokentype = SPECIAL;
for (p = p1; (i = chars[*p]) != SPECIAL; ++p) {
case SPECIAL:
if (arg_hint == SPECIAL) {
arg_hint = SPECIAL;
{"lower", SPECIAL LC_CTYPE, TYPE_CTP},
{"upper", SPECIAL LC_CTYPE, TYPE_CTP},
{"alpha", SPECIAL LC_CTYPE, TYPE_CTP},
{"digit", SPECIAL LC_CTYPE, TYPE_CTP},
{"space", SPECIAL LC_CTYPE, TYPE_CTP},
{"cntrl", SPECIAL LC_CTYPE, TYPE_CTP},
{"punct", SPECIAL LC_CTYPE, TYPE_CTP},
{"graph", SPECIAL LC_CTYPE, TYPE_CTP},
{"print", SPECIAL LC_CTYPE, TYPE_CTP},
{"xdigit", SPECIAL LC_CTYPE, TYPE_CTP},
{"blank", SPECIAL LC_CTYPE, TYPE_CTP},
{"tolower", SPECIAL LC_CTYPE, TYPE_CNVL},
{"toupper", SPECIAL LC_CTYPE, TYPE_CNVU},
%token FS ATTR DEVICE RCTL SPECIAL RAW DIR OPTIONS TYPE ADDRESS PHYSICAL
%type <ival> property_name SPECIAL RAW DIR OPTIONS TYPE ADDRESS PHYSICAL NAME
property_name: SPECIAL { $$ = PT_SPECIAL; }
if (spec.flags & SPECIAL && has_hex_prefix(orig_fmt, old_fmt))
case '#': spec->flags |= SPECIAL; break;
SPECIAL(lower->kbtrans_buckybits, entry));
#define SHIFTKEYS SPECIAL(0x1, 0)
#define BUCKYBITS SPECIAL(0x2, 0)
#define FUNNY SPECIAL(0x3, 0) /* thru 0x30F. This key does one of 16 funny */
#define NOP SPECIAL(0x3, 0x0) /* This key does nothing. */
#define OOPS SPECIAL(0x3, 0x1) /* This key exists but is undefined. */
#define HOLE SPECIAL(0x3, 0x2) /* This key does not exist on the keyboard. */
#define RESET SPECIAL(0x3, 0x6) /* Kbd was just reset */
#define ERROR SPECIAL(0x3, 0x7) /* Kbd just detected an internal error */
#define IDLE SPECIAL(0x3, 0x8) /* Kbd is idle (no keys down) */
#define COMPOSE SPECIAL(0x3, 0x9) /* This key is the Compose key. */
#define NONL SPECIAL(0x3, 0xA) /* This key not affected by Num Lock */
#define FA_CLASS SPECIAL(0x4, 0)
#define FA_UMLAUT SPECIAL(0x4, 0x0) /* umlaut accent */
#define FA_CFLEX SPECIAL(0x4, 0x1) /* circumflex accent */
#define FA_TILDE SPECIAL(0x4, 0x2) /* tilde accent */
#define FA_CEDILLA SPECIAL(0x4, 0x3) /* cedilla accent */
#define FA_ACUTE SPECIAL(0x4, 0x4) /* acute accent */
#define FA_GRAVE SPECIAL(0x4, 0x5) /* grave accent */
#define FA_MACRON SPECIAL(0x4, 0x6) /* macron accent */
#define FA_BREVE SPECIAL(0x4, 0x7) /* breve accent */
#define FA_DOT SPECIAL(0x4, 0x8) /* dot accent */
#define FA_SLASH SPECIAL(0x4, 0x9) /* slash accent */
#define FA_RING SPECIAL(0x4, 0xa) /* ring accent */
#define FA_APOSTROPHE SPECIAL(0x4, 0xb) /* apostrophe accent */
#define FA_DACUTE SPECIAL(0x4, 0xc) /* double acute accent */
#define FA_OGONEK SPECIAL(0x4, 0xd) /* ogonek accent */
#define FA_CARON SPECIAL(0x4, 0xe) /* caron accent */
#define STRING SPECIAL(0x5, 0) /* thru 0x50F. The low-order 4 bits index */
#define FUNCKEYS SPECIAL(0x6, 0)
#define LEFTFUNC SPECIAL(0x6, 0x0) /* thru 0x60F. The "left" group. */
#define RIGHTFUNC SPECIAL(0x6, 0x10) /* thru 0x61F. The "right" group. */
#define TOPFUNC SPECIAL(0x6, 0x20) /* thru 0x62F. The "top" group. */
#define BOTTOMFUNC SPECIAL(0x6, 0x30) /* thru 0x63F. The "bottom" group. */
#define PADKEYS SPECIAL(0x7, 0)
#define PADEQUAL SPECIAL(0x7, 0x00) /* keypad = */
#define PADSLASH SPECIAL(0x7, 0x01) /* keypad / */
#define PADSTAR SPECIAL(0x7, 0x02) /* keypad * */
#define PADMINUS SPECIAL(0x7, 0x03) /* keypad - */
#define PADSEP SPECIAL(0x7, 0x04) /* keypad, */
#define PAD7 SPECIAL(0x7, 0x05) /* keypad 7 */
#define PAD8 SPECIAL(0x7, 0x06) /* keypad 8 */
#define PAD9 SPECIAL(0x7, 0x07) /* keypad 9 */
#define PADPLUS SPECIAL(0x7, 0x08) /* keypad + */
#define PAD4 SPECIAL(0x7, 0x09) /* keypad 4 */
#define PAD5 SPECIAL(0x7, 0x0A) /* keypad 5 */
#define PAD6 SPECIAL(0x7, 0x0B) /* keypad 6 */
#define PAD1 SPECIAL(0x7, 0x0C) /* keypad 1 */
#define PAD2 SPECIAL(0x7, 0x0D) /* keypad 2 */
#define PAD3 SPECIAL(0x7, 0x0E) /* keypad 3 */
#define PAD0 SPECIAL(0x7, 0x0F) /* keypad 0 */
#define PADDOT SPECIAL(0x7, 0x10) /* keypad . */
#define PADENTER SPECIAL(0x7, 0x11) /* keypad Enter */