summaryrefslogblamecommitdiffstats
path: root/private/sdktools/vi/version.c
blob: eca438726df5edd8e15db937fccf12271bc29c6d (plain) (tree)


























































































































































































































































































































                                                                                     
static  char    RCSid[] =
"$Header: /nw/tony/src/stevie/src/RCS/version.c,v 3.69 89/08/13 11:41:58 tony Exp $";

/*
 * Contains the declaration of the global version number variable.
 *
 *  revision 0.23 JohnRo    1/20/92
 *  Make tag search obey ignorecase flag.
 *
 *  revision 0.22 JohnRo    11/6/91
 *  Made Tags file more like that of other versions of VI.
 *
 *  revision 0.21 tedm      6/9/91
 *  add named buffers (numbered buffers still absent)
 *
 *  revision 0.16 tedm      6/8/91
 *  add v and V visual operators for lowercasing and uppercasing.
 *
 *  revision 0.15 tedm
 *  add :list
 *
 *  revision 0.14 tedm
 *  add source command and automatic 'source $init:ntvi.exe' at startup
 *
 *  Revision 0.13 tedm
 *  add undo for line-oriented delete.  Still no undo for global or substitute.
 *
 *  Revision 0.12 tedm
 *  add line-oriented delete command.
 *
 *  Revision 0.11 tedm
 *  Changes various buffers to be dynamically allocated.  Insert mode is no
 *  longer limited to 1024 characters at a time.
 *
 *  NT version 0.1 tedm
 *  ported
 *
 * $Log:        version.c,v $
 * Revision 3.69  89/08/13  11:41:58  tony
 * Fixed a bug that caused messages from fileinfo() (in misccmds.c) to get
 * screwed up. The routine smsg() which uses the kludge approach to varargs
 * didn't have enough parameters for some of the calls made to it.
 *
 * Revision 3.68  89/08/06  09:51:20  tony
 * Misc. minor changes to make lint happier before posting to USENET.
 *
 * Revision 3.67  89/08/03  13:08:52  tony
 * There was some code in ops.c that was duplicating the function of the
 * getcmdln() routine in cmdline.c. I modified getcmdln() to be slightly
 * more general, and changed dofilter() in ops.c to use it.
 *
 * Revision 3.66  89/08/02  20:00:12  tony
 * Fixed some problems with mode lines. There were still extra screen
 * redraws that needed to be avoided. There was also a problem involving
 * nested calls to docmdln() that can occur when mode lines are used.
 *
 * Revision 3.65  89/08/02  15:50:03  tony
 * Finally got around to providing full support for the "change" operator.
 * Multi-line changes (like "cL" or "3cc") now work correctly. Also fixed
 * a small problem with multi-line character-oriented deletes leaving the
 * cursor in the wrong location (off by one character). This is mainly
 * useful for multi-line changes (such as "c%") so the insert starts in
 * the right place.
 *
 * Revision 3.64  89/08/02  12:47:04  tony
 * This message intentionally left blank.
 *
 * Revision 3.63  89/08/02  12:43:44  tony
 * I just noticed that I had used the RCS cookie for log messages in one
 * of my prior version messages. This caused these version update messages
 * to be duplicated in this file. I just removed that string, and the
 * extra message copies that had been generated.
 *
 * Revision 3.62  89/08/02  12:26:20  tony
 * The ^G command now shows where you are in the file list, if more than one
 * file is being edited. Also, the commands ":e#" and ":e!#" (note the lack
 * of a space between the command and file name) will now work.
 *
 * Revision 3.61  89/08/02  11:03:16  tony
 * Misc. cleanups regarding tags. Also added support for the "terse" option.
 * This is ignored, but improves compatibility with vi, since we no longer
 * complain about an unknown option if "terse" is used.
 *
 * Revision 3.60  89/08/02  09:26:39  tony
 * Added code to avoid screen redraws when input is being read from the
 * "stuffin" buffer. This avoids extra redraws when switching to the
 * alternate file, or when invoking the editor with one of the "+" options,
 * or when using tags.
 *
 * Revision 3.59  89/08/01  16:28:31  tony
 * Added better support for counts on several cursor motion commands. These
 * include ^F, ^B, f, F, t, T, as well as the repeated character search
 * commands (command and semi-colon).
 *
 * Revision 3.58  89/07/19  08:08:23  tony
 * Added the ability for '~' to be an operator. If enabled (by defined TILDEOP
 * in env.h), the parameter "tildeop" (or "to") may be set to turn tilde into
 * an operator.
 *
 * Revision 3.57  89/07/13  22:47:05  tony
 * Made some generic speed improvements in screen.c and some TOS-specific
 * improvements in tos.c. The TOS version is now much faster at screen
 * updates than before.
 *
 * Revision 3.56  89/07/13  14:52:03  tony
 * Minor cleanups in normal.c
 *
 * Revision 3.55  89/07/13  14:19:12  tony
 * Cleaned up the logic in getcmdln() A LOT. The routine docmdln() needs a
 * similar overhaul.
 *
 * Revision 3.54  89/07/12  21:40:01  tony
 * Lots of misc. cleanup in normal.c and cmdline.c, but nothing much in the
 * way of functional improvements. One change is that things like d/foo<CR>
 * will now work since searches are less of a special case now.
 *
 * Revision 3.53  89/07/11  16:16:08  tony
 * Added general support for interrupt-handling for those environments that
 * can actually generate them. Basically, long-running operations are now
 * able to terminate early if an error occurs. These operations are: string
 * searches, the global command (":g/.../"), and file reads. File writes
 * should probably be done as well, but this is more dangerous. In all cases,
 * the user is given an indication on the status line that the operation
 * terminated due to an interrupt.
 *
 * Revision 3.52  89/07/11  12:35:09  tony
 * Improved the code in dosub() and doglob() that detects quoted characters
 * and delimiters in search strings and replacement patterns. The current
 * code didn't allow certain valid strings to be used. The delimiter is still
 * required to be '/', but it can be quoted reliably now with backslash.
 *
 * Revision 3.51  89/07/10  14:01:58  tony
 * Removed the function addtobuff() since it was rarely used and could be
 * replaced by calls to other library functions. Also removed some other
 * obsolete code that was already ifdef'd out anyway.
 *
 * Revision 3.50  89/07/10  13:10:32  tony
 * Added a workaround in normal.c to avoid problems with broken versions of
 * strncpy() that don't properly deal with a count of zero.
 *
 * Revision 3.49  89/07/07  16:28:37  tony
 * Fixed a long-standing bug with 'cw' when the cursor is positioned on a
 * word with only one character. Also fixed a problems with zero-length files
 * and reverse searches.
 *
 * Revision 3.48  89/03/22  10:26:58  tony
 * Fixed some outdated uses of the ":p" command (which has been changed to
 * ":N" in os2.c and dos.c. Also added macros (F7 and F8) for dos and os/2
 * to use the "cdecl" program to convert lines to and from a pseudo-english
 * form. Use F7 to "explain" the declaration on the current line, and F8 to
 * convert an english-style declaration to the C form. In both cases, the
 * new form is placed on the next line, leaving the original line intact.
 *
 * Revision 3.47  89/03/11  22:44:14  tony
 * General cleanup. Removed the static "rcsid" variables and the log
 * strings (except in version.c). Fixed some coding style inconsistencies
 * and added a few register declarations.
 *
 * Revision 3.46  89/02/14  09:52:07  tony
 * Made a first pass at adding Robert Regn's changes, starting with the
 * more portable ones. Added better support for '#' and '%' in colon
 * commands, support for a configurable temp directory, and made the
 * termcap code less picky about capabilities.
 *
 * Revision 3.45  88/11/10  09:00:06  tony
 * Added support for mode lines. Strings like "vi:stuff:" or "ex:stuff:"
 * occurring in the first or last 5 lines of a file cause the editor to
 * pretend that "stuff" was types as a colon command. This examination
 * is done only if the parameter "modelines" (or "ml") is set. This is
 * not enabled, by default, because of the security implications involved.
 *
 * Revision 3.44  88/11/01  21:34:11  tony
 * Fixed a couple of minor points for Minix, and improved the speed of
 * the 'put' command dramatically.
 *
 * Revision 3.43  88/10/31  13:11:33  tony
 * Added optional support for termcap. Initialization is done in term.c
 * and also affects the system-dependent files. To enable termcap in those
 * environments that support it, define the symbol "TERMCAP" in env.h
 *
 * Revision 3.42  88/10/27  18:30:19  tony
 * Removed support for Megamax. Added '%' as an alias for '1,$'. Made the
 * 'r' command more robust. Now prints the string on repeated searches.
 * The ':=" command now works. Some pointer operations are now safer.
 * The ":!" and ":sh" now work correctly. Re-organized the help screens
 * a little.
 *
 * Revision 3.41  88/10/06  10:15:00  tony
 * Fixed a bug involving ^Y that occurs when the cursor is on the last
 * line, and the line above the screen is long. Also hacked up fileio.c
 * to pass pathnames off to fixname() for system-dependent processing.
 * Used under DOS & OS/2 to trim parts of the name appropriately.
 *
 * Revision 3.40  88/09/16  08:37:36  tony
 * No longer beeps when repeated searches fail.
 *
 * Revision 3.39  88/09/06  06:51:07  tony
 * Fixed a bug with shifts that was introduced when replace mode was added.
 *
 * Revision 3.38  88/08/31  20:48:28  tony
 * Made another fix in search.c related to repeated searches.
 *
 * Revision 3.37  88/08/30  20:37:16  tony
 * After much prodding from Mark, I finally added support for replace mode.
 *
 * Revision 3.36  88/08/26  13:46:34  tony
 * Added support for the '!' (filter) operator.
 *
 * Revision 3.35  88/08/26  08:46:01  tony
 * Misc. changes to make lint happy.
 *
 * Revision 3.34  88/08/25  15:13:36  tony
 * Fixed a bug where the cursor didn't land on the right place after
 * "beginning-of-word" searches if the word was preceded by the start
 * of the line and a single character.
 *
 * Revision 3.33  88/08/23  12:53:08  tony
 * Fixed a bug in ssearch() where repeated searches ('n' or 'N') resulted
 * in dynamic memory being referenced after it was freed.
 *
 * Revision 3.32  88/08/17  07:37:07  tony
 * Fixed a general problem in u_save() by checking both parameters for
 * null values. The specific symptom was that a join on the last line of
 * the file would crash the editor.
 *
 * Revision 3.31  88/07/09  20:39:38  tony
 * Implemented the "line undo" command (i.e. 'U').
 *
 * Revision 3.30  88/06/28  07:54:22  tony
 * Fixed a bug involving redo's of the '~' command. The redo would just
 * repeat the replacement last performed instead of switching the case of
 * the current character.
 *
 * Revision 3.29  88/06/26  14:53:19  tony
 * Added support for a simple form of the "global" command. It supports
 * commands of the form "g/pat/d" or "g/pat/p", to delete or print lines
 * that match the given pattern. A range spec may be used to limit the
 * lines to be searched.
 *
 * Revision 3.28  88/06/25  21:44:22  tony
 * Fixed a problem in the processing of colon commands that caused
 * substitutions of patterns containing white space to fail.
 *
 * Revision 3.27  88/06/20  14:52:21  tony
 * Merged in changes for BSD Unix sent in by Michael Lichter.
 *
 * Revision 3.26  88/06/10  13:44:06  tony
 * Fixed a bug involving writing out files with long pathnames. A small
 * fixed size buffer was being used. The space for the backup file name
 * is now allocated dynamically.
 *
 * Revision 3.25  88/05/04  08:29:02  tony
 * Fixed a minor incompatibility with vi involving the 'G' command. Also
 * changed the RCS version number of version.c to match the actual version
 * of the editor.
 *
 * Revision 1.12  88/05/03  14:39:52  tony
 * Changed the screen representation of the ascii character DELETE to be
 * compatible with vi. Also merged in support for DOS.
 *
 * Revision 1.11  88/05/02  21:38:21  tony
 * The code that reads files now handles boundary/error conditions much
 * better, and generates status/error messages that are compatible with
 * the real vi. Also fixed a bug in repeated reverse searches that got
 * inserted in the recent changes to search.c.
 *
 * Revision 1.10  88/05/02  07:35:41  tony
 * Fixed a bug in the routine plines() that was introduced during changes
 * made for the last version.
 *
 * Revision 1.9  88/05/01  20:10:19  tony
 * Fixed some problems with auto-indent, and added support for the "number"
 * parameter.
 *
 * Revision 1.8  88/04/30  20:00:49  tony
 * Added support for the auto-indent feature.
 *
 * Revision 1.7  88/04/29  14:50:11  tony
 * Fixed a class of bugs involving commands like "ct)" where the cursor
 * motion part of the operator can fail. If the motion failed, the operator
 * was continued, with the cursor position unchanged. Cases like this were
 * modified to abort the operation if the motion fails.
 *
 * Revision 1.6  88/04/28  08:19:35  tony
 * Modified Henry Spencer's regular expression library to support new
 * features that couldn't be done easily with the existing interface.
 * This code is now a direct part of the editor source code. The editor
 * now supports the "ignorecase" parameter, and multiple substitutions
 * per line, as in "1,$s/foo/bar/g".
 *
 * Revision 1.5  88/04/24  21:38:00  tony
 * Added preliminary support for the substitute command. Full range specs.
 * are supported, but only a single substitution is allowed on each line.
 *
 * Revision 1.4  88/04/23  20:41:01  tony
 * Worked around a problem with adding lines to the end of the buffer when
 * the cursor is at the bottom of the screen (in misccmds.c). Also fixed a
 * bug that caused reverse searches from the start of the file to bomb.
 *
 * Revision 1.3  88/03/24  08:57:00  tony
 * Fixed a bug in cmdline() that had to do with backspacing out of colon
 * commands or searches. Searches were okay, but colon commands backed out
 * one backspace too early.
 *
 * Revision 1.2  88/03/21  16:47:55  tony
 * Fixed a bug in renum() causing problems with large files (>6400 lines).
 * Also moved system-specific defines out of stevie.h and into a new file
 * named env.h. This keeps volatile information outside the scope of RCS.
 *
 * Revision 1.1  88/03/20  21:00:39  tony
 * Initial revision
 *
 */

char    *Version = "NT VI - Version 0.23";