Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
14 KiB

  1. static char RCSid[] =
  2. "$Header: /nw/tony/src/stevie/src/RCS/version.c,v 3.69 89/08/13 11:41:58 tony Exp $";
  3. /*
  4. * Contains the declaration of the global version number variable.
  5. *
  6. * revision 0.23 JohnRo 1/20/92
  7. * Make tag search obey ignorecase flag.
  8. *
  9. * revision 0.22 JohnRo 11/6/91
  10. * Made Tags file more like that of other versions of VI.
  11. *
  12. * revision 0.21 tedm 6/9/91
  13. * add named buffers (numbered buffers still absent)
  14. *
  15. * revision 0.16 tedm 6/8/91
  16. * add v and V visual operators for lowercasing and uppercasing.
  17. *
  18. * revision 0.15 tedm
  19. * add :list
  20. *
  21. * revision 0.14 tedm
  22. * add source command and automatic 'source $init:ntvi.exe' at startup
  23. *
  24. * Revision 0.13 tedm
  25. * add undo for line-oriented delete. Still no undo for global or substitute.
  26. *
  27. * Revision 0.12 tedm
  28. * add line-oriented delete command.
  29. *
  30. * Revision 0.11 tedm
  31. * Changes various buffers to be dynamically allocated. Insert mode is no
  32. * longer limited to 1024 characters at a time.
  33. *
  34. * NT version 0.1 tedm
  35. * ported
  36. *
  37. * $Log: version.c,v $
  38. * Revision 3.69 89/08/13 11:41:58 tony
  39. * Fixed a bug that caused messages from fileinfo() (in misccmds.c) to get
  40. * messed up. The routine smsg() which uses the kludge approach to varargs
  41. * didn't have enough parameters for some of the calls made to it.
  42. *
  43. * Revision 3.68 89/08/06 09:51:20 tony
  44. * Misc. minor changes to make lint happier before posting to USENET.
  45. *
  46. * Revision 3.67 89/08/03 13:08:52 tony
  47. * There was some code in ops.c that was duplicating the function of the
  48. * getcmdln() routine in cmdline.c. I modified getcmdln() to be slightly
  49. * more general, and changed dofilter() in ops.c to use it.
  50. *
  51. * Revision 3.66 89/08/02 20:00:12 tony
  52. * Fixed some problems with mode lines. There were still extra screen
  53. * redraws that needed to be avoided. There was also a problem involving
  54. * nested calls to docmdln() that can occur when mode lines are used.
  55. *
  56. * Revision 3.65 89/08/02 15:50:03 tony
  57. * Finally got around to providing full support for the "change" operator.
  58. * Multi-line changes (like "cL" or "3cc") now work correctly. Also fixed
  59. * a small problem with multi-line character-oriented deletes leaving the
  60. * cursor in the wrong location (off by one character). This is mainly
  61. * useful for multi-line changes (such as "c%") so the insert starts in
  62. * the right place.
  63. *
  64. * Revision 3.64 89/08/02 12:47:04 tony
  65. * This message intentionally left blank.
  66. *
  67. * Revision 3.63 89/08/02 12:43:44 tony
  68. * I just noticed that I had used the RCS cookie for log messages in one
  69. * of my prior version messages. This caused these version update messages
  70. * to be duplicated in this file. I just removed that string, and the
  71. * extra message copies that had been generated.
  72. *
  73. * Revision 3.62 89/08/02 12:26:20 tony
  74. * The ^G command now shows where you are in the file list, if more than one
  75. * file is being edited. Also, the commands ":e#" and ":e!#" (note the lack
  76. * of a space between the command and file name) will now work.
  77. *
  78. * Revision 3.61 89/08/02 11:03:16 tony
  79. * Misc. cleanups regarding tags. Also added support for the "terse" option.
  80. * This is ignored, but improves compatibility with vi, since we no longer
  81. * complain about an unknown option if "terse" is used.
  82. *
  83. * Revision 3.60 89/08/02 09:26:39 tony
  84. * Added code to avoid screen redraws when input is being read from the
  85. * "stuffin" buffer. This avoids extra redraws when switching to the
  86. * alternate file, or when invoking the editor with one of the "+" options,
  87. * or when using tags.
  88. *
  89. * Revision 3.59 89/08/01 16:28:31 tony
  90. * Added better support for counts on several cursor motion commands. These
  91. * include ^F, ^B, f, F, t, T, as well as the repeated character search
  92. * commands (command and semi-colon).
  93. *
  94. * Revision 3.58 89/07/19 08:08:23 tony
  95. * Added the ability for '~' to be an operator. If enabled (by defined TILDEOP
  96. * in env.h), the parameter "tildeop" (or "to") may be set to turn tilde into
  97. * an operator.
  98. *
  99. * Revision 3.57 89/07/13 22:47:05 tony
  100. * Made some generic speed improvements in screen.c and some TOS-specific
  101. * improvements in tos.c. The TOS version is now much faster at screen
  102. * updates than before.
  103. *
  104. * Revision 3.56 89/07/13 14:52:03 tony
  105. * Minor cleanups in normal.c
  106. *
  107. * Revision 3.55 89/07/13 14:19:12 tony
  108. * Cleaned up the logic in getcmdln() A LOT. The routine docmdln() needs a
  109. * similar overhaul.
  110. *
  111. * Revision 3.54 89/07/12 21:40:01 tony
  112. * Lots of misc. cleanup in normal.c and cmdline.c, but nothing much in the
  113. * way of functional improvements. One change is that things like d/foo<CR>
  114. * will now work since searches are less of a special case now.
  115. *
  116. * Revision 3.53 89/07/11 16:16:08 tony
  117. * Added general support for interrupt-handling for those environments that
  118. * can actually generate them. Basically, long-running operations are now
  119. * able to terminate early if an error occurs. These operations are: string
  120. * searches, the global command (":g/.../"), and file reads. File writes
  121. * should probably be done as well, but this is more dangerous. In all cases,
  122. * the user is given an indication on the status line that the operation
  123. * terminated due to an interrupt.
  124. *
  125. * Revision 3.52 89/07/11 12:35:09 tony
  126. * Improved the code in dosub() and doglob() that detects quoted characters
  127. * and delimiters in search strings and replacement patterns. The current
  128. * code didn't allow certain valid strings to be used. The delimiter is still
  129. * required to be '/', but it can be quoted reliably now with backslash.
  130. *
  131. * Revision 3.51 89/07/10 14:01:58 tony
  132. * Removed the function addtobuff() since it was rarely used and could be
  133. * replaced by calls to other library functions. Also removed some other
  134. * obsolete code that was already ifdef'd out anyway.
  135. *
  136. * Revision 3.50 89/07/10 13:10:32 tony
  137. * Added a workaround in normal.c to avoid problems with broken versions of
  138. * strncpy() that don't properly deal with a count of zero.
  139. *
  140. * Revision 3.49 89/07/07 16:28:37 tony
  141. * Fixed a long-standing bug with 'cw' when the cursor is positioned on a
  142. * word with only one character. Also fixed a problems with zero-length files
  143. * and reverse searches.
  144. *
  145. * Revision 3.48 89/03/22 10:26:58 tony
  146. * Fixed some outdated uses of the ":p" command (which has been changed to
  147. * ":N" in os2.c and dos.c. Also added macros (F7 and F8) for dos and os/2
  148. * to use the "cdecl" program to convert lines to and from a pseudo-english
  149. * form. Use F7 to "explain" the declaration on the current line, and F8 to
  150. * convert an english-style declaration to the C form. In both cases, the
  151. * new form is placed on the next line, leaving the original line intact.
  152. *
  153. * Revision 3.47 89/03/11 22:44:14 tony
  154. * General cleanup. Removed the static "rcsid" variables and the log
  155. * strings (except in version.c). Fixed some coding style inconsistencies
  156. * and added a few register declarations.
  157. *
  158. * Revision 3.46 89/02/14 09:52:07 tony
  159. * Made a first pass at adding Robert Regn's changes, starting with the
  160. * more portable ones. Added better support for '#' and '%' in colon
  161. * commands, support for a configurable temp directory, and made the
  162. * termcap code less picky about capabilities.
  163. *
  164. * Revision 3.45 88/11/10 09:00:06 tony
  165. * Added support for mode lines. Strings like "vi:stuff:" or "ex:stuff:"
  166. * occurring in the first or last 5 lines of a file cause the editor to
  167. * pretend that "stuff" was types as a colon command. This examination
  168. * is done only if the parameter "modelines" (or "ml") is set. This is
  169. * not enabled, by default, because of the security implications involved.
  170. *
  171. * Revision 3.44 88/11/01 21:34:11 tony
  172. * Fixed a couple of minor points for Minix, and improved the speed of
  173. * the 'put' command dramatically.
  174. *
  175. * Revision 3.43 88/10/31 13:11:33 tony
  176. * Added optional support for termcap. Initialization is done in term.c
  177. * and also affects the system-dependent files. To enable termcap in those
  178. * environments that support it, define the symbol "TERMCAP" in env.h
  179. *
  180. * Revision 3.42 88/10/27 18:30:19 tony
  181. * Removed support for Megamax. Added '%' as an alias for '1,$'. Made the
  182. * 'r' command more robust. Now prints the string on repeated searches.
  183. * The ':=" command now works. Some pointer operations are now safer.
  184. * The ":!" and ":sh" now work correctly. Re-organized the help screens
  185. * a little.
  186. *
  187. * Revision 3.41 88/10/06 10:15:00 tony
  188. * Fixed a bug involving ^Y that occurs when the cursor is on the last
  189. * line, and the line above the screen is long. Also hacked up fileio.c
  190. * to pass pathnames off to fixname() for system-dependent processing.
  191. * Used under DOS & OS/2 to trim parts of the name appropriately.
  192. *
  193. * Revision 3.40 88/09/16 08:37:36 tony
  194. * No longer beeps when repeated searches fail.
  195. *
  196. * Revision 3.39 88/09/06 06:51:07 tony
  197. * Fixed a bug with shifts that was introduced when replace mode was added.
  198. *
  199. * Revision 3.38 88/08/31 20:48:28 tony
  200. * Made another fix in search.c related to repeated searches.
  201. *
  202. * Revision 3.37 88/08/30 20:37:16 tony
  203. * After much prodding from Mark, I finally added support for replace mode.
  204. *
  205. * Revision 3.36 88/08/26 13:46:34 tony
  206. * Added support for the '!' (filter) operator.
  207. *
  208. * Revision 3.35 88/08/26 08:46:01 tony
  209. * Misc. changes to make lint happy.
  210. *
  211. * Revision 3.34 88/08/25 15:13:36 tony
  212. * Fixed a bug where the cursor didn't land on the right place after
  213. * "beginning-of-word" searches if the word was preceded by the start
  214. * of the line and a single character.
  215. *
  216. * Revision 3.33 88/08/23 12:53:08 tony
  217. * Fixed a bug in ssearch() where repeated searches ('n' or 'N') resulted
  218. * in dynamic memory being referenced after it was freed.
  219. *
  220. * Revision 3.32 88/08/17 07:37:07 tony
  221. * Fixed a general problem in u_save() by checking both parameters for
  222. * null values. The specific symptom was that a join on the last line of
  223. * the file would crash the editor.
  224. *
  225. * Revision 3.31 88/07/09 20:39:38 tony
  226. * Implemented the "line undo" command (i.e. 'U').
  227. *
  228. * Revision 3.30 88/06/28 07:54:22 tony
  229. * Fixed a bug involving redo's of the '~' command. The redo would just
  230. * repeat the replacement last performed instead of switching the case of
  231. * the current character.
  232. *
  233. * Revision 3.29 88/06/26 14:53:19 tony
  234. * Added support for a simple form of the "global" command. It supports
  235. * commands of the form "g/pat/d" or "g/pat/p", to delete or print lines
  236. * that match the given pattern. A range spec may be used to limit the
  237. * lines to be searched.
  238. *
  239. * Revision 3.28 88/06/25 21:44:22 tony
  240. * Fixed a problem in the processing of colon commands that caused
  241. * substitutions of patterns containing white space to fail.
  242. *
  243. * Revision 3.27 88/06/20 14:52:21 tony
  244. * Merged in changes for BSD Unix sent in by Michael Lichter.
  245. *
  246. * Revision 3.26 88/06/10 13:44:06 tony
  247. * Fixed a bug involving writing out files with long pathnames. A small
  248. * fixed size buffer was being used. The space for the backup file name
  249. * is now allocated dynamically.
  250. *
  251. * Revision 3.25 88/05/04 08:29:02 tony
  252. * Fixed a minor incompatibility with vi involving the 'G' command. Also
  253. * changed the RCS version number of version.c to match the actual version
  254. * of the editor.
  255. *
  256. * Revision 1.12 88/05/03 14:39:52 tony
  257. * Changed the screen representation of the ascii character DELETE to be
  258. * compatible with vi. Also merged in support for DOS.
  259. *
  260. * Revision 1.11 88/05/02 21:38:21 tony
  261. * The code that reads files now handles boundary/error conditions much
  262. * better, and generates status/error messages that are compatible with
  263. * the real vi. Also fixed a bug in repeated reverse searches that got
  264. * inserted in the recent changes to search.c.
  265. *
  266. * Revision 1.10 88/05/02 07:35:41 tony
  267. * Fixed a bug in the routine plines() that was introduced during changes
  268. * made for the last version.
  269. *
  270. * Revision 1.9 88/05/01 20:10:19 tony
  271. * Fixed some problems with auto-indent, and added support for the "number"
  272. * parameter.
  273. *
  274. * Revision 1.8 88/04/30 20:00:49 tony
  275. * Added support for the auto-indent feature.
  276. *
  277. * Revision 1.7 88/04/29 14:50:11 tony
  278. * Fixed a class of bugs involving commands like "ct)" where the cursor
  279. * motion part of the operator can fail. If the motion failed, the operator
  280. * was continued, with the cursor position unchanged. Cases like this were
  281. * modified to abort the operation if the motion fails.
  282. *
  283. * Revision 1.6 88/04/28 08:19:35 tony
  284. * Modified Henry Spencer's regular expression library to support new
  285. * features that couldn't be done easily with the existing interface.
  286. * This code is now a direct part of the editor source code. The editor
  287. * now supports the "ignorecase" parameter, and multiple substitutions
  288. * per line, as in "1,$s/foo/bar/g".
  289. *
  290. * Revision 1.5 88/04/24 21:38:00 tony
  291. * Added preliminary support for the substitute command. Full range specs.
  292. * are supported, but only a single substitution is allowed on each line.
  293. *
  294. * Revision 1.4 88/04/23 20:41:01 tony
  295. * Worked around a problem with adding lines to the end of the buffer when
  296. * the cursor is at the bottom of the screen (in misccmds.c). Also fixed a
  297. * bug that caused reverse searches from the start of the file to bomb.
  298. *
  299. * Revision 1.3 88/03/24 08:57:00 tony
  300. * Fixed a bug in cmdline() that had to do with backspacing out of colon
  301. * commands or searches. Searches were okay, but colon commands backed out
  302. * one backspace too early.
  303. *
  304. * Revision 1.2 88/03/21 16:47:55 tony
  305. * Fixed a bug in renum() causing problems with large files (>6400 lines).
  306. * Also moved system-specific defines out of stevie.h and into a new file
  307. * named env.h. This keeps volatile information outside the scope of RCS.
  308. *
  309. * Revision 1.1 88/03/20 21:00:39 tony
  310. * Initial revision
  311. *
  312. */
  313. char *Version = "NT VI - Version 0.23";