home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / CKPM5X_S.ZIP / CKCDEB.H < prev    next >
C/C++ Source or Header  |  1990-05-03  |  5KB  |  212 lines

  1. /*  C K C D E B . H  */
  2. /*
  3.  This file is included by all C-Kermit modules, including the modules
  4.  that aren't specific to Kermit (like the command parser and the ck?tio and
  5.  ck?fio modules.  It specifies format codes for debug(), tlog(), and similar
  6.  functions, and includes any necessary typedefs to be used by all C-Kermit
  7.  modules, and also includes some feature selection compile-time switches.
  8. */
  9. /*
  10.  Copyright (C) 1985, 1990, Trustees of Columbia University in the City of New 
  11.  York. Permission is granted to any individual or institution to use, copy, or
  12.  redistribute this software so long as it is not sold for profit, provided this
  13.  copyright notice is retained.
  14. */
  15.  
  16. /*
  17.  DEBUG and TLOG should be defined in the Makefile if you want debugging
  18.  and transaction logs.  Don't define them if you want to save the space
  19.  and overhead.  (Note, in version 4F these definitions changed from "{}"
  20.  to the null string to avoid problems with semicolons after braces, as in:
  21.  "if (x) tlog(this); else tlog(that);"
  22. */
  23. #ifndef DEBUG
  24. #define debug(a,b,c,d)
  25. #endif
  26.  
  27. #ifndef TLOG
  28. #define tlog(a,b,c,d)
  29. #endif
  30.  
  31. /* Formats for debug(), tlog(), etc */
  32.  
  33. #define F000 0
  34. #define F001 1
  35. #define F010 2
  36. #define F011 3
  37. #define F100 4
  38. #define F101 5
  39. #define F110 6
  40. #define F111 7
  41.  
  42. /* Unix Version Dependencies */
  43.  
  44. /* signal() type, void or int? */
  45. #ifdef SVR3
  46. typedef void SIGTYP;            /* System V R3 and later */
  47. #else
  48. #ifdef SUNOS4
  49. typedef void SIGTYP;            /* SUNOS V 4.0 and later */
  50. #else
  51. #ifdef NEXT
  52. typedef void SIGTYP;            /* NeXT ??? */
  53. #else
  54. typedef int SIGTYP;
  55. #endif
  56. #endif
  57. #endif
  58.  
  59. /* Systems that expand tilde at the beginning of file or directory names */
  60. #ifdef BSD4
  61. #define DTILDE
  62. #endif
  63. #ifdef UXIII
  64. #define DTILDE
  65. #endif
  66. #ifdef OSK
  67. #define DTILDE
  68. #endif
  69.  
  70. /* C Compiler Dependencies */
  71.  
  72. #ifdef ZILOG
  73. #define setjmp setret
  74. #define longjmp longret
  75. #define jmp_buf ret_buf
  76. #define getcwd curdir
  77. /* typedef int ret_buf[10]; (apparently duplicated in setret.h) */
  78. #endif /* zilog */
  79.  
  80. #ifdef PROVX1
  81. typedef char CHAR;
  82. typedef long LONG;
  83. typedef int void;
  84. #else
  85. #ifdef V7
  86. typedef char CHAR;
  87. typedef long LONG;
  88. #else
  89. #ifdef C70
  90. typedef char CHAR;
  91. typedef long LONG;
  92. #else
  93. #ifdef BSD29
  94. typedef char CHAR;
  95. typedef long LONG;
  96. #else
  97. #ifndef CHAR
  98. typedef unsigned char CHAR;
  99. #endif
  100. #ifndef LONG
  101. typedef long LONG;
  102. #endif
  103. #endif
  104. #endif
  105. #endif
  106. #endif
  107.  
  108. #ifdef TOWER1
  109. typedef int void;
  110. #endif
  111.  
  112. /* Line delimiter for text files */
  113.  
  114. /*
  115.  If the system uses a single character for text file line delimitation,
  116.  define NLCHAR to the value of that character.  For text files, that
  117.  character will be converted to CRLF upon output, and CRLF will be converted
  118.  to that character on input during text-mode (default) packet operations.
  119. */
  120. #ifdef MAC                              /* Macintosh */
  121. #define NLCHAR 015
  122. #else
  123. #ifdef OSK              /* OS-9/68K */
  124. #define NLCHAR 015
  125. #else                                   /* All Unix-like systems */
  126. #define NLCHAR 012
  127. #endif
  128. #endif
  129.  
  130. /*
  131.  At this point, if there's a system that uses ordinary CRLF line
  132.  delimitation AND the C compiler actually returns both the CR and
  133.  the LF when doing input from a file, then #undef NLCHAR.
  134. */
  135. #ifdef OS2
  136. #undef NLCHAR
  137. #endif
  138.  
  139. /* The device name of a job's controlling terminal */
  140. /* Special for VMS, same for all Unixes (?), not used by Macintosh */
  141.  
  142. #ifdef vms
  143. #define CTTNAM "TT:"
  144. #else
  145. #ifdef datageneral
  146. #define CTTNAM "@output"
  147. #else
  148. #ifdef OSK
  149. extern char myttystr[];
  150. #define CTTNAM myttystr
  151. #else
  152. #define CTTNAM "/dev/tty"
  153. #endif
  154. #endif
  155. #endif
  156.  
  157. /* Some special includes for VAX/VMS */
  158.  
  159. #ifndef vms
  160. /* The following #includes cause problems for some preprocessors. */
  161. /*
  162. #endif
  163. #ifdef vms
  164. #include ssdef
  165. #include stsdef
  166. #endif
  167. #ifndef vms
  168. */
  169. #endif
  170.  
  171. /* Program return codes for VMS, DECUS C, and Unix */
  172.  
  173. #ifdef vms
  174. #define GOOD_EXIT   (SS$_NORMAL | STS$M_INHIB_MSG)
  175. #define BAD_EXIT    SS$_ABORT
  176. #else
  177. #ifdef decus
  178. #define GOOD_EXIT   IO_NORMAL
  179. #define BAD_EXIT    IO_ERROR
  180. #else
  181. #define GOOD_EXIT   0
  182. #define BAD_EXIT    1
  183. #endif
  184. #endif
  185.  
  186. /* Special hack for Fortune, which doesn't have <sys/file.h>... */
  187.  
  188. #ifdef FT18
  189. #define FREAD 0x01
  190. #define FWRITE 0x10
  191. #endif
  192.  
  193. /* special hack for os9/68k */
  194. #ifdef OSK
  195. #define SIGARB  5342            /* arbitrary user signal */
  196. #define SIGALRM 5343            /* and another */
  197. #endif
  198.  
  199. #ifdef OS2
  200. #ifdef putchar                  /* MSC 5.1 simply uses a macro which causes */
  201. #undef putchar                  /* no problems.                             */
  202. #endif
  203. #ifdef _MT                      /* MSC 6.0 goes and uses a function which   */
  204. int _putchar(int);              /* causes a linker error when fputchar is   */
  205. #define putchar _putchar        /* used as well.                            */
  206. #endif                          /* I don't support fputchar()!!             */
  207. #endif
  208.  
  209. /* Escape/quote character used by the command parser */
  210.  
  211. #define CMDQ '\\'
  212.