123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- typedef struct Exec Exec;
- typedef struct Rule Rule;
- typedef struct Ruleset Ruleset;
- /*
- * Object
- */
- enum
- {
- OArg,
- OAttr,
- OData,
- ODst,
- OPlumb,
- OSrc,
- OType,
- OWdir,
- };
- /*
- * Verbs
- */
- enum
- {
- VAdd, /* apply to OAttr only */
- VClient,
- VDelete, /* apply to OAttr only */
- VIs,
- VIsdir,
- VIsfile,
- VMatches,
- VSet,
- VStart,
- VTo,
- };
- struct Rule
- {
- int obj;
- int verb;
- char *arg; /* unparsed string of all arguments */
- char *qarg; /* quote-processed arg string */
- Reprog *regex;
- };
- struct Ruleset
- {
- int npat;
- int nact;
- Rule **pat;
- Rule **act;
- char *port;
- };
- struct Exec
- {
- Plumbmsg *msg;
- char *match[10];
- int p0; /* begin and end of match */
- int p1;
- int clearclick; /* click was expanded; remove attribute */
- int setdata; /* data should be set to $0 */
- int holdforclient; /* exec'ing client; keep message until port is opened */
- /* values of $variables */
- char *file;
- char *dir;
- };
- void parseerror(char*, ...);
- void error(char*, ...);
- void* emalloc(long);
- void* erealloc(void*, long);
- char* estrdup(char*);
- Ruleset** readrules(char*, int);
- void startfsys(void);
- Exec* matchruleset(Plumbmsg*, Ruleset*);
- void freeexec(Exec*);
- char* startup(Ruleset*, Exec*);
- char* printrules(void);
- void addport(char*);
- char* writerules(char*, int);
- char* expand(Exec*, char*, char**);
- void makeports(Ruleset*[]);
- void printinputstack(void);
- int popinput(void);
- Ruleset **rules;
- char *user;
- char *home;
- jmp_buf parsejmp;
- char *lasterror;
- char **ports;
- int nports;
|