9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

suftab.c (19336B)


      1 /*
      2  * Suffix table
      3  */
      4 
      5 typedef unsigned char Uchar;
      6 
      7 static	Uchar sufa[] = {
      8 	02,0200+'t',	/* -TA */
      9 	02,0200+'s',	/* -SA */
     10 	03,0200+'t','r',	/* -TRA */
     11 	03,0200+'d','r',	/* -DRA */
     12 	03,0200+'b','r',	/* -BRA */
     13 	02,0200+'p',	/* -PA */
     14 	02,0200+'n',	/* -NA */
     15 	02,0200+'m',	/* -MA */
     16 	03,0200+'p','l',	/* -PLA */
     17 	02,0200+'l',	/* -LA */
     18 	02,0200+'k',	/* -KA */
     19 	03,0200+'t','h',	/* -THA */
     20 	03,0200+'s','h',	/* -SHA */
     21 	02,0200+'g',	/* -GA */
     22 	02,0200+'d',	/* -DA */
     23 	02,0200+'c',	/* -CA */
     24 	02,0200+'b',	/* -BA */
     25 	00
     26 };
     27 
     28 static	Uchar sufc[] = {
     29 	04,'e','t',0200+'i',	/* ET-IC */
     30 	07,'a','l',0200+'i','s',0200+'t','i',	/* AL-IS-TIC */
     31 	04,'s',0200+'t','i',	/* S-TIC */
     32 	04,'p',0200+'t','i',	/* P-TIC */
     33 	05,0200+'l','y','t',0200+'i',	/* -LYT-IC */
     34 	04,'o','t',0200+'i',	/* OT-IC */
     35 	05,'a','n',0200+'t','i',	/* AN-TIC */
     36 	04,'n',0200+'t','i',	/* N-TIC */
     37 	04,'c',0200+'t','i',	/* C-TIC */
     38 	04,'a','t',0200+'i',	/* AT-IC */
     39 	04,'h',0200+'n','i',	/* H-NIC */
     40 	03,'n',0200+'i',	/* N-IC */
     41 	03,'m',0200+'i',	/* M-IC */
     42 	04,'l',0200+'l','i',	/* L-LIC */
     43 	04,'b',0200+'l','i',	/* B-LIC */
     44 	04,0200+'c','l','i',	/* -CLIC */
     45 	03,'l',0200+'i',	/* L-IC */
     46 	03,'h',0200+'i',	/* H-IC */
     47 	03,'f',0200+'i',	/* F-IC */
     48 	03,'d',0200+'i',	/* D-IC */
     49 	03,0200+'b','i',	/* -BIC */
     50 	03,'a',0200+'i',	/* A-IC */
     51 	03,0200+'m','a',	/* -MAC */
     52 	03,'i',0200+'a',	/* I-AC */
     53 	00
     54 };
     55 
     56 static	Uchar sufd[] = {
     57 	04,0200+'w','o','r',	/* -WORD */
     58 	04,0200+'l','o','r',	/* -LORD */
     59 	04,0200+'f','o','r',	/* -FORD */
     60 	04,0200+'y','a','r',	/* -YARD */
     61 	04,0200+'w','a','r',	/* -WARD */
     62 	05,0200+'g','u','a','r',	/* -GUARD */
     63 	04,0200+'t','a','r',	/* -TARD */
     64 	05,0200+'b','o','a','r',	/* -BOARD */
     65 	04,0200+'n','a','r',	/* -NARD */
     66 	05,0200+'l','i','a','r',	/* -LIARD */
     67 	04,0200+'i','a','r',	/* -IARD */
     68 	04,0200+'g','a','r',	/* -GARD */
     69 	04,0200+'b','a','r',	/* -BARD */
     70 	03,0200+'r','o',	/* -ROD */
     71 	04,0200+'w','o','o',	/* -WOOD */
     72 	04,0200+'h','o','o',	/* -HOOD */
     73 	04,0200+'m','o','n',	/* -MOND */
     74 	04,0200+'t','e','n',	/* -TEND */
     75 	05,0200+'s','t','a','n',	/* -STAND */
     76 	04,0200+'l','a','n',	/* -LAND */
     77 	04,0200+'h','a','n',	/* -HAND */
     78 	04,0200+'h','o','l',	/* -HOLD */
     79 	04,0200+'f','o','l',	/* -FOLD */
     80 	05,0200+'f','i','e','l',	/* -FIELD */
     81 	03,0200+'v','i',	/* -VID */
     82 	03,0200+'c','i',	/* -CID */
     83 	04,0200+'s','a','i',	/* -SAID */
     84 	04,0200+'m','a','i',	/* -MAID */
     85 	04,'t',0200+'t','e',	/* T-TED */
     86 	03,'t',0200+'e',	/* T-ED */
     87 	04,0200+'d','r','e',	/* -DRED */
     88 	04,0200+'c','r','e',	/* -CRED */
     89 	04,0200+'b','r','e',	/* -BRED */
     90 	05,'v',0200+'e','l','e',	/* V-ELED */
     91 	0100+04,'a','l',0200+'e',	/* AL/ED */
     92 	0140+03,0200+'e','e',	/* /EED */
     93 	040+05,'e','d',0200+'d','e',	/* ED-DED */
     94 	04,'d',0200+'d','e',	/* D-DED */
     95 	040+04,'e','d',0200+'e',	/* ED-ED */
     96 	03,'d',0200+'e',	/* D-ED */
     97 	05,0200+'d','u','c','e',	/* -DUCED */
     98 	0300+02,'e',	/* E/D */
     99 	05,0200+'s','t','e','a',	/* -STEAD */
    100 	05,0200+'a','h','e','a',	/* -AHEAD */
    101 	04,0200+'h','e','a',	/* -HEAD */
    102 	00
    103 };
    104 
    105 static	Uchar sufe[] = {
    106 	05,'a','r',0200+'i','z',	/* AR-IZE */
    107 	05,'a','n',0200+'i','z',	/* AN-IZE */
    108 	05,'a','l',0200+'i','z',	/* AL-IZE */
    109 	06,0200+'a','r','d',0200+'i','z',	/* -ARD-IZE */
    110 	05,0200+'s','e','l','v',	/* -SELVE */
    111 	05,0200+'k','n','i','v',	/* -KNIVE */
    112 	05,0200+'l','i','e','v',	/* -LIEVE */
    113 	0100+03,0200+'q','u',	/* /QUE */
    114 	07,'o','n',0200+'t','i','n',0200+'u',	/* ON-TIN-UE */
    115 	03,0200+'n','u',	/* -NUE */
    116 	03,0200+'d','u',	/* -DUE */
    117 	0300+02,'u',	/* U/E */
    118 	0300+05,'q','u','a','t',	/*  QUAT/E */
    119 	04,'u',0200+'a','t',	/* U-ATE */
    120 	05,0200+'s','t','a','t',	/* -STATE */
    121 	04,0200+'t','a','t',	/* -TATE */
    122 	06,0200+'t','o','r',0200+'a','t',	/* -TOR-ATE */
    123 	05,'e','n',0200+'a','t',	/* EN-ATE */
    124 	04,0200+'m','a','t',	/* -MATE */
    125 	05,0200+'h','o','u','s',	/* -HOUSE */
    126 	05,0200+'c','l','o','s',	/* -CLOSE */
    127 	04,'i',0200+'o','s',	/* I-OSE */
    128 	04,0200+'w','i','s',	/* -WISE */
    129 	05,'a','s',0200+'u','r',	/* AS-URE */
    130 	040+04,0200+'s','u','r',	/* -SURE */
    131 	06,0200+'f','i','g',0200+'u','r',	/* -FIG-URE */
    132 	040+03,0200+'t','r',	/* -TRE */
    133 	05,0200+'s','t','o','r',	/* -STORE */
    134 	04,0200+'f','o','r',	/* -FORE */
    135 	05,0200+'w','h','e','r',	/* -WHERE */
    136 	06,0200+'s','p','h','e','r',	/* -SPHERE */
    137 	03,0200+'d','r',	/* -DRE */
    138 	03,0200+'c','r',	/* -CRE */
    139 	03,0200+'b','r',	/* -BRE */
    140 	05,0200+'s','c','o','p',	/* -SCOPE */
    141 	04,'y',0200+'o','n',	/* Y-ONE */
    142 	05,0200+'s','t','o','n',	/* -STONE */
    143 	05,0200+'p','h','o','n',	/* -PHONE */
    144 	04,0200+'g','o','n',	/* -GONE */
    145 	04,'e',0200+'o','n',	/* E-ONE */
    146 	040+04,0200+'e','n','n',	/* -ENNE */
    147 	040+05,'a',0200+'r','i','n',	/* A-RINE */
    148 	05,0200+'c','l','i','n',	/* -CLINE */
    149 	04,0200+'l','i','n',	/* -LINE */
    150 	007,00200+'r','o','u',00200+'t','i','n',	/*-ROU-TINE */
    151 	04,0200+'s','o','m',	/* -SOME */
    152 	04,0200+'c','o','m',	/* -COME */
    153 	04,0200+'t','i','m',	/* -TIME */
    154 	03,0200+'z','l',	/* -ZLE */
    155 	03,0200+'t','l',	/* -TLE */
    156 	03,0200+'s','l',	/* -SLE */
    157 	03,0200+'p','l',	/* -PLE */
    158 	05,0200+'v','i','l','l',	/* -VILLE */
    159 	04,'c','k',0200+'l',	/* CK-LE */
    160 	03,0200+'k','l',	/* -KLE */
    161 	03,0200+'g','l',	/* -GLE */
    162 	03,0200+'f','l',	/* -FLE */
    163 	03,0200+'d','l',	/* -DLE */
    164 	03,0200+'c','l',	/* -CLE */
    165 	05,0200+'p','a',0200+'b','l',	/* -PA-BLE */
    166 	05,'f','a',0200+'b','l',	/* FA-BLE */
    167 	05,0200+'c','a',0200+'b','l',	/* -CA-BLE */
    168 	06,0200+'s','t','a','b','l',	/* -STABLE */
    169 	04,0200+'a','b','l',	/* -ABLE */
    170 	03,0200+'b','l',	/* -BLE */
    171 	04,0200+'d','a','l',	/* -DALE */
    172 	04,0200+'m','a','l',	/* -MALE */
    173 	04,0200+'s','a','l',	/* -SALE */
    174 	04,0200+'l','i','k',	/* -LIKE */
    175 	0340+05,'g',0200+'u','a','g',	/* -G/UAGE */
    176 	05,0200+'r','i','a','g',	/* -RIAGE */
    177 	05,'e','r',0200+'a','g',	/* ER-AGE */
    178 	04,'m',0200+'a','g',	/* M-AGE */
    179 	04,'k',0200+'a','g',	/* K-AGE */
    180 	04,'d',0200+'a','g',	/* D-AGE */
    181 	04,0200+'w','i','f',	/* -WIFE */
    182 	05,0200+'k','n','i','f',	/* -KNIFE */
    183 	03,0200+'s','e',	/* -SEE */
    184 	04,0200+'f','r','e',	/* -FREE */
    185 	0340+02,'e',	/* EE */
    186 	04,0200+'w','i','d',	/* -WIDE */
    187 	04,0200+'t','i','d',	/* -TIDE */
    188 	04,0200+'s','i','d',	/* -SIDE */
    189 	06,0200+'q','u','e','n','c',	/* -QUENCE */
    190 	07,0200+'f','l','u',0200+'e','n','c',	/* -FLU-ENCE */
    191 	040+06,'e','s',0200+'e','n','c',	/* ES-ENCE */
    192 	06,'e','r',0200+'e','n','c',	/* ER-ENCE */
    193 	05,'i',0200+'e','n','c',	/* I-ENCE */
    194 	040+05,0200+'s','a','n','c',	/* -SANCE */
    195 	06,'e','r',0200+'a','n','c',	/* ER-ANCE */
    196 	06,'a','r',0200+'a','n','c',	/* AR-ANCE */
    197 	05,0200+'n','a','n','c',	/* -NANCE */
    198 	07,0200+'b','a','l',0200+'a','n','c',	/* -BAL-ANCE */
    199 	05,'i',0200+'a','n','c',	/* I-ANCE */
    200 	07,0200+'j','u','s',0200+'t','i','c',	/* -JUS-TICE */
    201 	05,0200+'s','t','i','c',	/* -STICE */
    202 	06,0200+'n','o','v',0200+'i','c',	/* NOV-ICE */
    203 	04,0200+'v','i','c',	/* -VICE */
    204 	05,0200+'p','i','e','c',	/* -PIECE */
    205 	05,0200+'p','l','a','c',	/* -PLACE */
    206 	0340+01,	/* /E */
    207 	00
    208 };
    209 
    210 static	Uchar suff[] = {
    211 	03,0200+'o','f',	/* -OFF */
    212 	05,0200+'p','r','o','o',	/* -PROOF */
    213 	04,0200+'s','e','l',	/* -SELF */
    214 	03,0200+'r','i',	/* -RIF */
    215 	040+04,0200+'l','i','e',	/* -LIEF */
    216 	00
    217 };
    218 
    219 static	Uchar sufg[] = {
    220 	03,0200+'l','o',	/* -LOG */
    221 	04,0200+'l','o','n',	/* -LONG */
    222 	05,'t',0200+'t','i','n',	/* T-TING */
    223 	06,0200+'s','t','r','i','n',	/*  -STRING */
    224 	05,'r',0200+'r','i','n',	/* R-RING */
    225 	05,'p',0200+'p','i','n',	/* P-PING */
    226 	05,'n',0200+'n','i','n',	/* N-NING */
    227 	05,'m',0200+'m','i','n',	/* M-MING */
    228 	05,'l',0200+'l','i','n',	/*  L-LING */
    229 	05,0200+'z','l','i','n',	/* -ZLING */
    230 	05,0200+'t','l','i','n',	/* -TLING */
    231 	040+05,'s',0200+'l','i','n',	/* S-LING */
    232 	05,'r',0200+'l','i','n',	/* R-LING */
    233 	05,0200+'p','l','i','n',	/* -PLING */
    234 	06,'n',0200+'k','l','i','n',	/* N-KLING */
    235 	05,'k',0200+'l','i','n',	/* K-LING */
    236 	05,0200+'g','l','i','n',	/* -GLING */
    237 	05,0200+'f','l','i','n',	/* -FLING */
    238 	05,0200+'d','l','i','n',	/* -DLING */
    239 	05,0200+'c','l','i','n',	/* -CLING */
    240 	05,0200+'b','l','i','n',	/* -BLING */
    241 	06,'y',0200+'t','h','i','n',	/* Y-THING */
    242 	07,'e','e','t','h',0200+'i','n',	/* EETH-ING */
    243 	06,'e',0200+'t','h','i','n',	/* E-THING */
    244 	05,'g',0200+'g','i','n',	/* G-GING */
    245 	05,'d',0200+'d','i','n',	/* D-DING */
    246 	05,'b',0200+'b','i','n',	/* B-BING */
    247 	03,0200+'i','n',	/* -ING */
    248 	00
    249 };
    250 
    251 static	Uchar sufh[] = {
    252 	05,0200+'m','o','u','t',	/* -MOUTH */
    253 	05,0200+'w','o','r','t',	/* -WORTH */
    254 	04,0200+'w','i','t',	/* -WITH */
    255 	05,'t',0200+'t','i','s',	/* T-TISH */
    256 	05,'e',0200+'t','i','s',	/* E-TISH */
    257 	05,'p',0200+'p','i','s',	/* P-PISH */
    258 	05,'r',0200+'n','i','s',	/* R-NISH */
    259 	05,'n',0200+'n','i','s',	/* N-NISH */
    260 	05,0200+'p','l','i','s',	/* -PLISH */
    261 	05,0200+'g','u','i','s',	/*  -GUISH */
    262 	05,0200+'g','l','i','s',	/*  -GLISH */
    263 	05,'b',0200+'l','i','s',	/*  B-LISH */
    264 	05,'g',0200+'g','i','s',	/* G-GISH */
    265 	05,'d',0200+'d','i','s',	/* D-DISH */
    266 	03,0200+'i','s',	/* -ISH */
    267 	05,0200+'g','r','a','p',	/* -GRAPH */
    268 	07,0200+'b','o','r',0200+'o','u','g',	/* -BOR-OUGH */
    269 	05,0200+'b','u','r','g',	/* -BURGH */
    270 	04,0200+'v','i','c',	/* -VICH */
    271 	03,0200+'n','a',	/* -NAH */
    272 	03,0200+'l','a',	/* -LAH */
    273 	04,0200+'m','i',0200+'a',	/* -MI-AH */
    274 	00
    275 };
    276 
    277 static	Uchar sufi[] = {
    278 	03,0200+'t','r',	/* -TRI */
    279 	03,0200+'c','h',	/* -CHI */
    280 	0200+03,'i','f',	/* IF-I */
    281 	0200+03,'e','d',	/* ED-I */
    282 	05,0200+'a','s','c','i',	/* -ASCII */
    283 	04,0200+'s','e','m',	/* -SEMI */
    284 	00
    285 };
    286 
    287 static	Uchar sufk[] = {
    288 	04,0200+'w','o','r',	/* -WORK */
    289 	04,0200+'m','a','r',	/* -MARK */
    290 	04,0200+'b','o','o',	/* -BOOK */
    291 	04,0200+'w','a','l',	/* -WALK */
    292 	05,0200+'c','r','a','c',	/* -CRACK */
    293 	04,0200+'b','a','c',	/* -BACK */
    294 	00
    295 };
    296 
    297 static	Uchar sufl[] = {
    298 	03,0200+'f','u',	/* -FUL */
    299 	05,'s',0200+'w','e','l',	/* S-WELL */
    300 	04,0200+'t','e','l',	/* -TELL */
    301 	05,0200+'s','h','e','l',	/* -SHELL */
    302 	05,0200+'s','t','a','l',	/* -STALL */
    303 	04,'s',0200+'t','a',	/* S-TAL */
    304 	04,0200+'b','a','l',	/* -BALL */
    305 	04,0200+'c','a','l',	/* -CALL */
    306 	03,'v',0200+'e',	/* V-EL */
    307 	03,'u',0200+'e',	/* U-EL */
    308 	03,'k',0200+'e',	/* K-EL */
    309 	04,'t','h',0200+'e',	/* TH-EL */
    310 	05,'t','c','h',0200+'e',	/* TCH-EL */
    311 	03,'a',0200+'e',	/* A-EL */
    312 	0140+04,0200+'q','u','a',	/* /QUAL */
    313 	040+03,'u',0200+'a',	/* U-AL */
    314 	03,0200+'t','a',	/* -TAL */
    315 	04,'u','r',0200+'a',	/* UR-AL */
    316 	040+05,'g',0200+'o',0200+'n','a',	/* G-O-NAL */
    317 	04,'o','n',0200+'a',	/* ON-AL */
    318 	03,0200+'n','a',	/* -NAL */
    319 	04,0200+'t','i','a',	/* -TIAL */
    320 	04,0200+'s','i','a',	/* -SIAL */
    321 	040+05,0200+'t','r','i',0200+'a',	/* -TRI-AL */
    322 	04,'r','i',0200+'a',	/* RI-AL */
    323 	04,0200+'n','i',0200+'a',	/* -NI-AL */
    324 	04,0200+'d','i',0200+'a',	/* -DI-AL */
    325 	04,0200+'c','i','a',	/* -CIAL */
    326 	03,0200+'g','a',	/* -GAL */
    327 	04,0200+'m','e','a',	/* -MEAL */
    328 /*	040+04,0200+'r','e',0200+'a',	/* -RE-AL */
    329 	040+04,0200+'r','e','a',	/* -REAL */
    330 	06,'c',0200+'t','i',0200+'c','a',	/* C-TI-CAL */
    331 	05,0200+'s','i',0200+'c','a',	/* -SI-CAL */
    332 	04,0200+'i',0200+'c','a',	/* -I-CAL */
    333 	03,0200+'c','a',	/* -CAL */
    334 	03,0200+'b','a',	/* -BAL */
    335 	06,0200+'n','o',0200+'m','i',0200+'a',	/* -NO-MI-AL */
    336 	00
    337 };
    338 
    339 static	Uchar sufm[] = {
    340 	03,0200+'n','u',	/* -NUM */
    341 	05,'o',0200+'r','i',0200+'u',	/* O-RI-UM */
    342 	040+03,'i',0200+'u',	/* I-UM */
    343 	040+03,'e',0200+'u',	/* E-UM */
    344 	05,'i','v',0200+'i','s',	/* IV-ISM */
    345 	04,0200+'t','i','s',	/* -TISM */
    346 	05,'i',0200+'m','i','s',	/* I-MISM */
    347 	05,'a','l',0200+'i','s',	/* AL-ISM */
    348 	040+04,'e',0200+'i','s',	/* E-ISM */
    349 	040+04,'a',0200+'i','s',	/* A-ISM */
    350 	04,0200+'r','o','o',	/* -ROOM */
    351 	03,0200+'d','o',	/* -DOM */
    352 	03,0200+'h','a',	/* -HAM */
    353 	06,0200+'a',0200+'r','i','t','h',	/* -A-RITHM */
    354 	05,0200+'r','i','t','h',	/* -RITHM */
    355 	00
    356 };
    357 
    358 static	Uchar sufn[] = {
    359 	05,0200+'k','n','o','w', /* -KNOWN */
    360 	04,0200+'t','o','w',	/* -TOWN */
    361 	04,0200+'d','o','w',	/* -DOWN */
    362 	04,0200+'t','u','r',	/* -TURN */
    363 	05,0200+'s','p','o','o',	/* -SPOON */
    364 	04,0200+'n','o','o',	/* -NOON */
    365 	04,0200+'m','o','o',	/* -MOON */
    366 	011,'a','l',0200+'i',0200+'z','a',0200+'t','i','o',	/* AL-I-ZA-TION */
    367 	07,0200+'i',0200+'z','a',0200+'t','i','o',	/* -I-ZA-TION */
    368 	07,'l',0200+'i',0200+'a',0200+'t','i','o',	/* L-I-A-TION */
    369 	04,0200+'t','i','o',	/* -TION */
    370 	040+05,'s',0200+'s','i','o',	/* S-SION */
    371 	04,0200+'s','i','o',	/* -SION */
    372 	04,'n',0200+'i','o',	/* N-ION */
    373 	04,0200+'g','i','o',	/* -GION */
    374 	04,0200+'c','i','o',	/* -CION */
    375 	03,0200+'c','o',	/* -CON */
    376 	05,0200+'c','o','l','o',	/* -COLON */
    377 	03,0200+'t','o',	/* -TON */
    378 	04,'i','s',0200+'o',		/* IS-ON */
    379 	03,0200+'s','o',	/* -SON */
    380 	03,0200+'r','i',	/* -RIN */
    381 	03,0200+'p','i',	/* -PIN */
    382 	03,0200+'n','i',	/* -NIN */
    383 	03,0200+'m','i',	/* -MIN */
    384 	03,0200+'l','i',	/* -LIN */
    385 	03,0200+'k','i',	/* -KIN */
    386 	05,0200+'s','t','e','i',	/* -STEIN */
    387 	04,0200+'t','a','i',	/* -TAIN */
    388 	05,'g','h','t',0200+'e',	/* GHT-EN */
    389 	05,0200+'w','o','m',0200+'e',	/* -WOM-EN */
    390 	03,0200+'m','e',	/* -MEN */
    391 	04,'o',0200+'k','e',	/* O-KEN */
    392 	03,'k',0200+'e',	/* K-EN */
    393 	04,0200+'t','e','e',	/* -TEEN */
    394 	04,0200+'s','e','e',	/* -SEEN */
    395 	040+03,0200+'s','a',	/* -SAN */
    396 	05,0200+'w','o','m',0200+'a',	/* -WOM-AN */
    397 	03,0200+'m','a',	/* -MAN */
    398 	04,0200+'t','i','a',	/* -TIAN */
    399 	04,0200+'s','i','a',	/* -SIAN */
    400 	040+04,'e',0200+'i','a',	/* E-IAN */
    401 	04,0200+'c','i','a',	/* -CIAN */
    402 	0300+03,'i','a',	/* IA/N */
    403 	05,0200+'c','l','e','a',	/* -CLEAN */
    404 	04,0200+'m','e','a',	/* -MEAN */
    405 	040+03,'e',0200+'a',	/* E-AN */
    406 	00
    407 };
    408 
    409 static	Uchar sufo[] = {
    410 	05,0200+'m','a','c',0200+'r',	/* -MAC-RO */
    411 	00
    412 };
    413 
    414 static	Uchar sufp[] = {
    415 	05,0200+'g','r','o','u',	/* -GROUP */
    416 	02,0200+'u',	/* -UP */
    417 	04,0200+'s','h','i',	/* -SHIP */
    418 	04,0200+'k','e','e',	/* -KEEP */
    419 	00
    420 };
    421 
    422 static	Uchar sufr[] = {
    423 	04,0200+'z','a','r',	/* -ZARR */
    424 	0300+02,'r',	/* R/R */
    425 	03,0200+'t','o',	/* -TOR */
    426 	040+03,0200+'s','o',	/* -SOR */
    427 	040+04,0200+'r','i',0200+'o',	/* -RI-OR */
    428 	04,'i','z',0200+'e',	/* IZ-ER */
    429 	05,0200+'c','o','v',0200+'e',	/* -COV-ER */
    430 	04,0200+'o','v','e',	/* -OVER */
    431 	04,0200+'e','v',0200+'e',	/* -EV-ER */
    432 	8,0200+'c','o','m',0200+'p','u','t',0200+'e',	/* -COM-PUT-ER */
    433 	040+05,'u','s',0200+'t','e',	/* US-TER */
    434 	05,'o','s','t',0200+'e',	/* OST-ER */
    435 	040+05,0200+'a','c',0200+'t','e',	/* -AC-TER */
    436 	06,0200+'w','r','i','t',0200+'e',	/* -WRIT-ER */
    437 	040+05,'i','s',0200+'t','e',	/* IS-TER */
    438 	040+05,'e','s',0200+'t','e',	/* ES-TER */
    439 	040+05,'a','s',0200+'t','e',	/* AS-TER */
    440 	04,0200+'s','t','e',	/* -STER */
    441 	05,'a','r',0200+'t','e',	/* AR-TER */
    442 	04,'r','t',0200+'e',	/* RT-ER */
    443 	040+05,'m',0200+'e',0200+'t','e',	/* M-E-TER */
    444 	05,0200+'w','a',0200+'t','e',	/* -WA-TER */
    445 	03,'r',0200+'e',	/* R-ER */
    446 	04,'o','p',0200+'e',	/* OP-ER */
    447 	05,0200+'p','a',0200+'p','e',	/* -PA-PER */
    448 	04,'w','n',0200+'e',	/* WN-ER */
    449 	040+04,'s',0200+'n','e',	/* S-NER */
    450 	04,'o','n',0200+'e',	/* ON-ER */
    451 	04,'r','m',0200+'e',	/* RM-ER */
    452 	03,0200+'m','e',	/* -MER */
    453 	04,'l','l',0200+'e',	/* LL-ER */
    454 	05,'d',0200+'d','l','e',	/* D-DLER */
    455 	04,0200+'b','l','e',	/* -BLER */
    456 	03,'k',0200+'e',	/* K-ER */
    457 	05,'n',0200+'t','h','e',	/* N-THER */
    458 	06,0200+'f','a',0200+'t','h','e',	/* -FA-THER */
    459 	06,'e','i',0200+'t','h','e',	/* EI-THER */
    460 	04,'t','h',0200+'e',	/* TH-ER */
    461 	04,'s','h',0200+'e',	/* SH-ER */
    462 	04,0200+'p','h','e',	/* -PHER */
    463 	04,'c','h',0200+'e',	/* CH-ER */
    464 	04,'d','g',0200+'e',	/* DG-ER */
    465 	04,'r','d',0200+'e',	/* RD-ER */
    466 	06,'o','u','n','d',0200+'e',	/* OUND-ER */
    467 	04,'l','d',0200+'e',	/* LD-ER */
    468 	04,'i','d',0200+'e',	/* ID-ER */
    469 	05,0200+'d','u','c',0200+'e',	/* -DUC-ER */
    470 	04,'n','c',0200+'e',	/* NC-ER */
    471 	0100+02, 0200+'e',	/*  /ER */
    472 	03,0200+'s','a',	/* -SAR */
    473 	040+06,'a','c',0200+'u',0200+'l','a',	/* AC-U-LAR */
    474 	040+06,'e','c',0200+'u',0200+'l','a',	/* EC-U-LAR */
    475 	040+06,'i','c',0200+'u',0200+'l','a',	/* IC-U-LAR */
    476 	040+06,'e','g',0200+'u',0200+'l','a',	/* EG-U-LAR */
    477 	00
    478 };
    479 
    480 static	Uchar sufs[] = {
    481 	040+04,'u',0200+'o','u',	/* U-OUS */
    482 	05,0200+'t','i','o','u',	/* -TIOUS */
    483 	05,0200+'g','i','o','u',	/* -GIOUS */
    484 	05,0200+'c','i','o','u',	/* -CIOUS */
    485 	040+04,'i',0200+'o','u',	/* I-OUS */
    486 	05,0200+'g','e','o','u',	/* -GEOUS */
    487 	05,0200+'c','e','o','u',	/* -CEOUS */
    488 	04,'e',0200+'o','u',	/* E-OUS */
    489 	0140+02,0200+'u',	/* /US */
    490 	04,0200+'n','e','s',	/* -NESS */
    491 	04,0200+'l','e','s',	/* -LESS */
    492 	0140+02,0200+'s',	/* /SS */
    493 	040+05,'p',0200+'o',0200+'l','i',	/* P-O-LIS */
    494 	0140+02,0200+'i',	/* /IS */
    495 	0100+03,0200+'x','e',	/* X/ES */
    496 	0100+03,0200+'s','e',	/* S/ES */
    497 	0100+04,'s','h',0200+'e',	/* SH/ES */
    498 	0100+04,'c','h',0200+'e',	/* CH/ES */
    499 	0300+01,	/* /S */
    500 	00
    501 };
    502 
    503 static	Uchar suft[] = {
    504 	05,0200+'l','i','m',0200+'i',	/* -LIM-IT */
    505 	06,'i','o','n',0200+'i','s',	/* ION-IST */
    506 	05,'i','n',0200+'i','s',	/* IN-IST */
    507 	05,'a','l',0200+'i','s',	/* AL-IST */
    508 	06,'l',0200+'o',0200+'g','i','s',	/* L-O-GIST */
    509 	05,'h','t',0200+'e','s',	/* HT-EST */
    510 	04,'i',0200+'e','s',	/* I-EST */
    511 	05,'g',0200+'g','e','s',	/* G-GEST */
    512 	04,'g',0200+'e','s',	/* G-EST */
    513 	05,'d',0200+'d','e','s',	/* D-DEST */
    514 	04,'d',0200+'e','s',	/* D-EST */
    515 	04,0200+'c','a','s',	/* -CAST */
    516 	05,0200+'h','e','a','r',	/* -HEART */
    517 	04,0200+'f','o','o',	/* -FOOT */
    518 	03,'i',0200+'o',	/* I-OT */
    519 	05,0200+'f','r','o','n',	/* -FRONT */
    520 	05,0200+'p','r','i','n',	/* -PRINT */
    521 	04,0200+'m','e','n',	/* -MENT */
    522 	05,0200+'c','i','e','n',	/* -CIENT */
    523 	04,'i',0200+'a','n',	/* I-ANT */
    524 	06,0200+'w','r','i','g','h',	/* -WRIGHT */
    525 	06,0200+'b','r','i','g','h',	/* -BRIGHT */
    526 	06,0200+'f','l','i','g','h',	/* -FLIGHT */
    527 	06,0200+'w','e','i','g','h',	/* -WEIGHT */
    528 	05,0200+'s','h','i','f',	/* -SHIFT */
    529 	05,0200+'c','r','a','f',	/* -CRAFT */
    530 	040+04,'d','g',0200+'e',	/* DG-ET */
    531 	04,0200+'g','o','a',	/* -GOAT */
    532 	04,0200+'c','o','a',	/* -COAT */
    533 	04,0200+'b','o','a',	/* -BOAT */
    534 	04,0200+'w','h','a',	/* -WHAT */
    535 	04,0200+'c','u','i',	/* -CUIT */
    536 	00
    537 };
    538 
    539 static	Uchar sufy[] = {
    540 	040+04,'e','s',0200+'t',	/* ES-TY */
    541 	040+05,'q','u','i',0200+'t',	/* QUI-TY */
    542 	04,0200+'t','i',0200+'t',	/* -TI-TY */
    543 	040+05,'o','s',0200+'i',0200+'t',	/* OS-I-TY */
    544 	04,0200+'s','i',0200+'t',	/* -SI-TY */
    545 	05,'i','n',0200+'i',0200+'t',	/* IN-I-TY */
    546 	04,'n','i',0200+'t',	/* NI-TY */
    547 	040+010,'f','a',0200+'b','i','l',0200+'i',0200+'t',	/* FA-BIL-I-TY */
    548 	010,0200+'c','a',0200+'b','i','l',0200+'i',0200+'t',	/* -CA-BIL-I-TY */
    549 	010,0200+'p','a',0200+'b','i','l',0200+'i',0200+'t',	/* -PA-BIL-I-TY */
    550 	06,0200+'b','i','l',0200+'i',0200+'t',	/* -BIL-I-TY */
    551 	03,'i',0200+'t',	/* I-TY */
    552 	04,0200+'b','u','r',	/* -BUR-Y */
    553 	04,0200+'t','o',0200+'r',	/* -TO-RY */
    554 	05,0200+'q','u','a','r',	/* -QUAR-Y */
    555 	040+04,'u',0200+'a','r',	/* U-ARY */
    556 	07,0200+'m','e','n',0200+'t','a',0200+'r',	/* -MEN-TA-RY */
    557 	06,'i','o','n',0200+'a','r',	/* ION-ARY */
    558 	04,'i',0200+'a','r',	/* I-ARY */
    559 	04,'n',0200+'o',0200+'m',	/* N-O-MY */
    560 	03,0200+'p','l',	/* -PLY */
    561 	04,'g',0200+'g','l',	/* G-GLY */
    562 	05,0200+'p','a',0200+'b','l',	/* -PA-BLY */
    563 	05,'f','a',0200+'b','l',	/* FA-BLY */
    564 	05,0200+'c','a',0200+'b','l',	/* -CA-BLY */
    565 	04,0200+'a','b','l',	/* -ABLY */
    566 	03,0200+'b','l',	/* -BLY */
    567 	02,0200+'l',	/* -LY */
    568 	03,0200+'s','k',	/* -SKY */
    569 	040+06,'g',0200+'r','a',0200+'p','h',	/* G-RA-PHY */
    570 	04,'l',0200+'o',0200+'g',	/* L-O-GY */
    571 	02,0200+'f',	/* -FY */
    572 	03,0200+'n','e',	/* -NEY */
    573 	03,0200+'l','e',	/* -LEY */
    574 	04,'c','k',0200+'e',	/* CK-EY */
    575 	03,0200+'k','e',	/* -KEY */
    576 	04,0200+'b','o','d',	/* -BODY */
    577 	05,0200+'s','t','u','d',	/* -STUDY */
    578 	0340+04,'e','e','d',	/* EEDY */
    579 	02,0200+'b',	/* -BY */
    580 	03,0200+'w','a',	/* -WAY */
    581 	03,0200+'d','a',	/* -DAY */
    582 	00
    583 };
    584 
    585 Uchar	*suftab[] = {
    586 	sufa,
    587 	0,
    588 	sufc,
    589 	sufd,
    590 	sufe,
    591 	suff,
    592 	sufg,
    593 	sufh,
    594 	sufi,
    595 	0,
    596 	sufk,
    597 	sufl,
    598 	sufm,
    599 	sufn,
    600 	sufo,
    601 	sufp,
    602 	0,
    603 	sufr,
    604 	sufs,
    605 	suft,
    606 	0,
    607 	0,
    608 	0,
    609 	0,
    610 	sufy,
    611 	0
    612 };