summaryrefslogtreecommitdiffstats
path: root/usr.bin/sgmls/sgmlsasp/replace.h
blob: 18c9f82d759606b0a1ca5ba48c2f61a11b06e4c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* replace.h
   Interface to replacement file parser. */

enum replacement_type {
  DATA_REPL,
  ATTR_REPL
  };
  
struct replacement_item {
  union {
    char *attr;
    struct {
      char *s;
      unsigned n;
    } data;
  } u;
  enum replacement_type type;
  struct replacement_item *next;
};

#define NEWLINE_BEGIN 01
#define NEWLINE_END 02

struct replacement {
  unsigned flags;
  struct replacement_item *items;
};

enum event_type { START_ELEMENT, END_ELEMENT };

struct replacement_table *make_replacement_table P((void));
void load_replacement_file P((struct replacement_table *, char *));
  
struct replacement *
lookup_replacement P((struct replacement_table *, enum event_type, char *));
OpenPOWER on IntegriCloud