home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Unix / Shells / tcsh / Source / ed.term.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-21  |  10.8 KB  |  483 lines

  1. /* $Header: /u/christos/src/tcsh-6.03/RCS/ed.term.h,v 1.10 1992/10/14 20:19:19 christos Exp $ */
  2. /*
  3.  * ed.term.h: Local terminal header
  4.  */
  5. /*-
  6.  * Copyright (c) 1980, 1991 The Regents of the University of California.
  7.  * All rights reserved.
  8.  *
  9.  * Redistribution and use in source and binary forms, with or without
  10.  * modification, are permitted provided that the following conditions
  11.  * are met:
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in the
  16.  *    documentation and/or other materials provided with the distribution.
  17.  * 3. All advertising materials mentioning features or use of this software
  18.  *    must display the following acknowledgement:
  19.  *    This product includes software developed by the University of
  20.  *    California, Berkeley and its contributors.
  21.  * 4. Neither the name of the University nor the names of its contributors
  22.  *    may be used to endorse or promote products derived from this software
  23.  *    without specific prior written permission.
  24.  *
  25.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  26.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  27.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  28.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  29.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  30.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  31.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  32.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  34.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  35.  * SUCH DAMAGE.
  36.  */
  37. #ifndef _h_ed_term
  38. #define _h_ed_term
  39.  
  40. #define CONTROL(A)    ((A) & 037)
  41.  
  42. #if defined(TERMIO) || defined(POSIX)
  43. /*
  44.  * Aix compatible names
  45.  */
  46. # if defined(VWERSE) && !defined(VWERASE)
  47. #  define VWERASE VWERSE
  48. # endif /* VWERSE && !VWERASE */
  49.  
  50. # if defined(VDISCRD) && !defined(VDISCARD)
  51. #  define VDISCARD VDISCRD
  52. # endif /* VDISCRD && !VDISCARD */
  53.  
  54. # if defined(VFLUSHO) && !defined(VDISCARD)
  55. #  define VDISCARD VFLUSHO
  56. # endif  /* VFLUSHO && VDISCARD */
  57.  
  58. # if defined(VSTRT) && !defined(VSTART)
  59. #  define VSTART VSTRT
  60. # endif /* VSTRT && ! VSTART */
  61.  
  62. # if defined(VSTAT) && !defined(VSTATUS)
  63. #  define VSTATUS VSTAT
  64. # endif /* VSTAT && ! VSTATUS */
  65.  
  66. # ifndef ONLRET
  67. #  define ONLRET 0
  68. # endif /* ONLRET */
  69.  
  70. # ifndef TAB3
  71. #  ifdef OXTABS
  72. #   define TAB3 OXTABS
  73. #  else
  74. #   define TAB3 0
  75. #  endif /* OXTABS */
  76. # endif /* !TAB3 */
  77.  
  78. # if defined(OXTABS) && !defined(XTABS)
  79. #  define XTABS OXTABS
  80. # endif /* OXTABS && !XTABS */
  81.  
  82. # ifndef ONLCR
  83. #  define ONLCR 0
  84. # endif /* ONLCR */
  85.  
  86. # ifndef IEXTEN
  87. #  define IEXTEN 0
  88. # endif /* IEXTEN */
  89.  
  90. /*
  91.  * emx garbage
  92.  */
  93. # ifndef IDEFAULT
  94. #  define IDEFAULT 0
  95. # endif /* IDEFAULT */
  96.  
  97. # ifndef IDELETE
  98. #  define IDELETE 0
  99. # endif /* IDELETE */
  100.  
  101. # ifndef ECHOCTL
  102. #  define ECHOCTL 0
  103. # endif /* ECHOCTL */
  104.  
  105. # ifndef PARENB
  106. #  define PARENB 0
  107. # endif /* PARENB */
  108.  
  109. # ifndef EXTPROC
  110. #  define EXTPROC 0
  111. # endif /* EXTPROC */
  112.  
  113. # ifndef FLUSHO
  114. #  define FLUSHO  0
  115. # endif /* FLUSHO */
  116.  
  117.  
  118. # if defined(VDISABLE) && !defined(_POSIX_VDISABLE)
  119. #  define _POSIX_VDISABLE VDISABLE
  120. # endif /* VDISABLE && ! _POSIX_VDISABLE */
  121.  
  122. /*
  123.  * Work around ISC's definition of IEXTEN which is
  124.  * XCASE!
  125.  */
  126. # ifdef ISC
  127. #  if defined(IEXTEN) && defined(XCASE)
  128. #   if IEXTEN == XCASE
  129. #    undef IEXTEN
  130. #    define IEXTEN 0
  131. #   endif /* IEXTEN == XCASE */
  132. #  endif /* IEXTEN && XCASE */
  133. #  if defined(IEXTEN) && !defined(XCASE)
  134. #   define XCASE IEXTEN
  135. #   undef IEXTEN
  136. #   define IEXTEN 0
  137. #  endif /* IEXTEN && !XCASE */
  138. # endif /* ISC */
  139.  
  140. /*
  141.  * Work around convex weirdness where turning off IEXTEN makes us
  142.  * lose all postprocessing!
  143.  */
  144. #ifdef convex
  145. # if defined(IEXTEN) && IEXTEN != 0
  146. #  undef IEXTEN
  147. #  define IEXTEN 0
  148. # endif /* IEXTEN != 0 */
  149. #endif /* convex */
  150.  
  151.  
  152. # else /* SGTTY */
  153.  
  154. # ifndef LPASS8
  155. #  define LPASS8  0
  156. # endif /* LPASS8 */
  157.  
  158. #endif /* TERMIO || POSIX */
  159.  
  160. #ifndef _POSIX_VDISABLE
  161. # define _POSIX_VDISABLE ((unsigned char) -1)
  162. #endif /* _POSIX_VDISABLE */
  163.  
  164.  
  165. #if !defined(CREPRINT) && defined(CRPRNT)
  166. # define CREPRINT CRPRNT
  167. #endif /* !CREPRINT && CRPRNT */
  168. #if !defined(CDISCARD) && defined(CFLUSH)
  169. # define CDISCARD CFLUSH
  170. #endif /* !CDISCARD && CFLUSH */
  171. #if !defined(CDISCARD) && defined(CFLUSHO)
  172. # define CDISCARD CFLUSHO
  173. #endif /* !CDISCARD && CFLUSHO */
  174.  
  175. /*
  176.  * IRIX4.0 control macro is broken!
  177.  * Ignore and undef all default tty chars defined and redefine only
  178.  * the ones that are different in the IRIX file.
  179.  */
  180. #if __STDC__ && defined(IRIS4D)
  181. # undef  CINTR
  182. # define CINTR        0177    /* ^? */
  183. # undef  CQUIT
  184. # undef  CERASE
  185. # define CERASE        CONTROL('h')
  186. # undef  CKILL
  187. # undef  CEOF
  188. # undef  CEOL
  189. # undef  CEOL2    
  190. # undef  CSWTCH    
  191. # define CSWTCH        CONTROL('z')
  192. # undef  CDSWTCH 
  193. # undef  CERASE2
  194. # undef  CSTART
  195. # undef  CSTOP
  196. # undef  CWERASE
  197. # undef  CSUSP
  198. # undef  CDSUSP
  199. # undef  CREPRINT
  200. # undef  CDISCARD
  201. # undef  CLNEXT
  202. # undef  CSTATUS
  203. # undef  CPAGE
  204. # undef  CPGOFF
  205. # undef  CKILL2
  206. # undef  CBRK
  207. # undef  CMIN
  208. # undef  CTIME
  209. #endif /* __STDC__ && IRIS4D */
  210.  
  211.  
  212. #ifndef CINTR
  213. # define CINTR        CONTROL('c')
  214. #endif /* CINTR */
  215. #ifndef CQUIT
  216. # define CQUIT        034    /* ^\ */
  217. #endif /* CQUIT */
  218. #ifndef CERASE
  219. # define CERASE        0177    /* ^? */
  220. #endif /* CERASE */
  221. #ifndef CKILL
  222. # define CKILL        CONTROL('u')
  223. #endif /* CKILL */
  224. #ifndef CEOF
  225. # define CEOF        CONTROL('d')
  226. #endif /* CEOF */
  227. #ifndef CEOL
  228. # define CEOL        _POSIX_VDISABLE
  229. #endif /* CEOL */
  230. #ifndef CEOL2
  231. # define CEOL2        _POSIX_VDISABLE
  232. #endif /* CEOL2 */
  233. #ifndef CSWTCH
  234. # define CSWTCH        _POSIX_VDISABLE
  235. #endif /* CSWTCH */
  236. #ifndef CDSWTCH
  237. # define CDSWTCH    _POSIX_VDISABLE
  238. #endif /* CDSWTCH */
  239. #ifndef CERASE2
  240. # define CERASE2    _POSIX_VDISABLE
  241. #endif /* CERASE2 */
  242. #ifndef CSTART
  243. # define CSTART        CONTROL('q')
  244. #endif /* CSTART */
  245. #ifndef CSTOP
  246. # define CSTOP        CONTROL('s')
  247. #endif /* CSTOP */
  248. #ifndef CSUSP
  249. # define CSUSP        CONTROL('z')
  250. #endif /* CSUSP */
  251. #ifndef CDSUSP
  252. # define CDSUSP        CONTROL('y')
  253. #endif /* CDSUSP */
  254.  
  255. #ifdef hpux
  256.  
  257. # ifndef CREPRINT
  258. #  define CREPRINT    _POSIX_VDISABLE
  259. # endif /* CREPRINT */
  260. # ifndef CDISCARD
  261. #  define CDISCARD    _POSIX_VDISABLE
  262. # endif /* CDISCARD */
  263. # ifndef CLNEXT
  264. #  define CLNEXT    _POSIX_VDISABLE
  265. # endif /* CLNEXT */
  266. # ifndef CWERASE
  267. #  define CWERASE    _POSIX_VDISABLE
  268. # endif /* CWERASE */
  269.  
  270. #else /* !hpux */
  271.  
  272. # ifndef CREPRINT
  273. #  define CREPRINT    CONTROL('r')
  274. # endif /* CREPRINT */
  275. # ifndef CDISCARD
  276. #  define CDISCARD    CONTROL('o')
  277. # endif /* CDISCARD */
  278. # ifndef CLNEXT
  279. #  define CLNEXT    CONTROL('v')
  280. # endif /* CLNEXT */
  281. # ifndef CWERASE
  282. #  define CWERASE    CONTROL('w')
  283. # endif /* CWERASE */
  284.  
  285. #endif /* hpux */
  286.  
  287. #ifndef CSTATUS
  288. # define CSTATUS    CONTROL('t')
  289. #endif /* CSTATUS */
  290. #ifndef CPAGE
  291. # define CPAGE        ' '
  292. #endif /* CPAGE */
  293. #ifndef CPGOFF
  294. # define CPGOFF        CONTROL('m')
  295. #endif /* CPGOFF */
  296. #ifndef CKILL2
  297. # define CKILL2        _POSIX_VDISABLE
  298. #endif /* CKILL2 */
  299. #ifndef CBRK
  300. # ifndef masscomp
  301. #  define CBRK        0377
  302. # else
  303. #  define CBRK        '\0'
  304. # endif /* masscomp */
  305. #endif /* CBRK */
  306. #ifndef CMIN
  307. # define CMIN        CEOF
  308. #endif /* CMIN */
  309. #ifndef CTIME
  310. # define CTIME        CEOL
  311. #endif /* CTIME */
  312.  
  313. /*
  314.  * Fix for sun inconsistency. On termio VSUSP and the rest of the
  315.  * ttychars > NCC are defined. So we undefine them.
  316.  */
  317. #if defined(TERMIO) || defined(POSIX)
  318. # if defined(POSIX) && defined(NCCS)
  319. #  define NUMCC        NCCS
  320. # else
  321. #  ifdef NCC
  322. #   define NUMCC    NCC
  323. #  endif /* NCC */
  324. # endif /* POSIX && NCCS */
  325. # ifdef NUMCC
  326. #  ifdef VINTR
  327. #   if NUMCC <= VINTR
  328. #    undef VINTR
  329. #   endif /* NUMCC <= VINTR */
  330. #  endif /* VINTR */
  331. #  ifdef VQUIT
  332. #   if NUMCC <= VQUIT
  333. #    undef VQUIT
  334. #   endif /* NUMCC <= VQUIT */
  335. #  endif /* VQUIT */
  336. #  ifdef VERASE
  337. #   if NUMCC <= VERASE
  338. #    undef VERASE
  339. #   endif /* NUMCC <= VERASE */
  340. #  endif /* VERASE */
  341. #  ifdef VKILL
  342. #   if NUMCC <= VKILL
  343. #    undef VKILL
  344. #   endif /* NUMCC <= VKILL */
  345. #  endif /* VKILL */
  346. #  ifdef VEOF
  347. #   if NUMCC <= VEOF
  348. #    undef VEOF
  349. #   endif /* NUMCC <= VEOF */
  350. #  endif /* VEOF */
  351. #  ifdef VEOL
  352. #   if NUMCC <= VEOL
  353. #    undef VEOL
  354. #   endif /* NUMCC <= VEOL */
  355. #  endif /* VEOL */
  356. #  ifdef VEOL2
  357. #   if NUMCC <= VEOL2
  358. #    undef VEOL2
  359. #   endif /* NUMCC <= VEOL2 */
  360. #  endif /* VEOL2 */
  361. #  ifdef VSWTCH
  362. #   if NUMCC <= VSWTCH
  363. #    undef VSWTCH
  364. #   endif /* NUMCC <= VSWTCH */
  365. #  endif /* VSWTCH */
  366. #  ifdef VDSWTCH
  367. #   if NUMCC <= VDSWTCH
  368. #    undef VDSWTCH
  369. #   endif /* NUMCC <= VDSWTCH */
  370. #  endif /* VDSWTCH */
  371. #  ifdef VERASE2
  372. #   if NUMCC <= VERASE2
  373. #    undef VERASE2
  374. #   endif /* NUMCC <= VERASE2 */
  375. #  endif /* VERASE2 */
  376. #  ifdef VSTART
  377. #   if NUMCC <= VSTART
  378. #    undef VSTART
  379. #   endif /* NUMCC <= VSTART */
  380. #  endif /* VSTART */
  381. #  ifdef VSTOP
  382. #   if NUMCC <= VSTOP
  383. #    undef VSTOP
  384. #   endif /* NUMCC <= VSTOP */
  385. #  endif /* VSTOP */
  386. #  ifdef VWERASE
  387. #   if NUMCC <= VWERASE
  388. #    undef VWERASE
  389. #   endif /* NUMCC <= VWERASE */
  390. #  endif /* VWERASE */
  391. #  ifdef VSUSP
  392. #   if NUMCC <= VSUSP
  393. #    undef VSUSP
  394. #   endif /* NUMCC <= VSUSP */
  395. #  endif /* VSUSP */
  396. #  ifdef VDSUSP
  397. #   if NUMCC <= VDSUSP
  398. #    undef VDSUSP
  399. #   endif /* NUMCC <= VDSUSP */
  400. #  endif /* VDSUSP */
  401. #  ifdef VREPRINT
  402. #   if NUMCC <= VREPRINT
  403. #    undef VREPRINT
  404. #   endif /* NUMCC <= VREPRINT */
  405. #  endif /* VREPRINT */
  406. #  ifdef VDISCARD
  407. #   if NUMCC <= VDISCARD
  408. #    undef VDISCARD
  409. #   endif /* NUMCC <= VDISCARD */
  410. #  endif /* VDISCARD */
  411. #  ifdef VLNEXT
  412. #   if NUMCC <= VLNEXT
  413. #    undef VLNEXT
  414. #   endif /* NUMCC <= VLNEXT */
  415. #  endif /* VLNEXT */
  416. #  ifdef VSTATUS
  417. #   if NUMCC <= VSTATUS
  418. #    undef VSTATUS
  419. #   endif /* NUMCC <= VSTATUS */
  420. #  endif /* VSTATUS */
  421. #  ifdef VPAGE
  422. #   if NUMCC <= VPAGE
  423. #    undef VPAGE
  424. #   endif /* NUMCC <= VPAGE */
  425. #  endif /* VPAGE */
  426. #  ifdef VPGOFF
  427. #   if NUMCC <= VPGOFF
  428. #    undef VPGOFF
  429. #   endif /* NUMCC <= VPGOFF */
  430. #  endif /* VPGOFF */
  431. #  ifdef VKILL2
  432. #   if NUMCC <= VKILL2
  433. #    undef VKILL2
  434. #   endif /* NUMCC <= VKILL2 */
  435. #  endif /* VKILL2 */
  436. #  ifdef VBRK
  437. #   if NUMCC <= VBRK
  438. #    undef VBRK
  439. #   endif /* NUMCC <= VBRK */
  440. #  endif /* VBRK */
  441. #  ifdef VMIN
  442. #   if NUMCC <= VMIN
  443. #    undef VMIN
  444. #   endif /* NUMCC <= VMIN */
  445. #  endif /* VMIN */
  446. #  ifdef VTIME
  447. #   if NUMCC <= VTIME
  448. #    undef VTIME
  449. #   endif /* NUMCC <= VTIME */
  450. #  endif /* VTIME */
  451. # endif /* NUMCC */
  452. #endif /* !POSIX */
  453.  
  454. #define C_INTR         0
  455. #define C_QUIT         1
  456. #define C_ERASE         2
  457. #define C_KILL         3
  458. #define C_EOF         4
  459. #define C_EOL         5
  460. #define C_EOL2         6
  461. #define C_SWTCH         7
  462. #define C_DSWTCH     8
  463. #define C_ERASE2     9
  464. #define C_START        10
  465. #define C_STOP        11
  466. #define C_WERASE    12
  467. #define C_SUSP        13
  468. #define C_DSUSP        14
  469. #define C_REPRINT    15
  470. #define C_DISCARD    16
  471. #define C_LNEXT        17
  472. #define C_STATUS    18
  473. #define C_PAGE        19
  474. #define C_PGOFF        20
  475. #define C_KILL2        21
  476. #define C_BRK        22
  477. #define C_MIN        23
  478. #define C_TIME        24
  479. #define C_NCC        25
  480. #define C_SH(A)        (1 << (A))
  481.  
  482. #endif /* _h_ed_term */
  483.