xt.h
上传用户:duobangkj
上传日期:2007-01-07
资源大小:70k
文件大小:4k
源码类别:

Telnet客户端

开发平台:

Unix_Linux

  1. /* xt.h -- header  file for XT
  2. This file uses 4-character tabstops
  3. */
  4. /* Local preferences and modems */
  5. /* CAPTFILE
  6. This is the default name given to the capture buffer in terminal mode (and
  7. during script processing). You can always reset this while running the
  8. program.
  9. */
  10. #define CAPTFILE "capture.log" /* Default capture file */
  11. /* LIBDIR
  12. This is the default name given to a directory where PHFILE, STARTUP, and
  13. any XT scripts might be found. XT will search for such files
  14. 1st) in a path in a colon-separated list of directories in
  15.  XT_PATH, if such an environment variable exists,
  16. 2nd) in the current directory,
  17. 3rd) in your HOME directory, if HOME is an environment variable,
  18. 4th) in LIBDIR.
  19. */
  20. #define LIBDIR "/u/lib/xt"
  21. /* STARTUP
  22. This is the default name of the startup script for XT. If this file is
  23. found it will be executed immediately on XT startup.
  24. */
  25. #define STARTUP ".xtrc" /* XT Startup Script */
  26. /* LOG
  27. If this manifest is set to 1, then whenever XT is run within a
  28. directory that contains a file called "xt.log", XT will append to
  29. that file a copy of all XT output, whether to the terminal "file" or
  30. to standard error. This can be useful for debugging scripts, coupled
  31. with the "debug" script command, which causes the lines of a script
  32. to be echoed to the terminal as they get executed. Since often such
  33. output passes up the terminal screen too quickly to read, the
  34. "xt.log" file provides a hard-copy of the XT session.
  35. No echoing to a "xt.log" file is done if XT is also capturing
  36. incoming text to a capture file. If no "xt.log" file exists in the
  37. current directory, then no such echoing is done regardless of whether
  38. LOG is here defined as 0 or 1.
  39. */
  40. #define LOG 1
  41. #if LOG && !NOREDEF
  42. # define fprintf Fprintf
  43. # define fputc Fputc
  44. # define fputs Fputs
  45. #endif
  46. /* NOSHELL
  47. Set this to 1 to disallow shell escapes. Both the "!" and "$" mechanisms
  48. from the XT prompt, and the analogous SHELL and PIPE keywords in scripts,
  49. silently do nothing. However the standard output of backquoted shell
  50. commands can still be assigned to a script variable.
  51. */
  52. #define NOSHELL 0
  53. /* Local Unix peculiarities */
  54. /* The type returned by signal() */
  55. typedef void RETSIGTYPE;
  56. /* The reader is kindly invited to leave the rest of this just as it is! */
  57. #ifndef ulong
  58. #define ulong unsigned long
  59. #endif
  60. #ifndef ushort
  61. #define ushort unsigned short
  62. #endif
  63. #ifndef unchar
  64. #define unchar unsigned char
  65. #endif
  66. #ifndef TRUE
  67. # define TRUE 1
  68. # define FALSE 0
  69. #endif
  70. #define SUCCESS 1
  71. #define FAILURE 0
  72. #define NEWMODE 0
  73. #define SIGMODE 1
  74. #define OLDMODE 2
  75. #ifdef toupper
  76. # undef toupper
  77. # undef tolower
  78. #endif
  79. #define SM_BUFF  256
  80. #define LG_BUFF 2048
  81. #define S show(1,Msg)
  82. #define S0(x) show(0,x)
  83. #define S1(x) show(1,x)
  84. #define S2(x) show(2,x)
  85. #define ENQ 0x5 /* ^E */
  86. /* I prefer this NIL macro to present a NIL pointer than most other
  87. variations that I have seen (eg, NULL, 0, or (cast) 0.
  88. Comme ci, comme ca. - larry gensch
  89. */
  90. #ifndef NIL
  91. # define NIL(type) (type *) 0
  92. #endif
  93. /* globals in three or more files */
  94. extern int CO, LI, my_escape, beep(), show_bindings();
  95. extern short capture, cismode;
  96. extern char captfile[], ddsname[], word[], hostname[],
  97. *wptr, line[], Msg[], *lptr, Name[], *getenv(), *unctrl();
  98. extern unsigned sleep();
  99. extern unchar BS, LK;
  100. extern void cls(), cur_on(), cur_off(), default_bindings(), do_script(),
  101. drawline(), exit(), free(), getline(), getword(), mode(),
  102. lc_word(), purge(), send_mbyte(), send_string(),
  103. sendbyte(), show(), show_abort(), ttgoto();
  104. extern FILE *tfp, /* the local terminal */
  105. *openfile(), *QueryCreate();
  106. extern struct termio oldmode, newmode, sigmode;
  107. typedef enum {
  108.     ENDCHAR = 128, /* Higher than any valid keyboard code */
  109.     CAPTYES,
  110.     CAPTEND,
  111.     DIVCHAR,
  112.     SCRPCHR,
  113.     HLPCHAR,
  114.     QUITCHR,
  115.     EMITSTR,
  116.     DOSCRPT,
  117.     BADFUNC = 0
  118. } bindfunc_t;
  119. typedef struct bindstruct {
  120. int bs_c; /* Character prefix */
  121. int bs_function;/* Function code */
  122. char *bs_string; /* String/script to emit */
  123. struct bindstruct *bs_next; /* Pointer to next entry */
  124. } binding_t;
  125. typedef struct {
  126. bindfunc_t bf_function;/* Function code */
  127. char *bf_name; /* bind_function() name */
  128. char *bf_string; /* String/script assigned */
  129. } bindstr_t;