home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / vim / part03 < prev    next >
Encoding:
Text File  |  1993-04-22  |  57.7 KB  |  1,994 lines

  1. Newsgroups: comp.sources.misc
  2. From: mool@oce.nl (Bram Moolenaar)
  3. Subject: v37i003:  vim - Vi IMitation editor v1.27, Part03/24
  4. Message-ID: <1993Apr23.172908.16086@sparky.imd.sterling.com>
  5. X-Md4-Signature: a26f1e759afb6e7150ed6ea7810fcd00
  6. Date: Fri, 23 Apr 1993 17:29:08 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: mool@oce.nl (Bram Moolenaar)
  10. Posting-number: Volume 37, Issue 3
  11. Archive-name: vim/part03
  12. Environment: UNIX, AMIGA, MS-DOS
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then unpack
  16. # it by saving it into a file and typing "sh file".  To overwrite existing
  17. # files, type "sh file -c".  You can also feed this as standard input via
  18. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  19. # will see the following message at the end:
  20. #        "End of archive 3 (of 23)."
  21. # Contents:  vim/doc/vim.1 vim/src/arp_proto.h vim/src/cmdtab.h
  22. #   vim/src/cmdtab.tab vim/src/makefile.unix vim/src/param.h
  23. #   vim/src/quickfix.c vim/src/term.h vim/src/vim.h
  24. # Wrapped by mool@oce-rd2 on Mon Apr 19 15:50:06 1993
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'vim/doc/vim.1' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'vim/doc/vim.1'\"
  28. else
  29. echo shar: Extracting \"'vim/doc/vim.1'\" \(4378 characters\)
  30. sed "s/^X//" >'vim/doc/vim.1' <<'END_OF_FILE'
  31. X.TH VIM 1 "28 March 1992"
  32. X.SH NAME
  33. Xvim \- Vi IMitation, a programmers text editor
  34. X.SH SYNOPSIS
  35. X.B vim
  36. X[options] [file ..]
  37. X.br
  38. X.B vim
  39. X[options] \-t tag
  40. X.br
  41. X.B vim
  42. X[options] +[command] file ..
  43. X.br
  44. X.B vim
  45. X[options] \-c {command} file ..
  46. X.br
  47. X.B vim
  48. X[options] \-e
  49. X.SH DESCRIPTION
  50. X.B Vim
  51. Xis a text editor that is upwards compatible to vi. It can be used to edit any 
  52. XASCII text. It is especially useful for editing programs.
  53. X.PP
  54. XThere are a lot of enhancements above vi: multi level undo, command line 
  55. Xediting, filename completion, on line help, quoting, etc.. Read difference.doc 
  56. Xfor a summary of the differences between vi and Vim.
  57. X.PP
  58. XMost often
  59. X.B Vim
  60. Xis started to edit a single file with the command
  61. X.PP
  62. X    vim file
  63. X.PP
  64. XMore generally VIM is started with:
  65. X.PP
  66. X    vim [options] [filelist]
  67. X.PP
  68. XIf the filelist is missing, the editor will start with an empty buffer.
  69. XOtherwise exactly one out of the following four may be used to choose one or
  70. Xmore files to be edited.
  71. X.TP 12
  72. Xfile ..
  73. XA list of file names. The first one (alphabetically) will be
  74. Xthe current file and read into the buffer. The cursor will be
  75. Xpositioned on the first line of the buffer. You can get to the other files
  76. Xwith the ":next" command.
  77. X.TP
  78. X+[num] file ..
  79. XSame as the above, but the cursor will be positioned on line
  80. X"num". If "num" is missing, the cursor will be positioned on
  81. Xthe last line.
  82. X.TP
  83. X+/pat file ..
  84. XSame as the above, but the cursor will be positioned on the
  85. Xfirst occurrence of "pat" in the current file (see reference.doc, 
  86. Xsection "pattern searches" for the available search 
  87. Xpatterns).
  88. X.TP
  89. X+{command} file ..
  90. X.TP
  91. X-c {command} file ..
  92. XSame as the above, but {command} will be executed after the 
  93. Xfile has been read. {command} is interpreted as an Ex 
  94. Xcommand. If the {command} contains spaces it must 
  95. Xbe enclosed in double quotes (this depends on the shell that 
  96. Xis used).
  97. XExample: Vim "+set si" main.c
  98. X.TP
  99. X-t {tag}
  100. XThe file to edit and the initial cursor position depends on a "tag", a sort 
  101. Xof goto label. {tag} is looked up in the tags file, the associated file 
  102. Xbecomes the current file and the associated command is executed. Mostly this 
  103. Xis used for C programs. {tag} then should be a function name. The effect is 
  104. Xthat the file containing that function becomes the current file and the 
  105. Xcursor is positioned on the start of the function (see reference.doc, 
  106. Xsection "tag searches").
  107. X.TP
  108. X-e
  109. XStart in quickFix mode. The error file "AztecC.Err" 
  110. Xis read and the first error is displayed. Further errors can be jumped to 
  111. Xwith the ":cn" command. See reference.doc section 5.6.
  112. X.SH OPTIONS
  113. XThe options, if present, must precede the filelist. The options may be given 
  114. Xin any order.
  115. X.TP 12
  116. X-r
  117. XRecovery mode. The autoscript file is read to recover a 
  118. Xcrashed editing session. It has almost the same effect as 
  119. X"-s file.vim". See reference.doc, chapter "Recovery after a crash".
  120. X.TP
  121. X-v
  122. XView mode. The 'readonly' option will be set. You can still 
  123. Xedit the buffer, but will be prevented from accidental 
  124. Xoverwriting a file. If you do want to overwrite a file, add 
  125. Xan exclamation mark to the Ex command, as in ":w!". The 
  126. X'readonly' option can be reset with ":set noro" (see reference.doc, 
  127. Xoptions chapter).
  128. X.TP
  129. X-n
  130. XNo autoscript file will be written. Recovery after a crash 
  131. Xwill be impossible. Handy if you want to edit a file on a 
  132. Xvery slow medium (e.g. floppy). Can also be done with ":set 
  133. Xuc=0".
  134. X.TP
  135. X-s {scriptin}
  136. XThe script file {scriptin} is read. The characters in the 
  137. Xfile are interpreted as if you had typed them. The same can 
  138. Xbe done with the command ":source! {scriptin}". If the end 
  139. Xof the file is reached before the editor exits, further 
  140. Xcharacters are read from the keyboard.
  141. X.TP
  142. X-w {scriptout}
  143. XAll the characters that you type are recorded in the file
  144. X{scriptout}, until you exit VIM. This is useful if you want 
  145. Xto create a script file to be used with "vim -s" or 
  146. X":source!".
  147. X.TP
  148. X-T terminal
  149. XTells Vim the name of the terminal you are using. Should be a terminal known 
  150. Xto Vim (builtin) or defined in the termcap file.
  151. X.TP
  152. X-d device
  153. XOpen "device" for use as a terminal. Only on the Amiga. Example:
  154. X"\-d con:20/30/600/150".
  155. X.SH SEE ALSO
  156. XVim documentation: Reference.doc, index, difference.doc, unix.doc, vim.hlp.
  157. X.SH AUTHOR
  158. XMost of VIM was made by Bram Moolenaar.
  159. X.br
  160. XVIM is based on Stevie, worked on by: Tim Thompson,
  161. XTony Andrews and G.R. (Fred) Walter
  162. X.SH BUGS
  163. XProbably.
  164. END_OF_FILE
  165. if test 4378 -ne `wc -c <'vim/doc/vim.1'`; then
  166.     echo shar: \"'vim/doc/vim.1'\" unpacked with wrong size!
  167. fi
  168. # end of 'vim/doc/vim.1'
  169. fi
  170. if test -f 'vim/src/arp_proto.h' -a "${1}" != "-c" ; then 
  171.   echo shar: Will not clobber existing file \"'vim/src/arp_proto.h'\"
  172. else
  173. echo shar: Extracting \"'vim/src/arp_proto.h'\" \(6655 characters\)
  174. sed "s/^X//" >'vim/src/arp_proto.h' <<'END_OF_FILE'
  175. X#ifndef    PROTO_ARP_H
  176. X#define    PROTO_ARP_H    1
  177. X
  178. X/*
  179. X ************************************************************************
  180. X *    The arp copies of the dos.library calls...            *
  181. X ************************************************************************
  182. X */
  183. X
  184. X/* Only include these if you can use ARP.library without dos.library... */
  185. X#ifdef    DO_ARP_COPIES
  186. X#pragma    amicall(ArpBase, 0x1E, Open(d1, d2))
  187. X#pragma    amicall(ArpBase, 0x24, Close(d1))
  188. X#pragma    amicall(ArpBase, 0x2A, Read(d1, d2, d3))
  189. X#pragma    amicall(ArpBase, 0x30, Write(d1, d2, d3))
  190. X#pragma    amicall(ArpBase, 0x36, Input())
  191. X#pragma    amicall(ArpBase, 0x3C, Output())
  192. X#pragma    amicall(ArpBase, 0x42, Seek(d1, d2, d3))
  193. X#pragma    amicall(ArpBase, 0x48, DeleteFile(d1))
  194. X#pragma    amicall(ArpBase, 0x4E, Rename(d1, d2))
  195. X#pragma    amicall(ArpBase, 0x54, Lock(d1, d2))
  196. X#pragma    amicall(ArpBase, 0x5A, UnLock(d1))
  197. X#pragma    amicall(ArpBase, 0x60, DupLock(d1))
  198. X#pragma    amicall(ArpBase, 0x66, Examine(d1, d2))
  199. X#pragma    amicall(ArpBase, 0x6C, ExNext(d1, d2))
  200. X#pragma    amicall(ArpBase, 0x72, Info(d1, d2))
  201. X#pragma    amicall(ArpBase, 0x78, CreateDir(d1))
  202. X#pragma    amicall(ArpBase, 0x7E, CurrentDir(d1))
  203. X#pragma    amicall(ArpBase, 0x84, IoErr())
  204. X#pragma    amicall(ArpBase, 0x8A, CreateProc(d1, d2, d3, d4))
  205. X#pragma    amicall(ArpBase, 0x90, Exit(d1))
  206. X#pragma    amicall(ArpBase, 0x96, LoadSeg(d1))
  207. X#pragma    amicall(ArpBase, 0x9C, UnLoadSeg(d1))
  208. X#pragma    amicall(ArpBase, 0xAE, DeviceProc(d1))
  209. X#pragma    amicall(ArpBase, 0xB4, SetComment(d1, d2))
  210. X#pragma    amicall(ArpBase, 0xBA, SetProtection(d1, d2))
  211. X#pragma    amicall(ArpBase, 0xC0, DateStamp(d1))
  212. X#pragma    amicall(ArpBase, 0xC6, Delay(d1))
  213. X#pragma    amicall(ArpBase, 0xCC, WaitForChar(d1, d2))
  214. X#pragma    amicall(ArpBase, 0xD2, ParentDir(d1))
  215. X#pragma    amicall(ArpBase, 0xD8, IsInteractive(d1))
  216. X#pragma    amicall(ArpBase, 0xDE, Execute(d1, d2, d3))
  217. X#endif
  218. X
  219. X/*
  220. X ************************************************************************
  221. X *    Stuff only in arp.library                    *
  222. X ************************************************************************
  223. X */
  224. X/*    amicall(ArpBase, 0x0E4, Printf(a0, a1))    This does not work without glue */
  225. X/*    amicall(ArpBase, 0x0EA, FPrintf(d0, a0, a1))    This does not work without glue */
  226. X#pragma    amicall(ArpBase, 0x0F0, Puts(a1))
  227. X#pragma    amicall(ArpBase, 0x0F6, Readline(a0))
  228. X#pragma    amicall(ArpBase, 0x0FC, GADS(a0, d0, a1, a2, a3))
  229. X#pragma    amicall(ArpBase, 0x102, Atol(a0))
  230. X#pragma    amicall(ArpBase, 0x108, EscapeString(a0))
  231. X#pragma    amicall(ArpBase, 0x10E, CheckAbort(a1))
  232. X#pragma    amicall(ArpBase, 0x114, CheckBreak(d1, a1))
  233. X#pragma    amicall(ArpBase, 0x11A, Getenv(a0, a1, d0))
  234. X#pragma    amicall(ArpBase, 0x120, Setenv(a0, a1))
  235. X#pragma    amicall(ArpBase, 0x126, FileRequest(a0))
  236. X#pragma    amicall(ArpBase, 0x12C, CloseWindowSafely(a0, a1))
  237. X#pragma    amicall(ArpBase, 0x132, CreatePort(a0, d0))
  238. X#pragma    amicall(ArpBase, 0x138, DeletePort(a1))
  239. X#pragma    amicall(ArpBase, 0x13E, SendPacket(d0, a0, a1))
  240. X#pragma    amicall(ArpBase, 0x144, InitStdPacket(d0, a0, a1, a2))
  241. X#pragma    amicall(ArpBase, 0x14A, PathName(d0, a0, d1))
  242. X#pragma    amicall(ArpBase, 0x150, Assign(a0, a1))
  243. X#pragma    amicall(ArpBase, 0x156, DosAllocMem(d0))
  244. X#pragma    amicall(ArpBase, 0x15C, DosFreeMem(a1))
  245. X#pragma    amicall(ArpBase, 0x162, BtoCStr(a0, d0, d1))
  246. X#pragma    amicall(ArpBase, 0x168, CtoBStr(a0, d0, d1))
  247. X#pragma    amicall(ArpBase, 0x16E, GetDevInfo(a2))
  248. X#pragma    amicall(ArpBase, 0x174, FreeTaskResList())
  249. X#pragma    amicall(ArpBase, 0x17A, ArpExit(d0, d2))
  250. X#pragma    amicall(ArpBase, 0x180, ArpAlloc(d0))
  251. X/*    amicall(ArpBase, 0x186, ArpAllocMem(d0, d1))    Secondary result - IoErr() */
  252. X/*    amicall(ArpBase, 0x18C, ArpOpen(d1, d2))    Secondary result - IoErr() */
  253. X/*    amicall(ArpBase, 0x192, ArpDupLock(d1))        Secondary result - IoErr() */
  254. X/*    amicall(ArpBase, 0x198, ArpLock(d1, d2))    Secondary result - IoErr() */
  255. X/*    amicall(ArpBase, 0x19E, RListAlloc(a0, d0))    Secondary result - IoErr() */
  256. X#pragma    amicall(ArpBase, 0x1A4, FindCLI(d0))
  257. X#pragma    amicall(ArpBase, 0x1AA, QSort(a0, d0, d1, a1))
  258. X
  259. X#pragma    amicall(ArpBase, 0x1B0, PatternMatch(a0, a1))
  260. X#pragma    amicall(ArpBase, 0x1B6, FindFirst(d0, a0))
  261. X#pragma    amicall(ArpBase, 0x1BC, FindNext(a0))
  262. X#pragma    amicall(ArpBase, 0x1C2, FreeAnchorChain(a0))
  263. X
  264. X#pragma    amicall(ArpBase, 0x1C8, CompareLock(d0, d1))
  265. X
  266. X#pragma    amicall(ArpBase, 0x1CE, FindTaskResList())
  267. X#pragma    amicall(ArpBase, 0x1D4, CreateTaskResList())
  268. X#pragma    amicall(ArpBase, 0x1DA, FreeResList(a1))
  269. X#pragma    amicall(ArpBase, 0x1E0, FreeTrackedItem(a1))
  270. X/*    amicall(ArpBase, 0x1E6, GetTracker())    Stores the ID in the tracker */
  271. X
  272. X#pragma    amicall(ArpBase, 0x1EC, GetAccess(a1))
  273. X#pragma    amicall(ArpBase, 0x1F2, FreeAccess(a1))
  274. X
  275. X#pragma    amicall(ArpBase, 0x1F8, FreeDAList(a1))
  276. X#pragma    amicall(ArpBase, 0x1FE, AddDANode(a0, a1, d0, d1))
  277. X#pragma    amicall(ArpBase, 0x204, AddDADevs(a0, d0))
  278. X
  279. X#pragma    amicall(ArpBase, 0x20A, Strcmp(a0, a1))
  280. X#pragma    amicall(ArpBase, 0x210, Strncmp(a0, a1, d0))
  281. X#pragma    amicall(ArpBase, 0x216, Toupper(d0))
  282. X#pragma    amicall(ArpBase, 0x21C, SyncRun(a0, a1, d0, d1))
  283. X
  284. X/*
  285. X ************************************************************************
  286. X *    Added V32 of arp.library                    *
  287. X *    Note that SpawnShell is ASyncRun but was added at V39 of arp...    *
  288. X ************************************************************************
  289. X */
  290. X#pragma    amicall(ArpBase, 0x222, ASyncRun(a0, a1, a2))
  291. X#pragma    amicall(ArpBase, 0x222, SpawnShell(a0, a1, a2))
  292. X#pragma    amicall(ArpBase, 0x228, LoadPrg(d1))
  293. X#pragma    amicall(ArpBase, 0x22E, PreParse(a0, a1))
  294. X
  295. X/*
  296. X ************************************************************************
  297. X *    Added V33 of arp.library                    *
  298. X ************************************************************************
  299. X */
  300. X#pragma    amicall(ArpBase, 0x234, StamptoStr(a0))
  301. X#pragma    amicall(ArpBase, 0x23A, StrtoStamp(a0))
  302. X
  303. X#pragma    amicall(ArpBase, 0x240, ObtainResidentPrg(a0))
  304. X#pragma    amicall(ArpBase, 0x246, AddResidentPrg(d1, a0))
  305. X#pragma    amicall(ArpBase, 0x24C, RemResidentPrg(a0))
  306. X#pragma    amicall(ArpBase, 0x252, UnLoadPrg(d1))
  307. X#pragma    amicall(ArpBase, 0x258, LMult(d0, d1))
  308. X#pragma    amicall(ArpBase, 0x25E, LDiv(d0, d1))
  309. X#pragma    amicall(ArpBase, 0x264, LMod(d0, d1))
  310. X
  311. X#pragma    amicall(ArpBase, 0x26A, CheckSumPrg(d1))
  312. X#pragma    amicall(ArpBase, 0x270, TackOn(a0, a1))
  313. X#pragma    amicall(ArpBase, 0x276, BaseName(a0))
  314. X#pragma    amicall(ArpBase, 0x27C, ReleaseResidentPrg(d1))
  315. X
  316. X/*
  317. X ************************************************************************
  318. X *    Added V36 of arp.library                    *
  319. X ************************************************************************
  320. X */
  321. X/*    amicall(ArpBase, 0x282, SPrintf(d0, a0, a1))    This does not work without glue */
  322. X#pragma    amicall(ArpBase, 0x288, GetKeywordIndex(a0, a1))
  323. X/*    amicall(ArpBase, 0x28E, ArpOpenLibrary(a1, d0))    Secondary result - IoErr() */
  324. X#pragma    amicall(ArpBase, 0x294, ArpAllocFreq())
  325. X
  326. X#endif
  327. END_OF_FILE
  328. if test 6655 -ne `wc -c <'vim/src/arp_proto.h'`; then
  329.     echo shar: \"'vim/src/arp_proto.h'\" unpacked with wrong size!
  330. fi
  331. # end of 'vim/src/arp_proto.h'
  332. fi
  333. if test -f 'vim/src/cmdtab.h' -a "${1}" != "-c" ; then 
  334.   echo shar: Will not clobber existing file \"'vim/src/cmdtab.h'\"
  335. else
  336. echo shar: Extracting \"'vim/src/cmdtab.h'\" \(5973 characters\)
  337. sed "s/^X//" >'vim/src/cmdtab.h' <<'END_OF_FILE'
  338. X/* vi:ts=4
  339. X *
  340. X * VIM - Vi IMitation
  341. X *
  342. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  343. X *                            Tim Thompson            twitch!tjt
  344. X *                            Tony Andrews            onecom!wldrdg!tony 
  345. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  346. X */
  347. X
  348. X/*
  349. X * THIS FILE IS AUTOMATICALLY PRODUCED - DO NOT EDIT
  350. X */
  351. X
  352. X#define RANGE    0x01            /* allow a linespecs */
  353. X#define BANG    0x02            /* allow a ! after the command name */
  354. X#define EXTRA    0x04            /* allow extra args after command name */
  355. X#define XFILE    0x08            /* expand wildcards in extra part */
  356. X#define NOSPC    0x10            /* no spaces allowed in the extra part */
  357. X#define    DFLALL    0x20            /* default file range is 1,$ */
  358. X#define NODFL    0x40            /* do not default to the current file name */
  359. X#define NEEDARG    0x80            /* argument required */
  360. X#define TRLBAR    0x100            /* check for trailing vertical bar */
  361. X#define REGSTR    0x200            /* allow "x for register designation */
  362. X#define COUNT    0x400            /* allow count in argument */
  363. X#define NOTRLCOM 0x800            /* no trailing comment allowed */
  364. X#define ZEROR    0x1000            /* zero line number allowed */
  365. X#define USECTRLV 0x2000            /* do not remove CTRL-V from argument */
  366. X#define FILES    (XFILE + EXTRA)    /* multiple extra files allowed */
  367. X#define WORD1    (EXTRA + NOSPC)    /* one extra word allowed */
  368. X#define FILE1    (FILES + NOSPC)    /* 1 file allowed, defaults to current file */
  369. X#define NAMEDF    (FILE1 + NODFL)    /* 1 file allowed, defaults to "" */
  370. X#define NAMEDFS    (FILES + NODFL)    /* multiple files allowed, default is "" */
  371. X
  372. X/*
  373. X * This array maps ex command names to command codes. The order in which
  374. X * command names are listed below is significant -- ambiguous abbreviations
  375. X * are always resolved to be the first possible match (e.g. "r" is taken
  376. X * to mean "read", not "rewind", because "read" comes before "rewind").
  377. X * Not supported commands are included to avoid ambiguities.
  378. X */
  379. Xstatic struct
  380. X{
  381. X    char    *cmd_name;    /* name of the command */
  382. X    short     cmd_argt;    /* command line arguments permitted/needed/used */
  383. X} cmdnames[] =
  384. X{
  385. X    {"append",        BANG+RANGE+TRLBAR},            /* not supported */
  386. X#define CMD_append 0
  387. X    {"abbreviate",    EXTRA+TRLBAR+NOTRLCOM},        /* not supported */
  388. X#define CMD_abbreviate 1
  389. X    {"args",        TRLBAR},
  390. X#define CMD_args 2
  391. X    {"change",        BANG+RANGE+COUNT+TRLBAR},    /* not supported */
  392. X#define CMD_change 3
  393. X    {"cd",            NAMEDF+TRLBAR},
  394. X#define CMD_cd 4
  395. X    {"cc",            TRLBAR+WORD1+BANG},
  396. X#define CMD_cc 5
  397. X    {"cf",            TRLBAR+FILE1+BANG},
  398. X#define CMD_cf 6
  399. X    {"cl",            TRLBAR},
  400. X#define CMD_cl 7
  401. X    {"cn",            TRLBAR+BANG},
  402. X#define CMD_cn 8
  403. X    {"cp",            TRLBAR+BANG},
  404. X#define CMD_cp 9
  405. X    {"cq",            TRLBAR+BANG},
  406. X#define CMD_cq 10
  407. X    {"copy",        RANGE+EXTRA+TRLBAR},
  408. X#define CMD_copy 11
  409. X    {"chdir",        NAMEDF+TRLBAR},
  410. X#define CMD_chdir 12
  411. X    {"delete",        RANGE+REGSTR+COUNT+TRLBAR},
  412. X#define CMD_delete 13
  413. X    {"display",        TRLBAR},
  414. X#define CMD_display 14
  415. X    {"digraph",        EXTRA+TRLBAR},
  416. X#define CMD_digraph 15
  417. X    {"edit",        BANG+FILE1+TRLBAR},
  418. X#define CMD_edit 16
  419. X    {"ex",            BANG+FILE1+TRLBAR},
  420. X#define CMD_ex 17
  421. X    {"file",        FILE1+TRLBAR},
  422. X#define CMD_file 18
  423. X    {"files",        TRLBAR},
  424. X#define CMD_files 19
  425. X    {"global",        RANGE+BANG+EXTRA+DFLALL},
  426. X#define CMD_global 20
  427. X    {"help",        TRLBAR},
  428. X#define CMD_help 21
  429. X    {"insert",        BANG+RANGE+TRLBAR},            /* not supported */
  430. X#define CMD_insert 22
  431. X    {"join",        RANGE+COUNT+TRLBAR},
  432. X#define CMD_join 23
  433. X    {"jumps",        TRLBAR},
  434. X#define CMD_jumps 24
  435. X    {"k",            RANGE+WORD1+TRLBAR},
  436. X#define CMD_k 25
  437. X    {"list",        RANGE+COUNT+TRLBAR},
  438. X#define CMD_list 26
  439. X    {"move",        RANGE+EXTRA+TRLBAR},
  440. X#define CMD_move 27
  441. X    {"mark",        RANGE+WORD1+TRLBAR},
  442. X#define CMD_mark 28
  443. X    {"marks",        TRLBAR},
  444. X#define CMD_marks 29
  445. X    {"map",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  446. X#define CMD_map 30
  447. X    {"mkexrc",        BANG+FILE1+TRLBAR},
  448. X#define CMD_mkexrc 31
  449. X    {"mkvimrc",        BANG+FILE1+TRLBAR},
  450. X#define CMD_mkvimrc 32
  451. X    {"next",        RANGE+BANG+NAMEDFS+TRLBAR},
  452. X#define CMD_next 33
  453. X    {"number",        RANGE+COUNT+TRLBAR},
  454. X#define CMD_number 34
  455. X    {"noremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  456. X#define CMD_noremap 35
  457. X    {"Next",        RANGE+BANG+TRLBAR},
  458. X#define CMD_Next 36
  459. X    {"print",        RANGE+COUNT+TRLBAR},
  460. X#define CMD_print 37
  461. X    {"pop",            RANGE+TRLBAR+ZEROR},
  462. X#define CMD_pop 38
  463. X    {"put",            RANGE+BANG+REGSTR+TRLBAR},
  464. X#define CMD_put 39
  465. X    {"previous",    RANGE+BANG+TRLBAR},
  466. X#define CMD_previous 40
  467. X    {"quit",        BANG+TRLBAR},
  468. X#define CMD_quit 41
  469. X    {"read",        RANGE+NAMEDF+NEEDARG+TRLBAR+ZEROR},
  470. X#define CMD_read 42
  471. X    {"rewind",        BANG+TRLBAR},
  472. X#define CMD_rewind 43
  473. X    {"recover",        FILE1+TRLBAR},                /* not supported */
  474. X#define CMD_recover 44
  475. X    {"substitute",    RANGE+EXTRA},
  476. X#define CMD_substitute 45
  477. X    {"set",            EXTRA+TRLBAR},
  478. X#define CMD_set 46
  479. X    {"setkeymap",    NAMEDF+TRLBAR},
  480. X#define CMD_setkeymap 47
  481. X    {"shell",        TRLBAR},
  482. X#define CMD_shell 48
  483. X    {"source",        NAMEDF+NEEDARG+TRLBAR},
  484. X#define CMD_source 49
  485. X    {"stop",        TRLBAR+BANG},
  486. X#define CMD_stop 50
  487. X    {"t",            RANGE+EXTRA+TRLBAR},
  488. X#define CMD_t 51
  489. X    {"tag",            RANGE+BANG+WORD1+TRLBAR+ZEROR},
  490. X#define CMD_tag 52
  491. X    {"tags",        TRLBAR},
  492. X#define CMD_tags 53
  493. X    {"undo",        TRLBAR},
  494. X#define CMD_undo 54
  495. X    {"unabbreviate", EXTRA+TRLBAR},                /* not supported */
  496. X#define CMD_unabbreviate 55
  497. X    {"unmap",        BANG+EXTRA+TRLBAR},
  498. X#define CMD_unmap 56
  499. X    {"vglobal",        RANGE+EXTRA+DFLALL},
  500. X#define CMD_vglobal 57
  501. X    {"version",        TRLBAR},
  502. X#define CMD_version 58
  503. X    {"visual",        RANGE+BANG+FILE1+TRLBAR},
  504. X#define CMD_visual 59
  505. X    {"write",        RANGE+BANG+FILE1+DFLALL+TRLBAR},
  506. X#define CMD_write 60
  507. X    {"wnext",        RANGE+BANG+FILE1+TRLBAR},
  508. X#define CMD_wnext 61
  509. X    {"winsize",        EXTRA+NEEDARG+TRLBAR},
  510. X#define CMD_winsize 62
  511. X    {"wq",            BANG+FILE1+DFLALL+TRLBAR},
  512. X#define CMD_wq 63
  513. X    {"xit",            BANG+FILE1+DFLALL+TRLBAR},
  514. X#define CMD_xit 64
  515. X    {"yank",        RANGE+REGSTR+COUNT+TRLBAR},
  516. X#define CMD_yank 65
  517. X    {"z",            RANGE+COUNT+TRLBAR},        /* not supported */
  518. X#define CMD_z 66
  519. X    {"@",            RANGE+EXTRA+TRLBAR},
  520. X#define CMD_at 67
  521. X    {"!",            RANGE+NAMEDFS},
  522. X#define CMD_bang 68
  523. X    {"<",            RANGE+COUNT+TRLBAR},
  524. X#define CMD_lshift 69
  525. X    {">",            RANGE+COUNT+TRLBAR},
  526. X#define CMD_rshift 70
  527. X    {"=",            RANGE+TRLBAR},
  528. X#define CMD_equal 71
  529. X    {"&",            RANGE+EXTRA},
  530. X#define CMD_and 72
  531. X    {"~",            RANGE+TRLBAR}                /* not supported */
  532. X#define CMD_tilde 73
  533. X#define CMD_SIZE 74
  534. X
  535. X};
  536. END_OF_FILE
  537. if test 5973 -ne `wc -c <'vim/src/cmdtab.h'`; then
  538.     echo shar: \"'vim/src/cmdtab.h'\" unpacked with wrong size!
  539. fi
  540. # end of 'vim/src/cmdtab.h'
  541. fi
  542. if test -f 'vim/src/cmdtab.tab' -a "${1}" != "-c" ; then 
  543.   echo shar: Will not clobber existing file \"'vim/src/cmdtab.tab'\"
  544. else
  545. echo shar: Extracting \"'vim/src/cmdtab.tab'\" \(4518 characters\)
  546. sed "s/^X//" >'vim/src/cmdtab.tab' <<'END_OF_FILE'
  547. X/* vi:ts=4
  548. X *
  549. X * VIM - Vi IMitation
  550. X *
  551. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  552. X *                            Tim Thompson            twitch!tjt
  553. X *                            Tony Andrews            onecom!wldrdg!tony 
  554. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  555. X */
  556. X
  557. X/*
  558. X * |This file is read by mkcmdtab to produce cmdtab.h.
  559. X *
  560. X * The bars are used to recognize file positions. Do not insert/delete them.|
  561. X */
  562. X
  563. X#define RANGE    0x01            /* allow a linespecs */
  564. X#define BANG    0x02            /* allow a ! after the command name */
  565. X#define EXTRA    0x04            /* allow extra args after command name */
  566. X#define XFILE    0x08            /* expand wildcards in extra part */
  567. X#define NOSPC    0x10            /* no spaces allowed in the extra part */
  568. X#define    DFLALL    0x20            /* default file range is 1,$ */
  569. X#define NODFL    0x40            /* do not default to the current file name */
  570. X#define NEEDARG    0x80            /* argument required */
  571. X#define TRLBAR    0x100            /* check for trailing vertical bar */
  572. X#define REGSTR    0x200            /* allow "x for register designation */
  573. X#define COUNT    0x400            /* allow count in argument */
  574. X#define NOTRLCOM 0x800            /* no trailing comment allowed */
  575. X#define ZEROR    0x1000            /* zero line number allowed */
  576. X#define USECTRLV 0x2000            /* do not remove CTRL-V from argument */
  577. X#define FILES    (XFILE + EXTRA)    /* multiple extra files allowed */
  578. X#define WORD1    (EXTRA + NOSPC)    /* one extra word allowed */
  579. X#define FILE1    (FILES + NOSPC)    /* 1 file allowed, defaults to current file */
  580. X#define NAMEDF    (FILE1 + NODFL)    /* 1 file allowed, defaults to "" */
  581. X#define NAMEDFS    (FILES + NODFL)    /* multiple files allowed, default is "" */
  582. X
  583. X/*
  584. X * This array maps ex command names to command codes. The order in which
  585. X * command names are listed below is significant -- ambiguous abbreviations
  586. X * are always resolved to be the first possible match (e.g. "r" is taken
  587. X * to mean "read", not "rewind", because "read" comes before "rewind").
  588. X * Not supported commands are included to avoid ambiguities.
  589. X */
  590. Xstatic struct
  591. X{
  592. X    char    *cmd_name;    /* name of the command */
  593. X    short     cmd_argt;    /* command line arguments permitted/needed/used */
  594. X} cmdnames[] =
  595. X{
  596. X|    {"append",        BANG+RANGE+TRLBAR},            /* not supported */
  597. X    {"abbreviate",    EXTRA+TRLBAR+NOTRLCOM},        /* not supported */
  598. X    {"args",        TRLBAR},
  599. X    {"change",        BANG+RANGE+COUNT+TRLBAR},    /* not supported */
  600. X    {"cd",            NAMEDF+TRLBAR},
  601. X    {"cc",            TRLBAR+WORD1+BANG},
  602. X    {"cf",            TRLBAR+FILE1+BANG},
  603. X    {"cl",            TRLBAR},
  604. X    {"cn",            TRLBAR+BANG},
  605. X    {"cp",            TRLBAR+BANG},
  606. X    {"cq",            TRLBAR+BANG},
  607. X    {"copy",        RANGE+EXTRA+TRLBAR},
  608. X    {"chdir",        NAMEDF+TRLBAR},
  609. X    {"delete",        RANGE+REGSTR+COUNT+TRLBAR},
  610. X    {"display",        TRLBAR},
  611. X    {"digraph",        EXTRA+TRLBAR},
  612. X    {"edit",        BANG+FILE1+TRLBAR},
  613. X    {"ex",            BANG+FILE1+TRLBAR},
  614. X    {"file",        FILE1+TRLBAR},
  615. X    {"files",        TRLBAR},
  616. X    {"global",        RANGE+BANG+EXTRA+DFLALL},
  617. X    {"help",        TRLBAR},
  618. X    {"insert",        BANG+RANGE+TRLBAR},            /* not supported */
  619. X    {"join",        RANGE+COUNT+TRLBAR},
  620. X    {"jumps",        TRLBAR},
  621. X    {"k",            RANGE+WORD1+TRLBAR},
  622. X    {"list",        RANGE+COUNT+TRLBAR},
  623. X    {"move",        RANGE+EXTRA+TRLBAR},
  624. X    {"mark",        RANGE+WORD1+TRLBAR},
  625. X    {"marks",        TRLBAR},
  626. X    {"map",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  627. X    {"mkexrc",        BANG+FILE1+TRLBAR},
  628. X    {"mkvimrc",        BANG+FILE1+TRLBAR},
  629. X    {"next",        RANGE+BANG+NAMEDFS+TRLBAR},
  630. X    {"number",        RANGE+COUNT+TRLBAR},
  631. X    {"noremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  632. X    {"Next",        RANGE+BANG+TRLBAR},
  633. X    {"print",        RANGE+COUNT+TRLBAR},
  634. X    {"pop",            RANGE+TRLBAR+ZEROR},
  635. X    {"put",            RANGE+BANG+REGSTR+TRLBAR},
  636. X    {"previous",    RANGE+BANG+TRLBAR},
  637. X    {"quit",        BANG+TRLBAR},
  638. X    {"read",        RANGE+NAMEDF+NEEDARG+TRLBAR+ZEROR},
  639. X    {"rewind",        BANG+TRLBAR},
  640. X    {"recover",        FILE1+TRLBAR},                /* not supported */
  641. X    {"substitute",    RANGE+EXTRA},
  642. X    {"set",            EXTRA+TRLBAR},
  643. X    {"setkeymap",    NAMEDF+TRLBAR},
  644. X    {"shell",        TRLBAR},
  645. X    {"source",        NAMEDF+NEEDARG+TRLBAR},
  646. X    {"stop",        TRLBAR+BANG},
  647. X    {"t",            RANGE+EXTRA+TRLBAR},
  648. X    {"tag",            RANGE+BANG+WORD1+TRLBAR+ZEROR},
  649. X    {"tags",        TRLBAR},
  650. X    {"undo",        TRLBAR},
  651. X    {"unabbreviate", EXTRA+TRLBAR},                /* not supported */
  652. X    {"unmap",        BANG+EXTRA+TRLBAR},
  653. X    {"vglobal",        RANGE+EXTRA+DFLALL},
  654. X    {"version",        TRLBAR},
  655. X    {"visual",        RANGE+BANG+FILE1+TRLBAR},
  656. X    {"write",        RANGE+BANG+FILE1+DFLALL+TRLBAR},
  657. X    {"wnext",        RANGE+BANG+FILE1+TRLBAR},
  658. X    {"winsize",        EXTRA+NEEDARG+TRLBAR},
  659. X    {"wq",            BANG+FILE1+DFLALL+TRLBAR},
  660. X    {"xit",            BANG+FILE1+DFLALL+TRLBAR},
  661. X    {"yank",        RANGE+REGSTR+COUNT+TRLBAR},
  662. X    {"z",            RANGE+COUNT+TRLBAR},        /* not supported */
  663. X    {"@",            RANGE+EXTRA+TRLBAR},
  664. X    {"!",            RANGE+NAMEDFS},
  665. X    {"<",            RANGE+COUNT+TRLBAR},
  666. X    {">",            RANGE+COUNT+TRLBAR},
  667. X    {"=",            RANGE+TRLBAR},
  668. X    {"&",            RANGE+EXTRA},
  669. X    {"~",            RANGE+TRLBAR}                /* not supported */
  670. X|
  671. X};
  672. X|
  673. END_OF_FILE
  674. if test 4518 -ne `wc -c <'vim/src/cmdtab.tab'`; then
  675.     echo shar: \"'vim/src/cmdtab.tab'\" unpacked with wrong size!
  676. fi
  677. # end of 'vim/src/cmdtab.tab'
  678. fi
  679. if test -f 'vim/src/makefile.unix' -a "${1}" != "-c" ; then 
  680.   echo shar: Will not clobber existing file \"'vim/src/makefile.unix'\"
  681. else
  682. echo shar: Extracting \"'vim/src/makefile.unix'\" \(4829 characters\)
  683. sed "s/^X//" >'vim/src/makefile.unix' <<'END_OF_FILE'
  684. X#
  685. X# Makefile for Vim on Unix, using gcc or standard cc
  686. X#
  687. X
  688. X#>>>>> choose bsd (Sun, Linux, HPUX) or system V (Dynix/PTX)
  689. XMACHINE = -DBSD
  690. X#MACHINE = -DSYSV
  691. X
  692. X#>>>>> choose one compiler
  693. X### standard C compiler, with optimizer or debugger
  694. XCC=cc -O
  695. X#CC=cc -g
  696. X
  697. X### GCC on sun, Dynix
  698. X#CC=gcc -g -Wall -traditional
  699. X
  700. X### GCC 2.2.2d on Linux
  701. X#CC=gcc -O6 -Wall
  702. X
  703. X#>>>>> choose options:
  704. X### -DDIGRAPHS        digraph support
  705. X### -DNO_FREE_NULL    do not call free() with a null pointer
  706. X### -DWILD_CARDS    wildcard expansion code
  707. X### -DCOMPATIBLE    start in vi-compatible mode
  708. X### -DNOBACKUP        default is no backup file
  709. X### -DDEBUG        output a lot of debugging garbage
  710. X### -DSTRNCASECMP    use strncasecmp() instead of internal function
  711. X### -DUSE_LOCALE    use setlocale() to change ctype() and others
  712. X### -DTERMCAP        full termcap file support
  713. X### -DNO_BUILTIN_TCAPS    do not include builtin termcap entries
  714. X###                (use only with -DTERMCAP)
  715. X### -DSOME_BUILTIN_TCAPS include most useful builtin termcap entries
  716. X###                (use only without -DNO_BUILTIN_TCAPS)
  717. X### -DALL_BUILTIN_TCAPS    include all builtin termcap entries
  718. X###                (use only without -DNO_BUILTIN_TCAPS)
  719. X### -DMAXNAMLEN 31    maximum length of a file name (if not defined in sys/dir.h)
  720. X### -DVIMRC_FILE    name of the .vimrc file in current dir
  721. X### -DEXRC_FILE        name of the .exrc file in current dir
  722. X### -DSYSVIMRC_FILE    name of the global .vimrc file
  723. X### -DSYSEXRC_FILE    name of the global .exrc file
  724. X### -DDEFVIMRC_FILE    name of the system-wide .vimrc file
  725. X### -DVIM_HLP        name of the help file
  726. XDEFS = -DDIGRAPHS -DTERMCAP -DWILD_CARDS -DSOME_BUILTIN_TCAPS -DNO_FREE_NULL \
  727. X    -DSYSVIMRC_FILE=\"\$$HOME/.vimrc\" -DSYSEXRC_FILE=\"\$$HOME/.exrc\" \
  728. X    -DDEFVIMRC_FILE=\"/etc/vimrc\" -DVIM_HLP=\"/usr/local/doc/vim.hlp\"
  729. X
  730. X#>>>>> link with termlib or termcap only if TERMCAP is defined
  731. X# termcap is for linux, HPUX, etc.
  732. XLIBS = -ltermlib
  733. X#LIBS = -ltermcap
  734. X#LIBS = 
  735. X
  736. X#>>>>> end of choices
  737. X###########################################################################
  738. X
  739. XCFLAGS = -c $(MACHINE) $(DEFS)
  740. X
  741. XINCL = vim.h globals.h param.h keymap.h macros.h ascii.h term.h unix.h debug.h
  742. X
  743. XOBJ =    alloc.o unix.o buffers.o charset.o cmdline.o csearch.o digraph.o \
  744. X    edit.o fileio.o help.o linefunc.o main.o mark.o message.o misccmds.o \
  745. X    normal.o ops.o param.o quickfix.o regexp.o regsub.o screen.o \
  746. X    script.o search.o storage.o tag.o term.o undo.o
  747. X
  748. X../vim: $(OBJ) version.c
  749. X    $(CC) $(CFLAGS) version.c
  750. X    $(CC) -o ../vim $(OBJ) version.o $(LIBS)
  751. X
  752. Xdebug: $(OBJ) version.c
  753. X    $(CC) $(CFLAGS) version.c
  754. X    $(CC) -o ../vim -g $(OBJ) version.o $(LIBS)
  755. X
  756. Xctags:
  757. X    csh -c ctags *.c *.h
  758. X
  759. Xclean:
  760. X    -rm -f $(OBJ) mkcmdtab.o version.o core ../vim mkcmdtab
  761. X
  762. X#use this in case the files have been transported via an MSDOS system
  763. X
  764. XFILES = *.c *.h makefile makefile.* cmdtab.tab proto/*.pro tags
  765. X
  766. Xdos2unix:
  767. X    -mv arp_prot.h arp_proto.h
  768. X    -mv ptx_stdl.h ptx_stdlib.h
  769. X    -mv sun_stdl.h sun_stdlib.h
  770. X    -mv makefile.dic makefile.dice
  771. X    -mv makefile.uni makefile.unix
  772. X    -mv makefile.man makefile.manx
  773. X    -mv makefile.6sa makefile.6sas
  774. X    -mv makefile.5sa makefile.5sas
  775. X    for i in $(FILES); do tr -d '\r\032' < $$i > ~tmp~; mv ~tmp~ $$i; echo $$i; done
  776. X
  777. X###########################################################################
  778. X
  779. Xalloc.o:    alloc.c  $(INCL)
  780. X    $(CC) $(CFLAGS) alloc.c
  781. X
  782. Xunix.o:    unix.c  $(INCL) unix.h
  783. X    $(CC) $(CFLAGS) unix.c
  784. X
  785. Xbuffers.o:    buffers.c  $(INCL)
  786. X    $(CC) $(CFLAGS) buffers.c
  787. X
  788. Xcharset.o:    charset.c  $(INCL)
  789. X    $(CC) $(CFLAGS) charset.c
  790. X
  791. Xcmdline.o:    cmdline.c  $(INCL) cmdtab.h
  792. X    $(CC) $(CFLAGS) cmdline.c
  793. X
  794. Xcsearch.o:    csearch.c  $(INCL)
  795. X    $(CC) $(CFLAGS) csearch.c
  796. X
  797. Xdigraph.o:    digraph.c  $(INCL)
  798. X    $(CC) $(CFLAGS) digraph.c
  799. X
  800. Xedit.o:    edit.c  $(INCL)
  801. X    $(CC) $(CFLAGS) edit.c
  802. X
  803. Xfileio.o:    fileio.c  $(INCL)
  804. X    $(CC) $(CFLAGS) fileio.c
  805. X
  806. Xhelp.o:    help.c  $(INCL)
  807. X    $(CC) $(CFLAGS) help.c
  808. X
  809. Xlinefunc.o:    linefunc.c  $(INCL)
  810. X    $(CC) $(CFLAGS) linefunc.c
  811. X
  812. Xmain.o:    main.c  $(INCL)
  813. X    $(CC) $(CFLAGS) main.c
  814. X
  815. Xmark.o:    mark.c  $(INCL)
  816. X    $(CC) $(CFLAGS) mark.c
  817. X
  818. Xmessage.o:    message.c  $(INCL)
  819. X    $(CC) $(CFLAGS) message.c
  820. X
  821. Xmisccmds.o:    misccmds.c  $(INCL)
  822. X    $(CC) $(CFLAGS) misccmds.c
  823. X
  824. Xnormal.o:    normal.c  $(INCL) ops.h
  825. X    $(CC) $(CFLAGS) normal.c
  826. X
  827. Xops.o:    ops.c  $(INCL) ops.h
  828. X    $(CC) $(CFLAGS) ops.c
  829. X
  830. Xparam.o:    param.c  $(INCL)
  831. X    $(CC) $(CFLAGS) param.c
  832. X
  833. Xquickfix.o:    quickfix.c  $(INCL)
  834. X    $(CC) $(CFLAGS) quickfix.c
  835. X
  836. Xregexp.o:    regexp.c  $(INCL)
  837. X    $(CC) $(CFLAGS) regexp.c
  838. X
  839. Xregsub.o:    regsub.c  $(INCL)
  840. X    $(CC) $(CFLAGS) regsub.c
  841. X
  842. Xscreen.o:    screen.c  $(INCL)
  843. X    $(CC) $(CFLAGS) screen.c
  844. X
  845. Xscript.o:    script.c  $(INCL)
  846. X    $(CC) $(CFLAGS) script.c
  847. X
  848. Xsearch.o:    search.c  $(INCL)
  849. X    $(CC) $(CFLAGS) search.c
  850. X
  851. Xstorage.o:    storage.c  $(INCL)
  852. X    $(CC) $(CFLAGS) storage.c
  853. X
  854. Xtag.o:    tag.c  $(INCL)
  855. X    $(CC) $(CFLAGS) tag.c
  856. X
  857. Xterm.o:    term.c  $(INCL)
  858. X    $(CC) $(CFLAGS) term.c
  859. X
  860. Xundo.o:    undo.c  $(INCL)
  861. X    $(CC) $(CFLAGS) undo.c
  862. X
  863. Xcmdtab.h: cmdtab.tab mkcmdtab
  864. X    ./mkcmdtab cmdtab.tab cmdtab.h
  865. X
  866. Xmkcmdtab: mkcmdtab.o
  867. X    $(CC) -o mkcmdtab mkcmdtab.o
  868. END_OF_FILE
  869. if test 4829 -ne `wc -c <'vim/src/makefile.unix'`; then
  870.     echo shar: \"'vim/src/makefile.unix'\" unpacked with wrong size!
  871. fi
  872. # end of 'vim/src/makefile.unix'
  873. fi
  874. if test -f 'vim/src/param.h' -a "${1}" != "-c" ; then 
  875.   echo shar: Will not clobber existing file \"'vim/src/param.h'\"
  876. else
  877. echo shar: Extracting \"'vim/src/param.h'\" \(5234 characters\)
  878. sed "s/^X//" >'vim/src/param.h' <<'END_OF_FILE'
  879. X/* vi:ts=4:sw=4
  880. X *
  881. X * VIM - Vi IMitation
  882. X *
  883. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  884. X *                            Tim Thompson            twitch!tjt
  885. X *                            Tony Andrews            onecom!wldrdg!tony 
  886. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  887. X */
  888. X
  889. X/*
  890. X * param.h: definition of global variables for settable parameters
  891. X *
  892. X * EXTERN is only defined in main.c (and vim.h)
  893. X */
  894. X
  895. X#ifndef EXTERN
  896. X# define EXTERN extern
  897. X# define INIT(x)
  898. X#else
  899. X# ifndef INIT
  900. X#  define INIT(x) x
  901. X# endif
  902. X#endif
  903. X
  904. X/*
  905. X * The following are actual variabables for the parameters
  906. X */
  907. X
  908. XEXTERN int    p_ai    INIT(= FALSE);        /* auto-indent */
  909. XEXTERN int    p_aw    INIT(= FALSE);        /* auto-write */
  910. XEXTERN long    p_bs    INIT(= 0);            /* backspace over newlines in insert mode */
  911. X#if defined(COMPATIBLE) || defined(NOBACKUP)
  912. XEXTERN int    p_bk    INIT(= FALSE);        /* make backups when writing out files */
  913. X#else
  914. XEXTERN int    p_bk    INIT(= TRUE);        /* make backups when writing out files */
  915. X#endif
  916. X#ifdef UNIX
  917. XEXTERN char *p_bdir    INIT(= BACKUPDIR);    /* directory for backups */
  918. X#endif
  919. XEXTERN int    p_cp    INIT(= FALSE);        /* vi-compatible */
  920. X#ifdef DIGRAPHS
  921. XEXTERN int    p_dg    INIT(= FALSE);        /* enable digraphs */
  922. X#endif /* DIGRAPHS */
  923. XEXTERN char *p_dir    INIT(= "");            /* directory for autoscript file */
  924. XEXTERN char *p_ep    INIT(= "indent");    /* program name for '=' command */
  925. XEXTERN int    p_eb    INIT(= FALSE);        /* ring bell for errors */
  926. X#ifdef AMIGA
  927. XEXTERN char *p_ef    INIT(= "AztecC.Err");    /* name of errorfile */
  928. X#else
  929. XEXTERN char *p_ef    INIT(= "");            /* name of errorfile */
  930. X#endif
  931. XEXTERN int    p_et    INIT(= FALSE);        /* expand tabs into spaces */
  932. X#ifdef MSDOS
  933. XEXTERN int    p_gr    INIT(= TRUE);        /* display graphic characters */
  934. X#else
  935. XEXTERN int    p_gr    INIT(= FALSE);        /* display graphic characters */
  936. X#endif
  937. XEXTERN long p_hi    INIT(= 20);            /* command line history size */
  938. XEXTERN char *p_hf    INIT(= VIM_HLP);    /* name of help file */
  939. XEXTERN int    p_ic    INIT(= FALSE);        /* ignore case in searches */
  940. XEXTERN int    p_im    INIT(= FALSE);        /* start editing in input mode */
  941. XEXTERN char *p_kp    INIT(= "ref");        /* keyword program */
  942. XEXTERN int    p_js    INIT(= TRUE);        /* use two spaces after period with Join */
  943. XEXTERN int    p_list    INIT(= FALSE);        /* show tabs and newlines graphically */
  944. XEXTERN int    p_magic INIT(= TRUE);        /* use some characters for reg exp */
  945. XEXTERN long p_ml    INIT(= 5);            /* number of mode lines */
  946. XEXTERN int    p_nu    INIT(= FALSE);        /* number lines on the screen */
  947. XEXTERN char *p_para    INIT(= "IPLPPPQPP LIpplpipbp");        /* paragraphs */
  948. XEXTERN int    p_ro    INIT(= FALSE);        /* readonly */
  949. XEXTERN int    p_remap    INIT(= TRUE);        /* remap */
  950. XEXTERN int    p_rd    INIT(= TRUE);        /* delete when replacing */
  951. XEXTERN long    p_report    INIT(= 2);        /* minimum number of lines for report */
  952. XEXTERN int    p_ru    INIT(= FALSE);        /* show column/line number */
  953. XEXTERN long    p_scroll    INIT(= 12);        /* scroll size */
  954. XEXTERN long    p_sj    INIT(= 1);            /* scroll jump size */
  955. XEXTERN char *p_sections    INIT(= "SHNHH HUnhsh");        /* sections */
  956. X#ifdef MSDOS
  957. XEXTERN char *p_sh     INIT(= "command");        /* name of shell to use */
  958. X#else
  959. XEXTERN char *p_sh     INIT(= "sh");        /* name of shell to use */
  960. X#endif
  961. XEXTERN long    p_st    INIT(= 0);            /* type of shell */
  962. XEXTERN int    p_sr    INIT(= FALSE);        /* shift round off (for < and >) */
  963. XEXTERN long    p_sw    INIT(= 8);            /* shiftwidth (for < and >) */
  964. X#ifdef COMPATIBLE
  965. XEXTERN int    p_sc    INIT(= FALSE);        /* show command in status line */
  966. X#else
  967. XEXTERN int    p_sc    INIT(= TRUE);        /* show command in status line */
  968. X#endif
  969. X#ifndef MSDOS
  970. XEXTERN int    p_sn    INIT(= FALSE);        /* short names in file system */
  971. X#endif
  972. XEXTERN int    p_sm    INIT(= FALSE);        /* showmatch */
  973. X#ifdef COMPATIBLE
  974. XEXTERN int    p_mo    INIT(= FALSE);        /* show mode */
  975. X#else
  976. XEXTERN int    p_mo    INIT(= TRUE);        /* show mode */
  977. X#endif
  978. XEXTERN int    p_si    INIT(= FALSE);        /* smart-indent for c programs */
  979. XEXTERN char *p_su    INIT(= ".bak.o.h.info.vim");    /* suffixes for wildcard expansion */
  980. XEXTERN long p_ts    INIT(= 8);            /* tab size in the file */
  981. XEXTERN long p_tl    INIT(= 0);            /* used tag length */
  982. XEXTERN char *p_tags    INIT(= "tags");        /* tags search path */
  983. XEXTERN int    p_terse    INIT(= TRUE);        /* terse (not used) */
  984. X#ifdef MSDOS
  985. XEXTERN int    p_tx    INIT(= TRUE);        /* textmode for file I/O */
  986. X#endif
  987. XEXTERN long p_tw    INIT(= 9999);        /* textwidth */
  988. XEXTERN int    p_to    INIT(= FALSE);        /* tilde is an operator */
  989. XEXTERN int    p_timeout    INIT(= TRUE);    /* mappings entered within one second */
  990. XEXTERN int    p_ttimeout    INIT(= FALSE);    /* key codes entered within one second */
  991. X#ifdef COMPATIBLE
  992. XEXTERN long p_ul    INIT(= 0);            /* number of Undo Levels */
  993. XEXTERN long p_uc    INIT(= 0);            /* update count for auto script file */
  994. X#else
  995. XEXTERN long p_ul    INIT(= 100);        /* number of Undo Levels */
  996. XEXTERN long p_uc    INIT(= 100);        /* update count for auto script file */
  997. X#endif
  998. XEXTERN long p_ut    INIT(= 2000);        /* update time for auto script file */
  999. XEXTERN int    p_vb    INIT(= FALSE);        /* visual bell only (no beep) */
  1000. XEXTERN int    p_warn    INIT(= TRUE);        /* warn for changes at shell command */
  1001. XEXTERN int    p_ws    INIT(= TRUE);        /* wrap scan */
  1002. XEXTERN long p_wm    INIT(= 0);            /* wrapmargin */
  1003. XEXTERN int    p_wa    INIT(= FALSE);        /* write any */
  1004. X#if defined(COMPATIBLE) || defined(NOBACKUP)
  1005. XEXTERN int    p_wb    INIT(= FALSE);        /* write backup files */
  1006. X#else
  1007. XEXTERN int    p_wb    INIT(= TRUE);        /* write backup files */
  1008. X#endif
  1009. XEXTERN int    p_ye    INIT(= FALSE);        /* Y yanks to end of line */
  1010. END_OF_FILE
  1011. if test 5234 -ne `wc -c <'vim/src/param.h'`; then
  1012.     echo shar: \"'vim/src/param.h'\" unpacked with wrong size!
  1013. fi
  1014. # end of 'vim/src/param.h'
  1015. fi
  1016. if test -f 'vim/src/quickfix.c' -a "${1}" != "-c" ; then 
  1017.   echo shar: Will not clobber existing file \"'vim/src/quickfix.c'\"
  1018. else
  1019. echo shar: Extracting \"'vim/src/quickfix.c'\" \(5881 characters\)
  1020. sed "s/^X//" >'vim/src/quickfix.c' <<'END_OF_FILE'
  1021. X/* vi:ts=4:sw=4
  1022. X *
  1023. X * VIM - Vi IMitation
  1024. X *
  1025. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  1026. X *                            Tim Thompson            twitch!tjt
  1027. X *                            Tony Andrews            onecom!wldrdg!tony 
  1028. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  1029. X */
  1030. X
  1031. X/*
  1032. X * quickfix.c: functions for quickfix mode, using the Manx errorfile
  1033. X */
  1034. X
  1035. X#include "vim.h"
  1036. X#include "globals.h"
  1037. X#include "proto.h"
  1038. X
  1039. Xstatic void qf_free __ARGS((void));
  1040. X
  1041. X/*
  1042. X * for each error the next struct is allocated and linked in a list
  1043. X */
  1044. Xstruct qf_line
  1045. X{
  1046. X    struct qf_line    *qf_next;    /* pointer to next error in the list */
  1047. X    struct qf_line    *qf_prev;    /* pointer to previous error in the list */
  1048. X    linenr_t         qf_lnum;    /* line number where the error occurred */
  1049. X    char            *qf_mark;    /* pointer to that line (if != NULL) */
  1050. X    int                 qf_col;    /* column where the error occurred */
  1051. X    char             qf_cleared;/* set to TRUE if qf_mark has been cleared */
  1052. X    char             qf_type;    /* type of the error (mostly 'E') */
  1053. X    int                 qf_nr;        /* error number */
  1054. X    char            *qf_fname;    /* file name where the error occurred */
  1055. X    char            *qf_text;    /* description of the error */
  1056. X};
  1057. X
  1058. Xstatic struct qf_line *qf_start;        /* pointer to the first error */
  1059. Xstatic struct qf_line *qf_ptr;            /* pointer to the current error */
  1060. X
  1061. Xstatic int    qf_count = 0;        /* number of errors (0 means no error list) */
  1062. X       int    qf_index;            /* current index in the error list */
  1063. Xstatic int    qf_marksset;        /* set to 1 when qf_mark-s have been set */
  1064. X
  1065. X/*
  1066. X * Read the errorfile into memory, line by line, building the error list.
  1067. X * Return 1 for error, 0 for success.
  1068. X */
  1069. X    int
  1070. Xqf_init(fname)
  1071. X    char *fname;
  1072. X{
  1073. X    char             namebuf[CMDBUFFSIZE];
  1074. X    char            errmsg[CMDBUFFSIZE];
  1075. X    FILE            *fd;
  1076. X    struct qf_line    *qfp = NULL;
  1077. X
  1078. X    if (fname == NULL)
  1079. X    {
  1080. X        emsg(e_errorf);
  1081. X        return 1;
  1082. X    }
  1083. X    if ((fd = fopen(fname, "r")) == NULL)
  1084. X    {
  1085. X        emsg(e_openerrf);
  1086. X        return 1;
  1087. X    }
  1088. X    qf_free();
  1089. X
  1090. X    while (fgets(IObuff, IOSIZE, fd) != NULL)
  1091. X    {
  1092. X        if ((qfp = (struct qf_line *)alloc((unsigned)sizeof(struct qf_line))) == NULL)
  1093. X            goto error2;
  1094. X
  1095. X    /* parse the line: "filename>linenr:colnr:type:number:text" */
  1096. X        if (sscanf(IObuff, "%[^>]>%ld:%d:%c:%d:%[^\n]", namebuf,
  1097. X                &qfp->qf_lnum, &qfp->qf_col, &qfp->qf_type,
  1098. X                                &qfp->qf_nr, errmsg) != 6)
  1099. X            goto error;
  1100. X        if ((qfp->qf_fname = strsave(namebuf)) == NULL)
  1101. X            goto error1;
  1102. X        if ((qfp->qf_text = strsave(errmsg)) == NULL)
  1103. X        {
  1104. X            free(qfp->qf_fname);
  1105. X            goto error1;
  1106. X        }
  1107. X        if (qf_count == 0)        /* first element in the list */
  1108. X        {
  1109. X            qf_start = qfp;
  1110. X            qfp->qf_prev = qfp;    /* first element points to itself */
  1111. X        }
  1112. X        else
  1113. X        {
  1114. X            qfp->qf_prev = qf_ptr;
  1115. X            qf_ptr->qf_next = qfp;
  1116. X        }
  1117. X        qfp->qf_next = qfp;        /* last element points to itself */
  1118. X        qfp->qf_mark = NULL;
  1119. X        qfp->qf_cleared = FALSE;
  1120. X        qf_ptr = qfp;
  1121. X        ++qf_count;
  1122. X    }
  1123. X    if (!ferror(fd))
  1124. X    {
  1125. X        qf_ptr = qf_start;
  1126. X        qf_index = 1;
  1127. X        fclose(fd);
  1128. X        return 0;
  1129. X    }
  1130. Xerror:
  1131. X    emsg(e_readerrf);
  1132. Xerror1:
  1133. X    free(qfp);
  1134. Xerror2:
  1135. X    fclose(fd);
  1136. X    qf_free();
  1137. X    return 1;
  1138. X}
  1139. X
  1140. X/*
  1141. X * jump to quickfix line "errornr"; if "errornr" is zero, redisplay the same line
  1142. X */
  1143. X    void
  1144. Xqf_jump(errornr)
  1145. X    int errornr;
  1146. X{
  1147. X    struct qf_line *qfp;
  1148. X    linenr_t        i;
  1149. X    char            *msgp;
  1150. X
  1151. X    if (qf_count == 0)
  1152. X    {
  1153. X        emsg(e_quickfix);
  1154. X        return;
  1155. X    }
  1156. X    if (errornr == 0)
  1157. X        errornr = qf_index;
  1158. X    while (errornr < qf_index && qf_index > 1)
  1159. X    {
  1160. X        --qf_index;
  1161. X        qf_ptr = qf_ptr->qf_prev;
  1162. X    }
  1163. X    while (errornr > qf_index && qf_index < qf_count)
  1164. X    {
  1165. X        ++qf_index;
  1166. X        qf_ptr = qf_ptr->qf_next;
  1167. X    }
  1168. X
  1169. X    /*
  1170. X     * read the wanted file if needed, and check autowrite etc.
  1171. X     */
  1172. X    if (getfile(qf_ptr->qf_fname, TRUE) <= 0)
  1173. X    {
  1174. X        /*
  1175. X         * use mark if possible, because the line number may be invalid
  1176. X         * after line inserts / deletes
  1177. X         */
  1178. X        i = 0;
  1179. X        msgp = "";
  1180. X        if ((qf_ptr->qf_mark != NULL && (i = ptr2nr(qf_ptr->qf_mark, (linenr_t)0)) == 0) || qf_ptr->qf_cleared)
  1181. X            msgp = "(line changed) ";
  1182. X        if (i == 0)
  1183. X            i = qf_ptr->qf_lnum;
  1184. X        if (i > line_count)
  1185. X            i = line_count;
  1186. X        Curpos.lnum = i;
  1187. X        Curpos.col = qf_ptr->qf_col;
  1188. X        adjustCurpos();
  1189. X        cursupdate();
  1190. X        smsg("(%d of %d) %s%s %d: %s", qf_index, qf_count, msgp, qf_ptr->qf_type == 'E' ? "Error" : "Warning", qf_ptr->qf_nr, qf_ptr->qf_text);
  1191. X
  1192. X        if (!qf_marksset)        /* marks not set yet: try to find them for
  1193. X                                    the errors in the curren file */
  1194. X        {
  1195. X            for (i = 0, qfp = qf_start; i < qf_count; ++i, qfp = qfp->qf_next)
  1196. X                if (strcmp(qfp->qf_fname, qf_ptr->qf_fname) == 0 && qfp->qf_lnum <= line_count)
  1197. X                    qfp->qf_mark = nr2ptr(qfp->qf_lnum);
  1198. X            qf_marksset = 1;
  1199. X        }
  1200. X    }
  1201. X}
  1202. X
  1203. X/*
  1204. X * list all errors
  1205. X */
  1206. X    void
  1207. Xqf_list()
  1208. X{
  1209. X    struct qf_line *qfp;
  1210. X    int i;
  1211. X
  1212. X    if (qf_count == 0)
  1213. X    {
  1214. X        emsg(e_quickfix);
  1215. X        return;
  1216. X    }
  1217. X    qfp = qf_start;
  1218. X    gotocmdline(TRUE, NUL);
  1219. X#ifdef AMIGA
  1220. X    settmode(0);        /* set cooked mode so output can be halted */
  1221. X#endif
  1222. X    for (i = 1; i <= qf_count; ++i)
  1223. X    {
  1224. X        sprintf(IObuff, "%2d line %ld col %2d %s %3d: %s",
  1225. X            i,
  1226. X            (long)qfp->qf_lnum,
  1227. X            qfp->qf_col,
  1228. X            qfp->qf_type == 'E' ? "Error" : "Warning",
  1229. X            qfp->qf_nr,
  1230. X            qfp->qf_text);
  1231. X        outstr(IObuff);
  1232. X        outchar('\n');
  1233. X        qfp = qfp->qf_next;
  1234. X        flushbuf();
  1235. X    }
  1236. X#ifdef AMIGA
  1237. X    settmode(1);
  1238. X#endif
  1239. X    wait_return(TRUE);
  1240. X}
  1241. X
  1242. X/*
  1243. X * free the error list
  1244. X */
  1245. X    static void
  1246. Xqf_free()
  1247. X{
  1248. X    struct qf_line *qfp;
  1249. X
  1250. X    while (qf_count)
  1251. X    {
  1252. X        qfp = qf_start->qf_next;
  1253. X        free(qf_start->qf_fname);
  1254. X        free(qf_start->qf_text);
  1255. X        free(qf_start);
  1256. X        qf_start = qfp;
  1257. X        --qf_count;
  1258. X    }
  1259. X    qf_marksset = 0;
  1260. X}
  1261. X
  1262. X/*
  1263. X * qf_clrallmarks() - clear all marks
  1264. X *
  1265. X * Used mainly when trashing the entire buffer during ":e" type commands
  1266. X */
  1267. X    void
  1268. Xqf_clrallmarks()
  1269. X{
  1270. X    int             i;
  1271. X    struct qf_line *qfp;
  1272. X
  1273. X    if (qf_count)
  1274. X        for (i = 0, qfp = qf_start; i < qf_count; i++, qfp = qfp->qf_next)
  1275. X            qfp->qf_mark = NULL;
  1276. X    qf_marksset = 0;
  1277. X}
  1278. X
  1279. X/*
  1280. X * qf_adjustmark: set new ptr for a mark
  1281. X */
  1282. X   void
  1283. Xqf_adjustmark(old, new)
  1284. X    char        *old, *new;
  1285. X{
  1286. X    register int i;
  1287. X    struct qf_line *qfp;
  1288. X
  1289. X    if (qf_count)
  1290. X    {
  1291. X        for (i = 0, qfp = qf_start; i < qf_count; ++i, qfp = qfp->qf_next)
  1292. X            if (qfp->qf_mark == old)
  1293. X            {
  1294. X                qfp->qf_mark = new;
  1295. X                if (new == NULL)
  1296. X                    qfp->qf_cleared = TRUE;
  1297. X            }
  1298. X    }
  1299. X}
  1300. END_OF_FILE
  1301. if test 5881 -ne `wc -c <'vim/src/quickfix.c'`; then
  1302.     echo shar: \"'vim/src/quickfix.c'\" unpacked with wrong size!
  1303. fi
  1304. # end of 'vim/src/quickfix.c'
  1305. fi
  1306. if test -f 'vim/src/term.h' -a "${1}" != "-c" ; then 
  1307.   echo shar: Will not clobber existing file \"'vim/src/term.h'\"
  1308. else
  1309. echo shar: Extracting \"'vim/src/term.h'\" \(7566 characters\)
  1310. sed "s/^X//" >'vim/src/term.h' <<'END_OF_FILE'
  1311. X/* vi:ts=4:sw=4
  1312. X *
  1313. X * term.h -- VIM - Vi IMitation
  1314. X *
  1315. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  1316. X *                            Tim Thompson            twitch!tjt
  1317. X *                            Tony Andrews            onecom!wldrdg!tony 
  1318. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  1319. X */
  1320. X
  1321. X/*
  1322. X * This file contains the machine dependent escape sequences that the editor
  1323. X * needs to perform various operations. Some of the sequences here are
  1324. X * optional. Anything not available should be indicated by a null string. In
  1325. X * the case of insert/delete line sequences, the editor checks the capability
  1326. X * and works around the deficiency, if necessary.
  1327. X */
  1328. X
  1329. X/*
  1330. X * the terminal capabilities are stored in this structure
  1331. X * keep in sync with array in term.c
  1332. X */
  1333. Xtypedef struct _tcarr
  1334. X{
  1335. X/* output codes */
  1336. X  char *t_name;        /* name of this terminal entry */
  1337. X  char *t_el;        /* el       ce    clear to end of line */
  1338. X  char *t_il;        /* il1      al    add new blank line */
  1339. X  char *t_cil;        /* il       AL    add number of blank lines */
  1340. X  char *t_dl;        /* dl1      dl    delete line */
  1341. X  char *t_cdl;        /* dl       DL    delete number of lines */
  1342. X  char *t_ed;        /* clear    cl    clear screen */
  1343. X  char *t_ci;        /* civis    vi    cursur invisible */
  1344. X  char *t_cv;        /* cnorm    ve    cursur visible */
  1345. X  char *t_tp;        /* sgr0     me    normal mode */
  1346. X  char *t_ti;        /* rev      mr    reverse mode */
  1347. X  char *t_cm;        /* cup      cm    cursor motion */
  1348. X  char *t_sr;        /* ri       sr    scroll reverse (backward) */
  1349. X  char *t_cri;        /* cuf      RI    cursor number of chars right */
  1350. X  char *t_vb;        /* flash    vb    visual bell */
  1351. X  char *t_ks;        /* smkx     ks    put terminal in "keypad transmit" mode */
  1352. X  char *t_ke;        /* rmkx     ke    out of "keypad transmit" mode */
  1353. X  char *t_ts;        /*          ti    put terminal in termcap mode */
  1354. X  char *t_te;        /*          te    out of termcap mode */
  1355. X
  1356. X/* key codes */
  1357. X  char *t_ku;        /* kcuu1    ku    arrow up */
  1358. X  char *t_kd;        /* kcud1    kd    arrow down */
  1359. X  char *t_kl;        /* kcub1    kl    arrow left */
  1360. X  char *t_kr;        /* kcuf1    kr    arrow right */
  1361. X  char *t_sku;        /* shift arrow up */
  1362. X  char *t_skd;        /* shift arrow down */
  1363. X  char *t_skl;        /* kLFT     #4    shift arrow left */
  1364. X  char *t_skr;        /* kRIT     %    shift arrow right */
  1365. X  char *t_f1;        /* kf1      k1    function key 1 */
  1366. X  char *t_f2;        /* kf2      k2    function key 2 */
  1367. X  char *t_f3;        /* kf3      k3    function key 3 */
  1368. X  char *t_f4;        /* kf4      k4    function key 4 */
  1369. X  char *t_f5;        /* kf5      k5    function key 5 */
  1370. X  char *t_f6;        /* kf6      k6    function key 6 */
  1371. X  char *t_f7;        /* kf7      k7    function key 7 */
  1372. X  char *t_f8;        /* kf8      k8    function key 8 */
  1373. X  char *t_f9;        /* kf9      k9    function key 9 */
  1374. X  char *t_f10;        /* kf10     k;    function key 10 */
  1375. X  char *t_sf1;        /* kf11     F1    shifted function key 1 */
  1376. X  char *t_sf2;        /* kf12     F2    shifted function key 2 */
  1377. X  char *t_sf3;        /* kf13     F3    shifted function key 3 */
  1378. X  char *t_sf4;        /* kf14     F4    shifted function key 4 */
  1379. X  char *t_sf5;        /* kf15     F5    shifted function key 5 */
  1380. X  char *t_sf6;        /* kf16     F6    shifted function key 6 */
  1381. X  char *t_sf7;        /* kf17     F7    shifted function key 7 */
  1382. X  char *t_sf8;        /* kf18     F8    shifted function key 8 */
  1383. X  char *t_sf9;        /* kf19     F9    shifted function key 9 */
  1384. X  char *t_sf10;        /* kf20     FA    shifted function key 10 */
  1385. X  char *t_help;        /* khlp     %1    help key */
  1386. X  char *t_undo;        /* kund     &8    undo key */
  1387. X  /* adjust inchar() for last entry! */
  1388. X} Tcarr;
  1389. X
  1390. Xextern Tcarr term_strings;    /* currently used terminal strings */
  1391. X
  1392. X/*
  1393. X * strings used for terminal
  1394. X */
  1395. X#define T_EL    (term_strings.t_el)
  1396. X#define T_IL    (term_strings.t_il)
  1397. X#define T_CIL    (term_strings.t_cil)
  1398. X#define T_DL    (term_strings.t_dl)
  1399. X#define T_CDL    (term_strings.t_cdl)
  1400. X#define T_ED    (term_strings.t_ed)
  1401. X#define T_CI    (term_strings.t_ci)
  1402. X#define T_CV    (term_strings.t_cv)
  1403. X#define T_TP    (term_strings.t_tp)
  1404. X#define T_TI    (term_strings.t_ti)
  1405. X#define T_CM    (term_strings.t_cm)
  1406. X#define T_SR    (term_strings.t_sr)
  1407. X#define T_CRI    (term_strings.t_cri)
  1408. X#define T_VB    (term_strings.t_vb)
  1409. X#define T_KS    (term_strings.t_ks)
  1410. X#define T_KE    (term_strings.t_ke)
  1411. X#define T_TS    (term_strings.t_ts)
  1412. X#define T_TE    (term_strings.t_te)
  1413. X
  1414. X
  1415. X#ifndef NO_BUILTIN_TCAPS
  1416. X/*
  1417. X * here are the builtin termcap entries.
  1418. X * They not stored as complete Tcarr structures, as such a structure 
  1419. X * is to big. 
  1420. X * Each termcap is a concatenated string of entries, where '\0' characters
  1421. X * followed by a skip character sepereate the capabilities. The skip 
  1422. X * character is the relative structure offset for the following entry.
  1423. X * See parse_builtin_tcap() in term.c for all details.
  1424. X */
  1425. X# define AMIGA_TCAP "amiga\0\
  1426. X\0\033[K\0\
  1427. X\0\033[L\0\
  1428. X\0\033[%dL\0\
  1429. X\0\033[M\0\
  1430. X\0\033[%dM\0\
  1431. X\0\014\0\
  1432. X\0\033[0 p\0\
  1433. X\0\033[1 p\0\
  1434. X\0\033[0m\0\
  1435. X\0\033[7m\0\
  1436. X\0\033[%i%d;%dH\0\
  1437. X\1\033[%dC\0\
  1438. X\5\233A\0\
  1439. X\0\233B\0\
  1440. X\0\233D\0\
  1441. X\0\233C\0\
  1442. X\0\233T\0\
  1443. X\0\233S\0\
  1444. X\0\233 A\0\
  1445. X\0\233 @\0\
  1446. X\0\233\060~\0\
  1447. X\0\233\061~\0\
  1448. X\0\233\062~\0\
  1449. X\0\233\063~\0\
  1450. X\0\233\064~\0\
  1451. X\0\233\065~\0\
  1452. X\0\233\066~\0\
  1453. X\0\233\067~\0\
  1454. X\0\233\070~\0\
  1455. X\0\233\071~\0\
  1456. X\0\233\061\060~\0\
  1457. X\0\233\061\061~\0\
  1458. X\0\233\061\062~\0\
  1459. X\0\233\061\063~\0\
  1460. X\0\233\061\064~\0\
  1461. X\0\233\061\065~\0\
  1462. X\0\233\061\066~\0\
  1463. X\0\233\061\067~\0\
  1464. X\0\233\061\070~\0\
  1465. X\0\233\061\071~\0\
  1466. X\0\233?~\0\
  1467. X\0\0"
  1468. X
  1469. X# define ATARI_TCAP "atari\0\
  1470. X\0\033l\0\
  1471. X\0\033L\0\
  1472. X\1\033M\0\
  1473. X\1\033E\0\
  1474. X\0\033f\0\
  1475. X\0\033e\0\
  1476. X\0\0"
  1477. X
  1478. X# define ANSI_TCAP "ansi\0\
  1479. X\0\033[2K\0\
  1480. X\0\033[L\0\
  1481. X\0\033[%dL\0\
  1482. X\0\033[M\0\
  1483. X\0\033[%dM\0\
  1484. X\0\033[2J\0\
  1485. X\2\033[0m\0\
  1486. X\0\033[7m\0\
  1487. X\0\033[%i%d;%dH\0\
  1488. X\1\033[%dC\0\
  1489. X\0\0"
  1490. X
  1491. X/*
  1492. X * These codes are valid when ansi.sys or equivalent has been installed.
  1493. X * Function keys on a PC are preceded with a NUL. These are converted into
  1494. X * K_ZERO '\236' in GetChars(), because we cannot handle NULs in key codes.
  1495. X * CTRL-arrow is used instead of SHIFT-arrow.
  1496. X */
  1497. X# define PCTERM_TCAP "pcterm\0\
  1498. X\0\033[K\0\
  1499. X\0\033|L\0\
  1500. X\1\033|M\0\
  1501. X\1\033[2J\0\
  1502. X\2\033[0m\0\
  1503. X\0\033[7m\0\
  1504. X\0\033[%i%d;%dH\0\
  1505. X\1\033[%dC\0\
  1506. X\5\236H\0\
  1507. X\0\236P\0\
  1508. X\0\236K\0\
  1509. X\0\236M\0\
  1510. X\2\236s\0\
  1511. X\0\236t\0\
  1512. X\0\236;\0\
  1513. X\0\236<\0\
  1514. X\0\236=\0\
  1515. X\0\236>\0\
  1516. X\0\236?\0\
  1517. X\0\236@\0\
  1518. X\0\236A\0\
  1519. X\0\236B\0\
  1520. X\0\236C\0\
  1521. X\0\236D\0\
  1522. X\0\236T\0\
  1523. X\0\236U\0\
  1524. X\0\236V\0\
  1525. X\0\236W\0\
  1526. X\0\236X\0\
  1527. X\0\236Y\0\
  1528. X\0\236Z\0\
  1529. X\0\236[\0\
  1530. X\0\236\\\0\
  1531. X\0\236]\0\
  1532. X\0\0"
  1533. X
  1534. X# define VT52_TCAP "vt52\0\
  1535. X\0\033K\0\
  1536. X\0\033T\0\
  1537. X\1\033U\0\
  1538. X\1\014\0\
  1539. X\2\033SO\0\
  1540. X\0\033S2\0\
  1541. X\0\033Y%+ %+ \0\
  1542. X\0\0"
  1543. X
  1544. X# define XTERM_TCAP "xterm\0\
  1545. X\0\033[K\0\
  1546. X\0\033[L\0\
  1547. X\0\033[%dL\0\
  1548. X\0\033[M\0\
  1549. X\0\033[%dM\0\
  1550. X\0\033[2J\0\
  1551. X\2\033[m\0\
  1552. X\0\033[7m\0\
  1553. X\0\033[%i%d;%dH\0\
  1554. X\0\033M\0\
  1555. X\0\033[%dC\0\
  1556. X\1\033[?1h\0\
  1557. X\0\033[?0h\0\
  1558. X\2\033[OA\0\
  1559. X\0\033[OB\0\
  1560. X\0\033[OD\0\
  1561. X\0\033[OC\0\
  1562. X\0\033[Ox\0\
  1563. X\0\033[Or\0\
  1564. X\0\033[Ot\0\
  1565. X\0\033[Ov\0\
  1566. X\0\033[12~\0\
  1567. X\0\033[13~\0\
  1568. X\0\033[14~\0\
  1569. X\0\033[15~\0\
  1570. X\0\033[16~\0\
  1571. X\0\033[17~\0\
  1572. X\0\033[18~\0\
  1573. X\0\033[19~\0\
  1574. X\0\033[20~\0\
  1575. X\0\033[21~\0\
  1576. X\0\033[23~\0\
  1577. X\0\033[24~\0\
  1578. X\10\033[28~\0\
  1579. X\0\033[26~\0\
  1580. X\0\0"
  1581. X
  1582. X# define DEBUG_TCAP "debug\0\
  1583. X\0[EL]\0\
  1584. X\0[IL]\0\
  1585. X\0[CIL%d]\0\
  1586. X\0[DL]\0\
  1587. X\0[CDL%d]\0\
  1588. X\0[ED]\0\
  1589. X\0[CI]\0\
  1590. X\0[CV]\0\
  1591. X\0[TP]\0\
  1592. X\0[TI]\0\
  1593. X\0[%dCM%d]\0\
  1594. X\0[SR]\0\
  1595. X\0[CRI%d]\0\
  1596. X\0[VB]\0\
  1597. X\0[KS]\0\
  1598. X\0[KE]\0\
  1599. X\0[TI]\0\
  1600. X\0[TE]\0\
  1601. X\0[KU]\0\
  1602. X\0[KD]\0\
  1603. X\0[KL]\0\
  1604. X\0[KR]\0\
  1605. X\0[SKU]\0\
  1606. X\0[SKD]\0\
  1607. X\0[SKL]\0\
  1608. X\0[SKR]\0\
  1609. X\0[F1]\0\
  1610. X\0[F2]\0\
  1611. X\0[F3]\0\
  1612. X\0[F4]\0\
  1613. X\0[F5]\0\
  1614. X\0[F6]\0\
  1615. X\0[F7]\0\
  1616. X\0[F8]\0\
  1617. X\0[F9]\0\
  1618. X\0[F10]\0\
  1619. X\0[SF1]\0\
  1620. X\0[SF2]\0\
  1621. X\0[SF3]\0\
  1622. X\0[SF4]\0\
  1623. X\0[SF5]\0\
  1624. X\0[SF6]\0\
  1625. X\0[SF7]\0\
  1626. X\0[SF8]\0\
  1627. X\0[SF9]\0\
  1628. X\0[SF10]\0\
  1629. X\0[HELP]\0\
  1630. X\0[UNDO]\0\
  1631. X\0\0"
  1632. X
  1633. X# ifdef ATARI
  1634. X#  define DFLT_TCAP ATARI_TCAP
  1635. X# endif /* ATARI */
  1636. X
  1637. X# ifdef AMIGA
  1638. X#  define DFLT_TCAP AMIGA_TCAP
  1639. X# endif /* AMIGA */
  1640. X
  1641. X# ifdef MSDOS
  1642. X#  define DFLT_TCAP PCTERM_TCAP
  1643. X# endif /* MSDOS */
  1644. X
  1645. X# ifdef UNIX
  1646. X#  define DFLT_TCAP ANSI_TCAP
  1647. X# endif /* UNIX */
  1648. X
  1649. X#endif /* NO_BUILTIN_TCAPS */
  1650. END_OF_FILE
  1651. if test 7566 -ne `wc -c <'vim/src/term.h'`; then
  1652.     echo shar: \"'vim/src/term.h'\" unpacked with wrong size!
  1653. fi
  1654. # end of 'vim/src/term.h'
  1655. fi
  1656. if test -f 'vim/src/vim.h' -a "${1}" != "-c" ; then 
  1657.   echo shar: Will not clobber existing file \"'vim/src/vim.h'\"
  1658. else
  1659. echo shar: Extracting \"'vim/src/vim.h'\" \(6430 characters\)
  1660. sed "s/^X//" >'vim/src/vim.h' <<'END_OF_FILE'
  1661. X/* vi:ts=4:sw=4
  1662. X *
  1663. X * VIM - Vi IMitation
  1664. X *
  1665. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  1666. X *                            Tim Thompson            twitch!tjt
  1667. X *                            Tony Andrews            onecom!wldrdg!tony 
  1668. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  1669. X */
  1670. X
  1671. X#if defined(SYSV) || defined(BSD)
  1672. X# ifndef UNIX
  1673. X#  define UNIX
  1674. X# endif
  1675. X#endif
  1676. X
  1677. X#include "debug.h"
  1678. X
  1679. X#include <stdio.h>
  1680. X
  1681. X#ifndef SYSV
  1682. X# include <stdlib.h>
  1683. X#endif
  1684. X
  1685. X#include <ctype.h>
  1686. X
  1687. X#ifdef BSD
  1688. X# include <strings.h>
  1689. X#else
  1690. X# include <string.h>
  1691. X#endif
  1692. X
  1693. X#include "ascii.h"
  1694. X#include "keymap.h"
  1695. X#include "term.h"
  1696. X#include "macros.h"
  1697. X#ifdef LATTICE
  1698. X# include <sys/types.h>
  1699. X# include <sys/stat.h>
  1700. X#else
  1701. X# ifdef _DCC
  1702. X#  include <sys/stat.h>
  1703. X# else
  1704. X#  ifdef MSDOS 
  1705. X#   include <sys\stat.h>
  1706. X#  else
  1707. X#   ifdef UNIX
  1708. X#     ifndef linux
  1709. X#      define volatile        /* needed for gcc */
  1710. X#      define signed            /* needed for gcc */
  1711. X#    endif
  1712. X#    include <sys/types.h>
  1713. X#    include <sys/stat.h>
  1714. X#   else
  1715. X#     include <stat.h>
  1716. X#   endif
  1717. X#  endif
  1718. X# endif
  1719. X#endif
  1720. X
  1721. X#ifdef AMIGA
  1722. X/*
  1723. X * arpbase.h must be included before functions.h
  1724. X */
  1725. X# include <libraries/arpbase.h>
  1726. X
  1727. X/*
  1728. X * This won't be needed if you have a version of Lattice 4.01 without broken
  1729. X * break signal handling.
  1730. X */
  1731. X#include <signal.h>
  1732. X#endif
  1733. X
  1734. X#ifndef AMIGA
  1735. X/*
  1736. X * For the Amiga we use a version of getenv that does local variables under 2.0
  1737. X */
  1738. X#define vimgetenv(x) getenv(x)
  1739. X#endif
  1740. X
  1741. X#ifdef AZTEC_C
  1742. X# include <functions.h>
  1743. X# define __ARGS(x)    x
  1744. X# define __PARMS(x)    x
  1745. X#endif
  1746. X
  1747. X#ifdef SASC
  1748. X# include <clib/exec_protos.h>
  1749. X# define __ARGS(x)    x
  1750. X# define __PARMS(x)    x
  1751. X#endif
  1752. X
  1753. X#ifdef _DCC
  1754. X# include <functions.h>
  1755. X# define __ARGS(x)    x
  1756. X# define __PARMS(x)    x
  1757. X#endif
  1758. X
  1759. X#ifdef __TURBOC__
  1760. X# define __ARGS(x) x
  1761. X#endif
  1762. X
  1763. X#ifdef MSDOS
  1764. X# include <dos.h>
  1765. X# include <dir.h>
  1766. X#endif
  1767. X
  1768. X#ifdef UNIX
  1769. X# include <sys/dir.h>        /* for MAXNAMLEN */
  1770. X# if defined(UFS_MAXNAMLEN) && !defined(MAXNAMLEN)
  1771. X#  define MAXNAMLEN UFS_MAXNAMLEN        /* for dynix/ptx */
  1772. X# endif
  1773. X# if defined(NAME_MAX) && !defined(MAXNAMLEN)
  1774. X#  define MAXNAMLEN NAME_MAX            /* for Linux befor .99p3 */
  1775. X# endif
  1776. X#endif
  1777. X
  1778. X#if defined(__STDC__) || defined(__GNUC__)
  1779. X# ifndef __ARGS
  1780. X#  define __ARGS(x) x
  1781. X# endif /* __ARGS */
  1782. X# if defined(_SEQUENT_)
  1783. X#  include "ptx_stdlib.h"
  1784. X# endif
  1785. X# if defined(sun)
  1786. X#  include "sun_stdlib.h"
  1787. X# endif
  1788. X# if defined(linux)
  1789. X#  include <unistd.h>  /* may make sense for others too. jw. */
  1790. X# endif
  1791. X#else /*__STDC__*/
  1792. X# if defined(_SEQUENT_) && !defined(_STDLIB_H_)
  1793. X  extern char *getenv();
  1794. X  extern void *malloc();
  1795. X# endif
  1796. X#endif /* __STDC__ */
  1797. X
  1798. X#ifndef __ARGS
  1799. X#define __ARGS(x)    ()
  1800. X#endif
  1801. X#ifndef __PARMS
  1802. X#define __PARMS(x)    ()
  1803. X#endif
  1804. X
  1805. X/*
  1806. X * for systems that do not allow free(NULL)
  1807. X */
  1808. X#ifdef NO_FREE_NULL
  1809. X# define free(x)    nofreeNULL(x)
  1810. X  extern void nofreeNULL __ARGS((void *));
  1811. X#endif
  1812. X
  1813. X/*
  1814. X * fnamecmp() is used to compare filenames.
  1815. X * On some systems case in a filename does not matter, on others it does.
  1816. X * (this does not account for maximum name lengths, thus it is not 100% accurate!)
  1817. X */
  1818. X#if defined(AMIGA) || defined(MSDOS)
  1819. X# define fnamecmp(x, y) stricmp((x), (y))
  1820. X#else
  1821. X# define fnamecmp(x, y) strcmp((x), (y))
  1822. X#endif
  1823. X
  1824. X/* flags for updateScreen() */
  1825. X#define VALID                    90    /* buffer not changed */
  1826. X#define NOT_VALID                91    /* buffer changed */
  1827. X#define VALID_TO_CURSCHAR        92    /* buffer before cursor not changed */
  1828. X#define INVERTED                93    /* redisplay inverted part */
  1829. X#define CLEAR                    94    /* first clear screen */
  1830. X#define CURSUPD                    95    /* update cursor first */
  1831. X
  1832. X/* values for State */
  1833. X#define NORMAL                     0
  1834. X#define CMDLINE                  1
  1835. X#define INSERT                     2
  1836. X#define APPEND                     3
  1837. X#define REPLACE                  4    /* replace mode */
  1838. X#define HELP                     5
  1839. X#define NOMAPPING                  6    /* no :mapping mode for vgetc() */
  1840. X#define HITRETURN                 7
  1841. X#define SETWINSIZE                 8
  1842. X#define NORMAL_BUSY                 9    /* busy interpreting a command */
  1843. X
  1844. X/* directions */
  1845. X#define FORWARD                  1
  1846. X#define BACKWARD                 -1
  1847. X
  1848. X/* for GetChars */
  1849. X#define T_PEEK                    1    /* do not wait at all */
  1850. X#define T_WAIT                    2    /* wait for a short time */
  1851. X#define T_BLOCK                    3    /* wait forever */
  1852. X
  1853. X#define QUOTELINE                29999    /* Quoting is linewise */
  1854. X
  1855. X/*
  1856. X * Names for the EXRC, HELP and temporary files.
  1857. X * Some of these may have been defined in the makefile.
  1858. X */
  1859. X#ifndef SYSVIMRC_FILE
  1860. X# define SYSVIMRC_FILE    "s:.vimrc"
  1861. X#endif
  1862. X#ifndef SYSEXRC_FILE
  1863. X# define SYSEXRC_FILE    "s:.exrc"
  1864. X#endif
  1865. X#ifndef VIMRC_FILE
  1866. X# define VIMRC_FILE        ".vimrc"
  1867. X#endif
  1868. X#ifndef EXRC_FILE
  1869. X# define EXRC_FILE        ".exrc"
  1870. X#endif
  1871. X#ifndef VIM_HLP
  1872. X# define VIM_HLP        "vim:vim.hlp"
  1873. X#endif
  1874. X#define TMPNAME1        "t:viXXXXXX"
  1875. X#define TMPNAME2        "t:voXXXXXX"
  1876. X#define TMPNAMELEN        12
  1877. X
  1878. X/*
  1879. X * Boolean constants
  1880. X */
  1881. X#ifndef TRUE
  1882. X#define FALSE    (0)            /* note: this is an int, not a long! */
  1883. X#define TRUE    (1)
  1884. X#endif
  1885. X
  1886. X/*
  1887. X * Maximum screen dimensions
  1888. X */
  1889. X#define MAX_COLUMNS 140L
  1890. X
  1891. X/*
  1892. X * Buffer sizes
  1893. X */
  1894. X#define CMDBUFFSIZE    256            /* size of the command processing buffer */
  1895. X
  1896. X#define LSIZE        512            /* max. size of a line in the tags file */
  1897. X
  1898. X#define IOSIZE       (1024+1)     /* file i/o and sprintf buffer size */
  1899. X
  1900. X#define    TERMBUFSIZE    1024
  1901. X
  1902. X#ifdef linux
  1903. X# define TBUFSZ 2048            /* buffer size for termcap entry */
  1904. X#else
  1905. X# define TBUFSZ 1024            /* buffer size for termcap entry */
  1906. X#endif
  1907. X
  1908. X/*
  1909. X * maximum length of a file name path
  1910. X */
  1911. X#ifdef UNIX
  1912. X# define MAXPATHL    1024        /* Unix has long paths and plenty of memory */
  1913. X#else
  1914. X# define MAXPATHL    128            /* not too long to put name on stack */
  1915. X#endif
  1916. X
  1917. X#ifdef MSDOS
  1918. X# define BASENAMELEN    8        /* length of base of file name */
  1919. X#else
  1920. X# ifdef UNIX
  1921. X#  define BASENAMELEN    (MAXNAMLEN - 5)
  1922. X# else
  1923. X#  define BASENAMELEN    26        /* Amiga */
  1924. X# endif
  1925. X#endif
  1926. X
  1927. X#ifdef MSDOS
  1928. X# define WRITEBIN    "wb"        /* no CR-LF translation */
  1929. X# define READBIN    "rb"
  1930. X#else
  1931. X# define WRITEBIN    "w"
  1932. X# define READBIN    "r"
  1933. X#endif
  1934. X
  1935. X#define CHANGED   set_Changed()
  1936. X#define UNCHANGED Changed = 0
  1937. X
  1938. X#if !defined(BSD) && !defined(linux) && !defined(SASC)
  1939. Xtypedef unsigned char    u_char;        /* shorthand */
  1940. Xtypedef unsigned short    u_short;    /* shorthand */
  1941. Xtypedef unsigned int    u_int;        /* shorthand */
  1942. Xtypedef unsigned long    u_long;        /* shorthand */
  1943. X#endif
  1944. X
  1945. X#ifdef BSD
  1946. X#define strchr(ptr, c)            index(ptr, c)
  1947. X#define strrchr(ptr, c)            rindex(ptr, c)
  1948. X#define memset(ptr, c, size)    bsdmemset(ptr, c, size)
  1949. Xchar *bsdmemset __ARGS((char *, int, long));
  1950. X#endif
  1951. X
  1952. Xtypedef long            linenr_t;    /* line number type */
  1953. Xtypedef unsigned        colnr_t;    /* column number type */
  1954. Xtypedef struct fpos        FPOS;        /* file position type */
  1955. X
  1956. X#define INVLNUM (0x7fffffff)        /* invalid line number */
  1957. X
  1958. Xstruct fpos
  1959. X{
  1960. X        linenr_t        lnum;    /* line number */
  1961. X        colnr_t         col;    /* column number */
  1962. X};
  1963. END_OF_FILE
  1964. if test 6430 -ne `wc -c <'vim/src/vim.h'`; then
  1965.     echo shar: \"'vim/src/vim.h'\" unpacked with wrong size!
  1966. fi
  1967. # end of 'vim/src/vim.h'
  1968. fi
  1969. echo shar: End of archive 3 \(of 23\).
  1970. cp /dev/null ark3isdone
  1971. MISSING=""
  1972. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ; do
  1973.     if test ! -f ark${I}isdone ; then
  1974.     MISSING="${MISSING} ${I}"
  1975.     fi
  1976. done
  1977. if test "${MISSING}" = "" ; then
  1978.     echo You have unpacked all 23 archives.
  1979.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1980. else
  1981.     echo You still need to unpack the following archives:
  1982.     echo "        " ${MISSING}
  1983. fi
  1984. ##  End of shell archive.
  1985. exit 0
  1986. -------------8<----------------8<----------------8<---------------8<--------
  1987. Bram Moolenaar                             | DISCLAIMER:  This  note  does  not
  1988. Oce Nederland B.V., Research & Development | necessarily represent the position
  1989. p.o. box 101, 5900 MA  Venlo               | of  Oce-Nederland  B.V.  Therefore
  1990. The Netherlands        phone +31 77 594077 | no liability or responsibility for
  1991. UUCP: mool@oce.nl        fax +31 77 595450 | whatever will be accepted.
  1992.  
  1993. exit 0 # Just in case...
  1994.