URI: 
       tdict.h - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tdict.h (4296B)
       ---
            1 /* Runes for special purposes (0xe800-0xfdff is Private Use Area) */
            2 enum {        NONE=0xe800,        /* Emit nothing */
            3         TAGS,                /* Start of tag */
            4         TAGE,                /* End of tag */
            5         SPCS,                /* Start of special character name */
            6         PAR,                /* Newline, indent */
            7         LIGS,                /* Start of ligature codes */
            8 
            9 /* need to keep in sync with utils.c:/ligtab */
           10         LACU=LIGS,        /* Acute (´) ligatures */
           11         LGRV,                /* Grave (ˋ) ligatures */
           12         LUML,                /* Umlaut (¨) ligatures */
           13         LCED,                /* Cedilla (¸) ligatures */
           14         LTIL,                /* Tilde (˜) ligatures */
           15         LBRV,                /* Breve (˘) ligatures */
           16         LRNG,                /* Ring (˚) ligatures */
           17         LDOT,                /* Dot (˙) ligatures */
           18         LDTB,                /* Dot below (.) ligatures */
           19         LFRN,                /* Frown (⌢) ligatures */
           20         LFRB,                /* Frown below (̯) ligatures */
           21         LOGO,                /* Ogonek (˛) ligatures */
           22         LMAC,                /* Macron (¯) ligatures */
           23         LHCK,                /* Hacek (ˇ) ligatures */
           24         LASP,                /* Asper (ʽ) ligatures */
           25         LLEN,                /* Lenis (ʼ) ligatures */
           26         LBRB,                /* Breve below (̮) ligatures */
           27         LIGE,                /* End of ligature codes */
           28 
           29 /* need to keep in sync with utils.c:/multitab */
           30         MULTI,                /* Start of multi-rune codes */
           31         MAAS=MULTI,        /* ʽα */
           32         MALN,                /* ʼα */
           33         MAND,                /* and */
           34         MAOQ,                /* a/q */
           35         MBRA,                /* <| */
           36         MDD,                /* .. */
           37         MDDD,                /* ... */
           38         MEAS,                /* ʽε */
           39         MELN,                /* ʼε */
           40         MEMM,                /* —— */
           41         MHAS,                /* ʽη */
           42         MHLN,                /* ʼη */
           43         MIAS,                /* ʽι */
           44         MILN,                /* ʼι */
           45         MLCT,                /* ct */
           46         MLFF,                /* ff */
           47         MLFFI,                /* ffi */
           48         MLFFL,                /* ffl */
           49         MLFL,                /* fl */
           50         MLFI,                /* fi */
           51         MLLS,                /* ll with swing */
           52         MLST,                /* st */
           53         MOAS,                /* ʽο */
           54         MOLN,                /* ʼο */
           55         MOR,                /* or */
           56         MRAS,                /* ʽρ */
           57         MRLN,                /* ʼρ */
           58         MTT,                /* ~~ */
           59         MUAS,                /* ʽυ */
           60         MULN,                /* ʼυ */
           61         MWAS,                /* ʽω */
           62         MWLN,                /* ʼω */
           63         MOE,                /* oe */
           64         MES,                /* em space */
           65         MULTIE                /* End of multi-rune codes */
           66 };
           67 #define Nligs (LIGE-LIGS)
           68 #define Nmulti (MULTIE-MULTI)
           69 
           70 typedef struct Entry Entry;
           71 typedef struct Assoc Assoc;
           72 typedef struct Nassoc Nassoc;
           73 typedef struct Dict Dict;
           74 
           75 struct Entry {
           76         char        *start;                /* entry starts at start */
           77         char        *end;                /* and finishes just before end */
           78         long        doff;                /* dictionary offset (for debugging) */
           79 };
           80 
           81 struct Assoc {
           82         char        *key;
           83         long        val;
           84 };
           85 
           86 struct Nassoc {
           87         long        key;
           88         long        val;
           89 };
           90 
           91 struct Dict {
           92         char        *name;                        /* dictionary name */
           93         char        *desc;                        /* description */
           94         char        *path;                        /* path to dictionary data */
           95         char        *indexpath;                /* path to index data */
           96         long        (*nextoff)(long);        /* function to find next entry offset from arg */
           97         void        (*printentry)(Entry, int); /* function to print entry */
           98         void        (*printkey)(void);        /* function to print pronunciation key */
           99 };
          100 
          101 int        acomp(Rune*, Rune*);
          102 Rune        *changett(Rune *, Rune *, int);
          103 void        err(char*, ...);
          104 void        fold(Rune *);
          105 void        foldre(char*, char*);
          106 Rune        liglookup(Rune, Rune);
          107 long        lookassoc(Assoc*, int, char*);
          108 long        looknassoc(Nassoc*, int, long);
          109 void        outprint(char*, ...);
          110 void        outrune(long);
          111 void        outrunes(Rune *);
          112 void        outchar(int);
          113 void        outchars(char *);
          114 void        outnl(int);
          115 void        outpiece(char *, char *);
          116 void        runescpy(Rune*, Rune*);
          117 long        runetol(Rune*);
          118 char        *dictfile(char*);
          119 
          120 long        oednextoff(long);
          121 void        oedprintentry(Entry, int);
          122 void        oedprintkey(void);
          123 long        ahdnextoff(long);
          124 void        ahdprintentry(Entry, int);
          125 void        ahdprintkey(void);
          126 long        pcollnextoff(long);
          127 void        pcollprintentry(Entry, int);
          128 void        pcollprintkey(void);
          129 long        pcollgnextoff(long);
          130 void        pcollgprintentry(Entry, int);
          131 void        pcollgprintkey(void);
          132 long        movienextoff(long);
          133 void        movieprintentry(Entry, int);
          134 void        movieprintkey(void);
          135 long        pgwnextoff(long);
          136 void        pgwprintentry(Entry,int);
          137 void        pgwprintkey(void);
          138 void        rogetprintentry(Entry, int);
          139 long        rogetnextoff(long);
          140 void        rogetprintkey(void);
          141 long        slangnextoff(long);
          142 void        slangprintentry(Entry, int);
          143 void        slangprintkey(void);
          144 long        robertnextoff(long);
          145 void        robertindexentry(Entry, int);
          146 void        robertprintkey(void);
          147 long        robertnextflex(long);
          148 void        robertflexentry(Entry, int);
          149 long        simplenextoff(long);
          150 void        simpleprintentry(Entry, int);
          151 void        simpleprintkey(void);
          152 long        thesnextoff(long);
          153 void        thesprintentry(Entry, int);
          154 void        thesprintkey(void);
          155 long        worldnextoff(long);
          156 void        worldprintentry(Entry, int);
          157 void        worldprintkey(void);
          158 
          159 extern Biobuf        *bdict;
          160 extern Biobuf        *bout;
          161 extern int        linelen;
          162 extern int        breaklen;
          163 extern int        outinhibit;
          164 extern int        debug;
          165 extern Rune        multitab[][5];
          166 extern Dict        dicts[];
          167 
          168 #define asize(a) (sizeof (a)/sizeof(a[0]))