ack.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #ifndef NORCSID
  2. #define RCS_ACK "$Header$"
  3. #endif
  4. /****************************************************************************/
  5. /* User settable options */
  6. /****************************************************************************/
  7. #define FRONTENDS "fe" /* The front-end definitions */
  8. #define TMPNAME "Ack%04x" /* Naming of temp. files */
  9. /****************************************************************************/
  10. /* Internal mnemonics, should not be tinkered with */
  11. /****************************************************************************/
  12. /* The names of some string variables */
  13. #define HOME "EM"
  14. #define RTS "RTS"
  15. #define HEAD "HEAD"
  16. #define TAIL "TAIL"
  17. #define SRC "SOURCE"
  18. #define LIBVAR "LNAME"
  19. /* Intended for flags, possibly in bit fields */
  20. #define YES 1
  21. #define NO 0
  22. #define MAYBE 2
  23. #define EXTERN extern
  24. #define SUFCHAR '.' /* Start of SUFFIX in file name */
  25. #define SPACE ' '
  26. #define TAB '\t'
  27. #define EQUAL '='
  28. #define S_VAR '{' /* Start of variable */
  29. #define C_VAR '}' /* End of variable */
  30. #define A_VAR '?' /* Variable alternative */
  31. #define BSLASH '\\' /* Backslash */
  32. #define STAR '*' /* STAR */
  33. #define C_IN '<' /* Token specifying input */
  34. #define C_OUT '>' /* Token specifying output */
  35. #define S_EXPR '(' /* Start of expression */
  36. #define C_EXPR ')' /* End of expression */
  37. #define M_EXPR ':' /* Middle of two suffix lists */
  38. #define T_EXPR '=' /* Start of tail */
  39. #define NO_SCAN 0200 /* Bit set in character to defeat recogn. */
  40. typedef struct {
  41. char *p_path; /* points to the full pathname */
  42. int p_keeps:1; /* The string should be thrown when unused */
  43. int p_keep:1; /* The file should be thrown away after use */
  44. } path ;
  45. #define p_cont(elem) ((path *)l_content(elem))
  46. /* Return values of setpath() */
  47. enum f_path { F_OK, F_NOMATCH, F_NOPATH } ;
  48. /* Library routines */
  49. extern char *index();
  50. extern char *rindex();
  51. extern char *strcpy();
  52. extern char *strcat();
  53. extern int getpid();
  54. extern int unlink();
  55. extern int close();
  56. extern int open();
  57. extern int creat();
  58. /* Own routines */
  59. enum f_path getpath();
  60. enum f_path scan_end();
  61. extern int noodstop();
  62. extern char *getvar();
  63. extern char *keeps();
  64. extern char *basename();
  65. extern char *skipblank();
  66. extern char *firstblank();
  67. extern char *getcore();
  68. extern char *changecore();
  69. #define freecore(area) free(area)
  70. #define DEBUG 1 /* Allow debugging of Ack */
  71. #ifndef DEBUG
  72. # define debug 0 /* To surprise all these 'if ( debug ) 's */
  73. #else
  74. extern int debug ;
  75. #endif