home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / rainbow / cpm / emacs / emacssrc.lzh / cclass.c < prev    next >
C/C++ Source or Header  |  1992-03-11  |  4KB  |  164 lines

  1. #include "ed.h"
  2. #include "cclass.h"
  3.  
  4. char cclass[128] =
  5. {    /* character classes. */
  6.     0,    /* ^@ */
  7.     0,    /* ^A */
  8.     0,    /* ^B */
  9.     0,    /* ^C */
  10.     0,    /* ^D */
  11.     0,    /* ^E */
  12.     0,    /* ^F */
  13.     0,    /* ^G */
  14.     0,    /* ^H */
  15.     (c_TAB|c_WHITE),    /* ^I */
  16.     0,    /* ^J */
  17.     0,    /* ^K */
  18.     0,    /* ^L */
  19.     0,    /* ^M */
  20.     0,    /* ^N */
  21.     0,    /* ^O */
  22.     0,    /* ^P */
  23.     0,    /* ^Q */
  24.     0,    /* ^R */
  25.     0,    /* ^S */
  26.     0,    /* ^T */
  27.     0,    /* ^U */
  28.     0,    /* ^V */
  29.     0,    /* ^W */
  30.     0,    /* ^X */
  31.     0,    /* ^Y */
  32.     0,    /* ^Z */
  33.     0,    /* ^[ */
  34.     0,    /* ^\ */
  35.     0,    /* ^] */
  36.     0,    /* ^^ */
  37.     0,    /* ^_ */
  38.     (c_SIMPLE|c_WHITE),    /* blank */
  39.     c_SIMPLE,    /* ! */
  40.     c_SIMPLE,    /* " */
  41.     c_SIMPLE,    /* # */
  42.     c_SIMPLE,    /* $ */
  43.     c_SIMPLE,    /* % */
  44.     c_SIMPLE,    /* & */
  45.     c_SIMPLE,    /* ' */
  46.     (c_FENCE|c_SIMPLE),    /* ( */
  47.     (c_FENCE|c_SIMPLE),    /* ) */
  48.     c_SIMPLE,    /* * */
  49.     c_SIMPLE,    /* + */
  50.     c_SIMPLE,    /* , */
  51.     c_SIMPLE,    /* - */
  52.     c_SIMPLE,    /* . */
  53.     c_SIMPLE,    /* / */
  54.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 0 */
  55.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 1 */
  56.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 2 */
  57.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 3 */
  58.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 4 */
  59.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 5 */
  60.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 6 */
  61.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 7 */
  62.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 8 */
  63.     (c_CWORD|c_DIGIT|c_SIMPLE),    /* 9 */
  64.     c_SIMPLE,    /* : */
  65.     c_SIMPLE,    /* ; */
  66.     c_SIMPLE,    /* < */
  67.     c_SIMPLE,    /* = */
  68.     c_SIMPLE,    /* > */
  69.     c_SIMPLE,    /* ? */
  70.     c_SIMPLE,    /* @ */
  71.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* A */
  72.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* B */
  73.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* C */
  74.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* D */
  75.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* E */
  76.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* F */
  77.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* G */
  78.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* H */
  79.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* I */
  80.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* J */
  81.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* K */
  82.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* L */
  83.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* M */
  84.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* N */
  85.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* O */
  86.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* P */
  87.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* Q */
  88.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* R */
  89.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* S */
  90.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* T */
  91.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* U */
  92.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* V */
  93.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* W */
  94.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* X */
  95.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* Y */
  96.     (c_CWORD|c_ALPHA|c_SIMPLE),    /* Z */
  97.     (c_FENCE|c_SIMPLE),    /* [ */
  98.     c_SIMPLE,    /* \ */
  99.     (c_FENCE|c_SIMPLE),    /* ] */
  100.     c_SIMPLE,    /* ^ */
  101.     (c_CWORD|c_SIMPLE),    /* _ */
  102.     c_SIMPLE,    /* ` */
  103.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* a */
  104.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* b */
  105.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* c */
  106.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* d */
  107.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* e */
  108.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* f */
  109.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* g */
  110.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* h */
  111.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* i */
  112.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* j */
  113.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* k */
  114.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* l */
  115.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* m */
  116.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* n */
  117.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* o */
  118.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* p */
  119.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* q */
  120.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* r */
  121.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* s */
  122.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* t */
  123.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* u */
  124.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* v */
  125.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* w */
  126.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* x */
  127.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* y */
  128.     (c_CWORD|c_ALPHA|c_LOWC|c_SIMPLE),    /* z */
  129.     (c_FENCE|c_SIMPLE),    /* { */
  130.     c_SIMPLE,    /* | */
  131.     (c_FENCE|c_SIMPLE),    /* } */
  132.     c_SIMPLE,    /* ~ */
  133.     0    /* ^? */
  134. };
  135.  
  136. isinsert( CcharC )
  137. {    if ( CcharC > 0x80 ) return( 0 );
  138.     return( cclass[ CcharC ] & c_SIMPLE );
  139. }
  140. #ifdef NEVER
  141. isupper( c )
  142. int c;
  143. {    /* if ( c > 0x80 ) return( 0 ); */
  144.     return ( ( cclass[c] & ( c_ALPHA | c_LOWC )) == c_ALPHA );
  145. }
  146. #endif
  147. islower( c )
  148. int c;
  149. {    if ( c > 0x80 ) return ( 0 );
  150.     return ( ( cclass[c] &c_LOWC ));
  151. }
  152.  
  153. int wstyle;
  154.  
  155. inword()
  156. {    register int c;
  157.     if (curwp->w_doto == llength(curwp->w_dotp))
  158.         return (FALSE);
  159.     c = cclass[ lgetc( curwp->w_dotp, curwp->w_doto )];
  160.     if ( wstyle &1 ) return ( ( c & ( c_SIMPLE | c_WHITE )) == c_SIMPLE );
  161.     return ( c & c_CWORD );
  162. }
  163.  
  164.