ack.h 2.7 KB

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