home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume13 / e / e.h < prev    next >
C/C++ Source or Header  |  1988-01-31  |  3KB  |  152 lines

  1. /*
  2.  * e.h for e version 1.2
  3.  * =====================
  4.  *
  5.  *------------------------------------------------------------------------------
  6.  * terry jones, department of computer science, university of waterloo
  7.  *                waterloo ontario canada N2L 3G1
  8.  
  9.  * {ihnp4,allegra,decvax,utzoo,utcsri,clyde}!watmath!watdragon!tcjones
  10.  * tcjones@dragon.waterloo.{cdn,edu} tcjones@WATER.bitnet
  11.  * tcjones%watdragon@waterloo.csnet 
  12.  *------------------------------------------------------------------------------
  13.  */
  14.  
  15.  
  16.  
  17.  
  18. /*
  19.  * #includes common to all versions of uni*x
  20.  *
  21.  */
  22.  
  23.  
  24. #include <stdio.h>
  25. #include <sys/types.h>
  26. #include <sys/stat.h>
  27. #include <sys/file.h>
  28. #include <signal.h>
  29. #include <ctype.h>
  30. #include <sys/param.h>
  31.  
  32.  
  33.  
  34. /*
  35.  * un*x version dependent #includes 
  36.  *
  37.  */
  38.  
  39.  
  40. #ifdef sysV
  41. #  ifdef GEC
  42. #    include <local/ndir.h>
  43. #  else
  44. #    include <ndir.h>
  45. #  endif
  46. #  include <termio.h>
  47. #  include <string.h>
  48. #  include <fcntl.h>
  49. #else
  50. #  include <sys/dir.h>
  51. #  ifdef NFS
  52. #    include <time.h>
  53. #    include <sys/vnode.h>
  54. #    include <ufs/inode.h>
  55. #    include <sgtty.h>
  56. #  else
  57. #    include <sys/inode.h>
  58. #    include <sys/ioctl.h>
  59. #  endif
  60. #  include <strings.h>
  61. #endif sysV
  62.  
  63.  
  64.  
  65.  
  66. /*
  67.  * un*x dependent #defines
  68.  *
  69.  */
  70.  
  71.  
  72. #ifdef sysV
  73. #  define VI "/usr/bin/vi"
  74. #  define index strchr
  75. #  define rindex strrchr
  76. #else
  77. #  define VI "/usr/ucb/vi"
  78. #endif sysV
  79.  
  80.  
  81. /*
  82.  * Other checks...
  83.  *
  84.  */
  85.  
  86. #ifndef L_SET
  87. # define L_SET 0
  88. #endif
  89.  
  90. #ifndef IREAD
  91. # define IREAD    0400
  92. # define IWRITE    0200
  93. #endif
  94.  
  95.  
  96.  
  97. /*
  98.  * The #defines for things that aren't portability concerns.
  99.  *
  100.  */
  101.  
  102.  
  103.  
  104. #define HIST ".e"
  105. #define HIST_LINES 8
  106. #define HIST_CHARS 1024
  107. #define E_PATH "VIPATH"
  108. #define E_MODE 0644
  109. #define ARG_CHARS 1024
  110. #define MAX_ARGS 100
  111. #define MAX_PATH 1024
  112. #define BELL '\007'
  113. #define O_READ 00004
  114. #define G_READ 0004
  115.  
  116.  
  117.  
  118. /*
  119.  * #defines for the terminal() function.
  120.  *
  121.  */
  122.  
  123. #define TERM_RECORD 0
  124. #define TERM_SET 1
  125. #define TERM_RESET 2
  126.  
  127.  
  128.  
  129. /*
  130.  * STRUCT_ASST should be defined if your UN*X is capable of doing 
  131.  * structural assignment. This is (supposedly) true for System III, System V,
  132.  * UNIX/32V, BSD4.[23], v8 and v9. It's also in ANSI C, but *not* in 
  133.  * "The C programming language" by Kernhigan & Ritchie.
  134.  *
  135.  * This #define is only used in the function terminal(). Leave STRUCT_ASST
  136.  * defined and if it doesn't break you're ok. If it does, undefine it and
  137.  * you'll definitely be ok (but things will run slower - even though you
  138.  * wont notice that anyway.) Words words words. Ho hum.
  139.  *
  140.  */
  141.  
  142. #define STRUCT_ASST
  143.  
  144.  
  145. /*
  146.  * A slightly dangerous one. NEVER call this as (for example) "is_delim(cp++)"
  147.  * Or the incrementing will be done 4 times (not one).
  148.  */
  149.  
  150.  
  151. #define is_delim(c) ((*c)==' '||(*c)==':'||(*c)=='\t'||(*c)=='\n')
  152.