spam.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. enum{
  2. Dump = 0, /* Actions must be in order of descending importance */
  3. HoldHeader,
  4. Hold,
  5. SaveLine,
  6. Lineoff, /* Lineoff must be the last action code */
  7. Nactions,
  8. Nhash = 128,
  9. regexp = 1, /* types: literal string or regular expression */
  10. string = 2,
  11. MaxHtml = 256,
  12. Hdrsize = 4096,
  13. Bodysize = 8192,
  14. Maxread = 64*1024,
  15. };
  16. typedef struct spat Spat;
  17. typedef struct pattern Pattern;
  18. typedef struct patterns Patterns;
  19. struct spat
  20. {
  21. char* string;
  22. int len;
  23. int c1;
  24. Spat* next;
  25. Spat* alt;
  26. };
  27. struct pattern{
  28. struct pattern *next;
  29. int action;
  30. int type;
  31. Spat* alt;
  32. union{
  33. Reprog* pat;
  34. Spat* spat[Nhash];
  35. };
  36. };
  37. struct patterns {
  38. char *action;
  39. Pattern *strings;
  40. Pattern *regexps;
  41. };
  42. extern int debug;
  43. extern Patterns patterns[];
  44. extern char header[];
  45. extern char cmd[];
  46. extern void conv64(char*, char*, char*, int);
  47. extern int convert(char*, char*, char*, int, int);
  48. extern void* Malloc(long n);
  49. extern int matchpat(Pattern*, char*, Resub*);
  50. extern char* readmsg(Biobuf*, int*, int*);
  51. extern void parsepats(Biobuf*);
  52. extern void* Realloc(void*, ulong);
  53. extern void xprint(int, char*, Resub*);