"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "less-424/version.c" of archive less-424.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 /*
    2  * Copyright (C) 1984-2008  Mark Nudelman
    3  *
    4  * You may distribute under the terms of either the GNU General Public
    5  * License or the Less License, as specified in the README file.
    6  *
    7  * For more information about less, or for information on how to
    8  * contact the author, see the README file.
    9  */
   10 
   11 
   12 /*
   13 ----------------------- CHANGE HISTORY --------------------------
   14 
   15        1/29/84	Allowed use on standard input
   16        2/1/84	Added E, N, P commands
   17        4/17/84	Added '=' command, 'stop' signal handling
   18        4/20/84	Added line folding
   19 v2     4/27/84	Fixed '=' command to use BOTTOM_PLUS_ONE,
   20 		instead of TOP, added 'p' & 'v' commands
   21 v3     5/3/84	Added -m and -t options, '-' command
   22 v4     5/3/84	Added LESS environment variable
   23 v5     5/3/84	New comments, fixed '-' command slightly
   24 v6     5/15/84	Added -Q, visual bell
   25 v7     5/24/84	Fixed jump_back(n) bug: n should count real
   26 		lines, not folded lines.  Also allow number on G command.
   27 v8     5/30/84	Re-do -q and -Q commands
   28 v9     9/25/84	Added "+<cmd>" argument
   29 v10    10/10/84	Fixed bug in -b<n> argument processing
   30 v11    10/18/84	Made error() ring bell if \n not entered.
   31 -----------------------------------------------------------------
   32 v12    2/13/85	Reorganized signal handling and made portable to 4.2bsd.
   33 v13    2/16/85	Reword error message for '-' command.
   34 v14    2/22/85	Added -bf and -bp variants of -b.
   35 v15    2/25/85	Miscellaneous changes.
   36 v16    3/13/85	Added -u flag for backspace processing.
   37 v17    4/13/85	Added j and k commands, changed -t default.
   38 v18    4/20/85	Rewrote signal handling code.
   39 v19    5/2/85	Got rid of "verbose" eq_message().
   40 		Made search() scroll in some cases.
   41 v20    5/21/85	Fixed screen.c ioctls for System V.
   42 v21    5/23/85	Fixed some first_cmd bugs.
   43 v22    5/24/85	Added support for no RECOMP nor REGCMP.
   44 v23    5/25/85	Miscellanous changes and prettying up.
   45 		Posted to USENET.
   46 -----------------------------------------------------------------
   47 v24    6/3/85	Added ti,te terminal init & de-init.
   48 		(Thanks to Mike Kersenbrock)
   49 v25    6/8/85	Added -U flag, standout mode underlining.
   50 v26    6/9/85	Added -M flag.
   51 		Use underline termcap (us) if it exists.
   52 v27    6/15/85	Renamed some variables to make unique in
   53 		6 chars.  Minor fix to -m.
   54 v28    6/28/85	Fixed right margin bug.
   55 v29    6/28/85	Incorporated M.Rose's changes to signal.c
   56 v30    6/29/85	Fixed stupid bug in argument processing.
   57 v31    7/15/85	Added -p flag, changed repaint algorithm.
   58 		Added kludge for magic cookie terminals.
   59 v32    7/16/85	Added cat_file if output not a tty.
   60 v33    7/23/85	Added -e flag and EDITOR.
   61 v34    7/26/85	Added -s flag.
   62 v35    7/27/85	Rewrote option handling; added option.c.
   63 v36    7/29/85	Fixed -e flag to work if not last file.
   64 v37    8/10/85	Added -x flag.
   65 v38    8/19/85	Changed prompting; created prompt.c.
   66 v39    8/24/85	(Not -p) does not initially clear screen.
   67 v40    8/26/85	Added "skipping" indicator in forw().
   68 		Posted to USENET.
   69 -----------------------------------------------------------------
   70 v41    9/17/85	ONLY_RETURN, control char commands,
   71 		faster search, other minor fixes.
   72 v42    9/25/85	Added ++ command line syntax;
   73 		ch_fsize for pipes.
   74 v43    10/15/85	Added -h flag, changed prim.c algorithms.
   75 v44    10/16/85	Made END print in all cases of eof;
   76 		ignore SIGTTOU after receiv ing SIGTSTP.
   77 v45    10/16/85	Never print backspaces unless -u.
   78 v46    10/24/85	Backwards scroll in jump_loc.
   79 v47    10/30/85	Fixed bug in edit(): *first_cmd==0
   80 v48    11/16/85	Use TIOCSETN instead of TIOCSETP.
   81 		Added marks (m and ' commands).
   82 		Posted to USENET.
   83 -----------------------------------------------------------------
   84 v49    1/9/86	Fixed bug: signal didn't clear mcc.
   85 v50    1/15/86	Added ' (quote) to gomark.
   86 v51    1/16/86	Added + cmd, fixed problem if first_cmd
   87 		fails, made g cmd sort of "work" on pipes
   88 		ev en if bof is no longer buffered.
   89 v52    1/17/86	Made short files work better.
   90 v53    1/20/86	Added -P option.
   91 v54    1/20/86	Changed help to use HELPFILE.
   92 v55    1/23/86	Messages work better if not tty output.
   93 v56    1/24/86	Added -l option.
   94 v57    1/31/86	Fixed -l to get confirmation before
   95 		ov erwriting an existing file.
   96 v58    8/28/86	Added filename globbing.
   97 v59    9/15/86	Fixed some bugs with very long filenames.
   98 v60    9/26/86	Incorporated changes from Leith (Casey)
   99 		Leedom for boldface and -z option.
  100 v61    9/26/86	Got rid of annoying repaints after ! cmd.
  101 		Posted to USENET.
  102 -----------------------------------------------------------------
  103 v62    12/23/86	Added is_directory(); change -z default to
  104 		-1 instead of 24; cat-and-exit if -e and
  105 		file is less than a screenful.
  106 v63    1/8/87	Fixed bug in cat-and-exit if > 1 file.
  107 v64    1/12/87	Changed puts/putstr, putc/putchr,
  108 		getc/getchr to av oid name conflict with
  109 		stdio functions.
  110 v65    1/26/87	Allowed '-' command to change NUMBER
  111 		v alued options (thanks to Gary Puckering)
  112 v66    2/13/87	Fixed bug: prepaint should use force=1.
  113 v67    2/24/87	Added !! and % expansion to ! command.
  114 v68    2/25/87	Added SIGWINCH and TIOCGWINSZ support;
  115 		changed is_directory to bad_file.
  116 		(thanks to J. Robert Ward)
  117 v69    2/25/87	Added SIGWIND and WIOCGETD (for Unix PC).
  118 v70    3/13/87	Changed help cmd from 'h' to 'H'; better
  119 		error msgs in bad_file, errno_message.
  120 v71    5/11/87	Changed -p to -c, made triple -c/-C
  121 		for clear-eol like more's -c.
  122 v72    6/26/87	Added -E, -L, use $SHELL in lsystem().
  123 		(thanks to Stev e Spearman)
  124 v73    6/26/87	Allow Examine "#" for previous file.
  125 		Posted to USENET 8/25/87.
  126 -----------------------------------------------------------------
  127 v74    9/18/87	Fix conflict in EOF symbol with stdio.h,
  128 		Make os.c more portable to BSD.
  129 v75    9/23/87	Fix problems in get_term (thanks to
  130 		Paul Eggert); new backwards scrolling in
  131 		jump_loc (thanks to Marion Hakanson).
  132 v76    9/23/87	Added -i flag; allow single "!" to
  133 		inv oke a shell (thanks to Franco Barber).
  134 v77    9/24/87	Added -n flag and line number support.
  135 v78    9/25/87	Fixed problem with prompts longer than
  136 		the screen width.
  137 v79    9/29/87	Added the _ command.
  138 v80    10/6/87	Allow signal to break out of linenum scan.
  139 v81    10/6/87	Allow -b to be changed from within less.
  140 v82    10/7/87	Add cmd_decode to use a table for key
  141 		binding (thanks to Dav id Nason).
  142 v83    10/9/87	Allow .less file for user-defined keys.
  143 v84    10/11/87	Fix -e/-E problems (thanks to Felix Lee).
  144 v85    10/15/87	Search now keeps track of line numbers.
  145 v86    10/20/87	Added -B option and autobuf; fixed
  146 		"pipe error" bug.
  147 v87    3/1/88	Fix bug re BSD signals while reading file.
  148 v88    3/12/88	Use new format for -P option (thanks to
  149 		der Mouse), allow "+-c" without message,
  150 		fix bug re BSD hangup.
  151 v89    3/18/88	Turn off line numbers if linenum scan
  152 		is interrupted.
  153 v90    3/30/88	Allow -P from within less.
  154 v91    3/30/88	Added tags file support (new -t option)
  155 		(thanks to Brian Campbell).
  156 v92    4/4/88	Added -+option syntax.
  157 v93    4/11/88	Add support for slow input (thanks to
  158 		Joe Orost & apologies for taking almost
  159 		3 years to get this in!)
  160 v94    4/11/88	Redo reading/signal stuff.
  161 v95    4/20/88	Repaint screen better after signal.
  162 v96    4/21/88	Add /! and ?! commands.
  163 v97    5/17/88	Allow -l/-L from within less.
  164 		Eliminate some static arrays (use calloc).
  165 		Posted to USENET.
  166 -----------------------------------------------------------------
  167 v98    10/14/88	Fix incorrect calloc call; uninitialized
  168 		var in exec_mca; core dump on unknown TERM.
  169 		Make v cmd work if past last line of file.
  170 		Fix some signal bugs.
  171 v99    10/29/88	Allow space between -X and string,
  172 		when X is a string-valued option.
  173 v100   1/5/89	Fix globbing bug when $SHELL not set;
  174 		allow spaces after -t command.
  175 v101   1/6/89	Fix problem with long (truncated) lines
  176 		in tags file (thanks to Neil Dixon).
  177 v102   1/6/89	Fix bug with E# when no prev file;
  178 		allow spaces after -l command.
  179 v103   3/14/89	Add -N, -f and -? options.  Add z and w
  180 		commands.  Add %L for prompt strings.
  181 v104   3/16/89	Added EDITPROTO.
  182 v105   3/20/89	Fix bug in find_linenum which cached
  183 		incorrectly on long lines.
  184 v106   3/31/89	Added -k option and multiple lesskey
  185 		files.
  186 v107   4/27/89	Add 8-bit char support and -g option.
  187 		Split option code into 3 files.
  188 v108   5/5/89	Allocate position table dynamically
  189 		(thanks to Paul Eggert); change % command
  190 		from "percent" to vi-style brace finder.
  191 v109   5/10/89	Added ESC-% command, split prim.c.
  192 v110   5/24/89	Fixed bug in + option; fixed repaint bug
  193 		under Sun windows (thanks to Paul Eggert).
  194 v111   5/25/89	Generalized # and % expansion; use
  195 		calloc for some error messages.
  196 v112   5/30/89	Get rid of ESC-%, add {}()[] commands.
  197 v113   5/31/89	Optimize lseeks (thanks to Paul Eggert).
  198 v114   7/25/89	Added ESC-/ and ESC-/! commands.
  199 v115   7/26/89	Added ESC-n command.
  200 v116   7/31/89	Added find_pos to optimize g command.
  201 v117   8/1/89	Change -f option to -r.
  202 v118   8/2/89	Save positions for all previous files,
  203 		not just the immediately previous one.
  204 v119   8/7/89	Save marks across file boundaries.
  205 		Add file handle stuff.
  206 v120   8/11/89	Add :ta command.
  207 v121   8/16/89	Add -f option.
  208 v122   8/30/89	Fix performance with many buffers.
  209 v123   8/31/89	Verbose prompts for string options.
  210 		Posted beta to USENET.
  211 -----------------------------------------------------------------
  212 v124   9/18/89	Reorganize search commands,
  213 		N = rev, ESC-n = span, add ESC-N.
  214 v125   9/18/89	Fix tab bug (thanks to Alex Liu).
  215 		Fix EOF bug when both -w and -c.
  216 v126   10/25/89	Add -j option.
  217 v127   10/27/89	Fix problems with blank lines before BOF.
  218 v128   10/27/89	Add %bj, etc. to prompt strings.
  219 v129   11/3/89	Add -+,-- commands; add set-option and
  220 		unset-option to lesskey.
  221 v130   11/6/89	Generalize A_EXTRA to string, remove
  222 		set-option, unset-option from lesskey.
  223 v131   11/7/89	Changed name of EDITPROTO to LESSEDIT.
  224 v132   11/8/89	Allow editing of command prefix.
  225 v133   11/16/89	Add -y option (thanks to Jeff Sullivan).
  226 v134   12/1/89	Glob filenames in the -l command.
  227 v135   12/5/89	Combined {}()[] commands into one, and
  228 		added ESC-^F and ESC-^B commands.
  229 v136   1/20/90	Added -S, -R flags.  Added | command.
  230 		Added warning for binary files. (thanks
  231 		to Richard Brittain and J. Sullivan).
  232 v137   1/21/90	Rewrote horrible pappend code.
  233 		Added * notation for hi-bit chars.
  234 v138   1/24/90	Fix magic cookie terminal handling.
  235 		Get rid of "cleanup" loop in ch_get.
  236 v139   1/27/90	Added MSDOS support.  (many thanks
  237 		to Richard Brittain).
  238 v140   2/7/90	Editing a new file adds it to the
  239 		command line list.
  240 v141   2/8/90	Add edit_list for editing >1 file.
  241 v142   2/10/90	Add :x command.
  242 v143   2/11/90	Add * and @ modifies to search cmds.
  243 		Change ESC-/ cmd from /@* to / *.
  244 v144   3/1/90	Messed around with ch_zero;
  245 		no real change.
  246 v145   3/2/90	Added -R and -v/-V for MSDOS;
  247 		renamed FILENAME to avoid conflict.
  248 v146   3/5/90	Pull cmdbuf functions out of command.c
  249 v147   3/7/90	Implement ?@; fix multi-file edit bugs.
  250 v148   3/29/90	Fixed bug in :e<file> then :e#.
  251 v149   4/3/90	Change error,ierror,query to use PARG.
  252 v150   4/6/90	Add LESS_CHARSET, LESS_CHARDEF.
  253 v151   4/13/90	Remove -g option; clean up ispipe.
  254 v152   4/14/90	lsystem() closes input file, for
  255 		editors which require exclusive open.
  256 v153   4/18/90	Fix bug if SHELL unset;
  257 		fix bug in overstrike control char.
  258 v154   4/25/90	Output to fd 2 via buffer.
  259 v155   4/30/90	Ignore -i if uppercase in pattern
  260 		(thanks to Michael Rendell.)
  261 v156   5/3/90	Remove scroll limits in forw() & back();
  262 		causes problems with -c.
  263 v157   5/4/90	Forward search starts at next real line
  264 		(not screen line) after jump target.
  265 v158   6/14/90	Added F command.
  266 v159   7/29/90	Fix bug in exiting: output not flushed.
  267 v160   7/29/90	Clear screen before initial output w/ -c.
  268 v161   7/29/90	Add -T flag.
  269 v162   8/14/90	Fix bug with +F on command line.
  270 v163   8/21/90	Added LESSBINFMT variable.
  271 v164   9/5/90	Added -p, LINES, COLUMNS and
  272 		unset mark ' == BOF, for 1003.2 D5.
  273 v165   9/6/90	At EOF with -c set, don't display empty
  274 		screen when try to page forward.
  275 v166   9/6/90	Fix G when final line in file wraps.
  276 v167   9/11/90	Translate CR/LF -> LF for 1003.2.
  277 v168   9/13/90	Return to curr file if "tag not found".
  278 v169   12/12/90	G goes to EOF even if file has grown.
  279 v170   1/17/91	Add optimization for BSD _setjmp;
  280 		fix #include ioctl.h TERMIO problem.
  281 		(thanks to Paul Eggert)
  282 		Posted to USENET.
  283 -----------------------------------------------------------------
  284 v171   3/6/91	Fix -? bug in get_filename.
  285 v172   3/15/91	Fix G bug in empty file.
  286 		Fix bug with ?\n and -i and uppercase
  287 		pattern at EOF!
  288 		(thanks to Paul Eggert)
  289 v173   3/17/91	Change N cmd to not permanently change
  290 		direction. (thanks to Brian Matthews)
  291 v174   3/18/91	Fix bug with namelogfile not getting
  292 		cleared when change files.
  293 v175   3/18/91	Fix bug with ++cmd on command line.
  294 		(thanks to Jim Meyering)
  295 v176   4/2/91	Change | to not force current screen,
  296 		include marked line, start/end from
  297 		top of screen.  Improve search speed.
  298 		(thanks to Don Mears)
  299 v177   4/2/91	Add LESSHELP variable.
  300 		Fix bug with F command with -e.
  301 		Try /dev/tty for input before using fd 2.
  302 		Patches posted to USENET  4/2/91.
  303 -----------------------------------------------------------------
  304 v178   4/8/91	Fixed bug in globbing logfile name.
  305 		(thanks to Jim Meyering)
  306 v179   4/9/91	Allow negative -z for screen-relative.
  307 v180   4/9/91	Clear to eos rather than eol if "db";
  308 		don't use "sr" if "da".
  309 		(thanks to Tor Lillqvist)
  310 v181   4/18/91	Fixed bug with "negative" chars 80 - FF.
  311 		(thanks to Benny Sander Hofmann)
  312 v182   5/16/91	Fixed bug with attribute at EOL.
  313 		(thanks to Brian Matthews)
  314 v183   6/1/91	Rewrite linstall to do smart config.
  315 v184   7/11/91	Process \b in searches based on -u
  316 		rather than -i.
  317 v185   7/11/91	-Pxxx sets short prompt; assume SIGWINCH
  318 		after a SIGSTOP. (thanks to Ken Laprade)
  319 -----------------------------------------------------------------
  320 v186   4/20/92	Port to MS-DOS (Microsoft C).
  321 v187   4/23/92	Added -D option & TAB_COMPLETE_FILENAME.
  322 v188   4/28/92	Added command line editing features.
  323 v189   12/8/92	Fix mem overrun in anscreen.c:init;
  324 		fix edit_list to recover from bin file.
  325 v190   2/13/93	Make TAB enter one filename at a time;
  326 		create ^L with old TAB functionality.
  327 v191   3/10/93	Defer creating "flash" page for MS-DOS.
  328 v192   9/6/93	Add BACK-TAB.
  329 v193   9/17/93	Simplify binary_file handling.
  330 v194   1/4/94	Add rudiments of alt_filename handling.
  331 v195   1/11/94	Port back to Unix; support keypad.
  332 -----------------------------------------------------------------
  333 v196   6/7/94	Fix bug with bad filename; fix IFILE
  334 		type problem. (thanks to David MacKenzie)
  335 v197   6/7/94	Fix bug with .less tables inserted wrong.
  336 v198   6/23/94	Use autoconf installation technology.
  337 		(thanks to David MacKenzie)
  338 v199   6/29/94	Fix MS-DOS build (thanks to Tim Wiegman).
  339 v200   7/25/94	Clean up copyright, minor fixes.
  340 	Posted to prep.ai.mit.edu
  341 -----------------------------------------------------------------
  342 v201   7/27/94	Check for no memcpy; add casts to calloc;
  343 		look for regcmp in libgen.a.
  344 		(thanks to Kaveh Ghazi).
  345 v202   7/28/94	Fix bug in edit_next/edit_prev with
  346 		non-existant files.
  347 v203   8/2/94	Fix a variety of configuration bugs on
  348 		various systems. (thanks to Sakai
  349 		Kiyotaka, Harald Koenig, Bjorn Brox,
  350 		Teemu Rantanen, and Thorsten Lockert)
  351 v204   8/3/94	Use strerror if available.
  352 		(thanks to J.T. Conklin)
  353 v205   8/5/94	Fix bug in finding "me" termcap entry.
  354 		(thanks to Andreas Stolcke)
  355 8/10/94 	v205+: Change BUFSIZ to LBUFSIZE to avoid name
  356 		conflict with stdio.h.
  357 		Posted to prep.ai.mit.edu
  358 -----------------------------------------------------------------
  359 v206   8/10/94	Use initial_scrpos for -t to avoid
  360 		displaying first page before init().
  361 		(thanks to Dominique Petitpierre)
  362 v207   8/12/94	Fix bug if stdout is not tty.
  363 v208   8/16/94	Fix bug in close_altfile if goto err1
  364 		in edit_ifile. (Thanks to M.J. Hewitt)
  365 v209   8/16/94	Change scroll to wscroll to avoid
  366 		conflict with library function.
  367 v210   8/16/94	Fix bug with bold on 8 bit chars.
  368 		(thanks to Vitor Duarte)
  369 v211   8/16/94	Don't quit on EOI in jump_loc / forw.
  370 v212   8/18/94	Use time_t if available.
  371 v213   8/20/94	Allow ospeed to be defined in termcap.h.
  372 v214   8/20/94	Added HILITE_SEARCH, -F, ESC-u cmd.
  373 		(thanks to Paul Lew and Bob Byrnes)
  374 v215   8/23/94	Fix -i toggle behavior.
  375 v216   8/23/94	Process BS in all searches, not only -u.
  376 v217   8/24/94	Added -X flag.
  377 v218   8/24/94	Reimplement undo_search.
  378 v219   8/24/94	Find tags marked with line number
  379 		instead of pattern.
  380 v220   8/24/94	Stay at same position after SIG_WINCH.
  381 v221   8/24/94	Fix bug in file percentage in big file.
  382 v222   8/25/94	Do better if can't reopen current file.
  383 v223   8/27/94	Support setlocale.
  384 		(thanks to Robert Joop)
  385 v224   8/29/94	Revert v216: process BS in search
  386 		only if -u.
  387 v225   9/6/94	Rewrite undo_search again: toggle.
  388 v226   9/15/94	Configuration fixes.
  389 		(thanks to David MacKenzie)
  390 v227   9/19/94	Fixed strerror config problem.
  391 		Posted to prep.ai.mit.edu
  392 -----------------------------------------------------------------
  393 v228   9/21/94	Fix bug in signals: repeated calls to
  394 		get_editkeys overflowed st_edittable.
  395 v229   9/21/94	Fix "Nothing to search" error if -a
  396 		and SRCH_PAST_EOF.
  397 v230   9/21/94	Don't print extra error msg in search
  398 		after regerror().
  399 v231   9/22/94	Fix hilite bug if search matches 0 chars.
  400 		(thanks to John Polstra)
  401 v232   9/23/94	Deal with weird systems that have
  402 		termios.h but not tcgetattr().
  403 		Posted to prep.ai.mit.edu
  404 -----------------------------------------------------------------
  405 v233   9/26/94	Use get_term() instead of pos_init() in
  406 		psignals to re-get lower_left termcap.
  407 		(Thanks to John Malecki)
  408 v234   9/26/94	Make MIDDLE closer to middle of screen.
  409 v235   9/27/94	Use local strchr if system doesn't have.
  410 v236   9/28/94	Don't use libucb; use libterm if
  411 		libtermcap & libcurses doesn't work.
  412 		(Fix for Solaris; thanks to Frank Kaefer)
  413 v237   9/30/94	Use system isupper() etc if provided.
  414 		Posted to prep.ai.mit.edu
  415 -----------------------------------------------------------------
  416 v238   10/6/94	Make binary non-blinking if LESSBINFMT
  417 		is set to a string without a *.
  418 v239   10/7/94	Don't let delimit_word run back past
  419 		beginning of cmdbuf.
  420 v240   10/10/94	Don't write into termcap buffer.
  421 		(Thanks to Benoit Speckel)
  422 v241   10/13/94	New lesskey file format.
  423 		Don't expand filenames in search command.
  424 v242   10/14/94	Allow lesskey specification of "literal".
  425 v243   10/14/94	Add #stop command to lesskey.
  426 v244   10/16/94	Add -f flag to lesskey.
  427 v245   10/25/94	Allow TAB_COMPLETE_FILENAME to be undefd.
  428 v246   10/27/94	Move help file to /usr/local/share.
  429 v247   10/27/94	Add -V option.
  430 v248   11/5/94	Add -V option to lesskey.
  431 v249   11/5/94	Remove -f flag from lesskey; default
  432 		input file is ~/.lesskey.in, not stdin.
  433 v250   11/7/94	Lesskey input file "-" means stdin.
  434 v251   11/9/94	Convert cfgetospeed result to ospeed.
  435 		(Thanks to Andrew Chernov)
  436 v252   11/16/94	Change default lesskey input file from
  437 		.lesskey.in to .lesskey.
  438 		Posted to prep.ai.mit.edu
  439 -----------------------------------------------------------------
  440 v253   11/21/94	Fix bug when tags file has a backslash.
  441 v254   12/6/94	Fix -k option.
  442 v255   12/8/94	Add #define EXAMINE to disable :e etc.
  443 v256   12/10/94	Change highlighting: only highlite search
  444 		results (but now it is reliable).
  445 v257   12/10/94	Add goto_line and repaint_highlight
  446 		to optimize highlight repaints.
  447 v258   12/12/94	Fixup in hilite_line if BS_SPECIAL.
  448 v259   12/12/94	Convert to autoconf 2.0.
  449 v260   12/13/94	Add SECURE define.
  450 v261   12/14/94	Use system WERASE char as EC_W_BACKSPACE.
  451 v262   12/16/94	Add -g/-G flag and screen_hilite.
  452 v263   12/20/94	Reimplement/optimize -G flag behavior.
  453 v264   12/23/94	Allow EXTRA string after line-edit cmd
  454 		in lesskey file.
  455 v265   12/24/94	Add LESSOPEN=|cmd syntax.
  456 v266   12/26/94	Add -I flag.
  457 v267   12/28/94	Formalize the four-byte header emitted
  458 		by a LESSOPEN pipe.
  459 v268   12/28/94	Get rid of four-byte header.
  460 v269   1/2/95	Close alt file before open new one.
  461 		Avoids multiple popen().
  462 v270   1/3/95	Use VISUAL; use S_ISDIR/S_ISREG; fix
  463 		config problem with Solaris POSIX regcomp.
  464 v271   1/4/95	Don't quit on read error.
  465 v272   1/5/95	Get rid of -L.
  466 v273   1/6/95	Fix ch_ungetchar bug; don't call
  467 		LESSOPEN on a pipe.
  468 v274   1/6/95	Ported to OS/2 (thanks to Kai Uwe Rommel)
  469 v275   1/18/95	Fix bug if toggle -G at EOF.
  470 v276   1/30/95	Fix OS/2 version.
  471 v277   1/31/95	Add "next" charset; don't display ^X
  472 		for X > 128.
  473 v278   2/14/95	Change default for -G.
  474 		Posted to prep.ai.mit.edu
  475 -----------------------------------------------------------------
  476 v279   2/22/95	Add GNU options --help, --version.
  477 		Minor config fixes.
  478 v280   2/24/95	Clean up calls to glob(); don't set #
  479 		if we can't open the new file.
  480 v281   2/24/95	Repeat search should turn on hilites.
  481 v282   3/2/95	Minor fixes.
  482 v283   3/2/95	Fix homefile; make OS2 look in $HOME.
  483 v284   3/2/95	Error if "v" on LESSOPENed file;
  484 		"%" figures out file size on pipe.
  485 v285   3/7/95	Don't set # in lsystem;
  486 		lesskey try $HOME first.
  487 v286   3/7/95	Reformat change history (too much free time?).
  488 v287   3/8/95	Fix hilite bug if overstrike multiple chars.
  489 v288   3/8/95	Allow lesskey to override get_editkey keys.
  490 v289   3/9/95	Fix adj_hilite bug when line gets processed by
  491 		hilite_line more than once.
  492 v290   3/9/95	Make configure automatically.  Fix Sequent problem
  493 		with incompatible sigsetmask().
  494 		Posted to prep.ai.mit.edu
  495 -----------------------------------------------------------------
  496 v291   3/21/95	Add #env to lesskey.  Fix MS-DOS build.
  497 		Posted to simtel.
  498 -----------------------------------------------------------------
  499 v292   4/24/95	Add MS-DOS support for Borland C.
  500 		Fix arrow keys in MS-DOS versions.
  501 v293   4/28/95	Add auto-versioning stuff to make dist.
  502 v294   5/12/95	Fix Borland build.
  503 v295   1/20/96	Fix search on squished file; add /@@.
  504 v296   1/23/96	Allow cmdbuf larger than screen width.
  505 v297   1/24/96	Don't call termcap if tgetent fails;
  506 		add #defines for buffers.
  507 v298   1/24/96	Change @@ to ^K.
  508 		Add alternate search modifiers ^N, ^F, ^E.
  509 v299   1/25/96	Fix percent overflow in jump_percent (thanks to Brent Wiese);
  510 		don't send "ti" after shell command till RETURN pressed.
  511 v300   1/25/96	Change -U to print tabs as ^I.
  512 v301   1/30/96	Make hilites work in cmd F output.
  513 v302   1/31/96	Fix cmd F to notice window-change signals.
  514 v303   1/31/96	Add ESC-SPACE command.
  515 v304   2/1/96	Add ^R search modifier; add LESSSECURE.
  516 v305   2/2/96	Workaround Linux /proc kernel bug; add LESSKEY.
  517 v306   3/16/96	Minor fixes.
  518 v307   3/25/96	Allow cmd line arg "--"; fix DOS & OS/2 defines.h.
  519 v308   4/4/96	Port to OS-9 (thanks to Boisy Pitre); fix -d.
  520 v309   4/9/96	Fix OS-9 version; fix tags bug with "$".
  521 v310   4/10/96	Get rid of HELPFILE.
  522 v311   4/22/96	Add Windows32 support; merge doscreen.c into screen.c.
  523 v312   4/24/96	Don't quit after "cannot reopen" error.
  524 v313   4/25/96	Added horizontal scrolling.
  525 v314   4/26/96	Modified -e to quit on reaching end of a squished file.
  526 v315   4/26/96	Fix "!;TAB" bug.
  527 v316   5/2/96	Make "|a" when (a < curr screen) go to end of curr screen.
  528 v317   5/14/96	Various fixes for the MS-DOS and OS/2 builds.
  529 		Added ## and %% handling for filenames
  530 v318   5/29/96	Port to OS-9 Microware compiler; minor fixes
  531 		(thanks to Martin Gregorie).
  532 v319   7/8/96	Fix Windows port (thanks to Jeff Paquette).
  533 v320   7/11/96	Final fixes for Windows port.
  534 v321   7/18/96	Minor fixes.
  535 		Posted to Web page.
  536 -----------------------------------------------------------------
  537 v322   8/13/96	Fix bug in shell escape from help file; add support for
  538 		Microsoft Visual C under Windows; numerous small fixes.
  539 v323   8/19/96	Fixes for Windows version (thanks to Simon Munton);
  540 		fix for Linux library weirdness (thanks to Jim Diamond);
  541 		port to DJGPP (thanks to Eli Zaretskii).
  542 v324   8/21/96	Add support for spaces in filenames (thanks to Simon Munton).
  543 v325   8/21/96	Add lessecho, for spaces in filenames under Unix.
  544 v326   8/27/96	Fix DJGPP version.
  545 v327   9/1/96	Reorganize lglob, make spaces in filenames work better in Unix.
  546 v328   10/7/96	Append / to directory name in filename completion.
  547 		Fix MS-DOS and OS-9 versions.
  548 v329   10/11/96	Fix more MS-DOS bugs; add LESSSEPARATOR; add -" option.
  549 		Add LESSMETACHARS, LESSMETAESCAPE.
  550 v330   10/21/96	Minor fixes.
  551 		Posted to Web page.
  552 -----------------------------------------------------------------
  553 v331   4/22/97	Various Windows fixes (thanks to Gurusamy Sarathy).
  554 v332   4/22/97	Enter filenames from cmd line into edit history.
  555 		Posted to Web page.
  556 -----------------------------------------------------------------
  557 v333    3/4/99	Changed -w to highlite new line after forward movement.
  558 v334    3/9/99	Avoid overflowing prompt buffer; add %d and %D.
  559 v335   3/20/99	Add EBCDIC support (thanks to Thomas Dorner).
  560               	Use HOMEDRIVE/HOMEPATH on Windows (thanks to Preston Bannister).
  561 		Posted to Web page.
  562 -----------------------------------------------------------------
  563 v336    4/8/99	Fix installation bugs.
  564 v337    4/9/99	Fix another installation bug.
  565 		Posted to Web page.
  566 -----------------------------------------------------------------
  567 v338   4/13/99	Add support for long option names.
  568 v339   4/18/99	Add \k, long option names to lesskey.  Add -^P.  Add :d.
  569 v340   4/21/99	Add regexec2.  Fix Windows build.
  570 		Posted to Web page.
  571 -----------------------------------------------------------------
  572 v341    5/6/99  Add -F option; %c & ?c prompt escapes.
  573 		(Thanks to Michele Maltoni)
  574 v342   7/22/99  Add system-wide lesskey file; allow GPL or Less License.
  575 v343   9/23/99	Support UTF-8 (Thanks to Robert Brady).
  576 		Add %P and ?P in prompts.
  577 v344  10/27/99	-w highlights target line of g and p commands.
  578 v345  10/29/99	Make -R pass thru ESC but not other control chars.
  579 		Posted to Web page.
  580 -----------------------------------------------------------------
  581 v346   11/4/99  Fix bugs in long option processing; R cmd should clear hilites.
  582 		Posted to Web page.
  583 -----------------------------------------------------------------
  584 v347  12/13/99	Fixes for DJGPP version (thanks to Eli Zaretskii).
  585 v348  12/28/99	Fix deleting file with marks (thanks to Dimitar Jekov).
  586 		Fix color problem in DJGPP version (thanks to Eli Zaretskii).
  587 v349   1/24/00	Fix minor DJGPP bugs; check environment vars for UTF-8;
  588 		add --with-editor (thanks to Eli, Markus Kuhn, Thomas Schoepf).
  589 v350   3/1/00	Fix clear-while-standout bug.
  590 v351   3/5/00	Change -M and = prompts to show top & bottom line number.
  591 		Posted to Web page.
  592 -----------------------------------------------------------------
  593 v352   3/8/00	Fix scan_option NULL dereference.
  594 -----------------------------------------------------------------
  595 v353   3/20/00	Fix SECURE compile bug, allow space after numeric option.
  596 v354   3/23/00	Add support for PCRE; add --with-regex configure option.
  597 -----------------------------------------------------------------
  598 v355   6/28/00	Add -# option (thanks to Andy Levinson).
  599 v356   7/5/00	Add -J option.
  600 v357   7/6/00	Support sigprocmask.
  601 -----------------------------------------------------------------
  602 v358   7/8/00	Fix problems with #stop in lesskey file.
  603 		Posted to Web page.
  604 -----------------------------------------------------------------
  605 v359  9/10/00	Fixes for Win32 display problems (thanks to Maurizio Vairani).
  606 v360  1/17/01	Move sysless to etc.
  607 v361  12/4/01	Add IBM-1047 charset & EBCDIC fixes (thanks to Thomas Dorner).
  608 		Fix 32 bit dependencies (thanks to Paul Eggert).
  609 		Fix UTF-8 overstriking (thanks to Robert Brady).
  610 v362  12/4/01	Make status column show search targets.
  611 v363  12/6/01	Add --no-keypad option.
  612 		Add variable width tabstops (thanks to Peter Samuelson).
  613 v364 12/10/01	Better handling of very long lines in input;
  614 		Fix horizontal shifting of colored text.
  615 v365 12/11/01	Fix overstriking of tabs;
  616 		Add support for global(1) and multiple tag matches
  617 		(thanks to Shigio Yamaguchi and Tim Vanderhoek).
  618 v366 12/11/01	Fixes for OS/2 (thanks to Kyosuke Tokoro).
  619 v367 12/13/01	Allow -D and -x options to terminate without dollar sign;
  620 		Right/left arrow when entering N are shift cmds, not line edit.
  621 v368 12/18/01	Update lesskey commands.
  622 v370 12/23/01	Fix tags error messages.
  623 		Posted to Web page.
  624 -----------------------------------------------------------------
  625 v371 12/26/01	Fix new_file bug; use popen in Windows version;
  626 		fix some compiler warnings.
  627 v372 12/29/01	Make -b be in units of 1K.
  628 v373  1/14/02	Improve handling of filenames containing shell metachars.
  629 v374   2/7/02	Fix memory leak; fix bug in -x argument parsing.
  630 v375   4/7/02	Fix searching for SGR sequences; fix SECURE build;
  631 		add SGR support to DJGPP version (thanks to Eli Zaretskii).
  632 v376  6/10/02	Fix bug in overstriking mulitbyte UTF-8 characters
  633 		(thanks to Jungshik Shin).
  634 		Posted to Web page.
  635 -----------------------------------------------------------------
  636 v377  9/10/02	Fix bug in Windows version when file contains CR;
  637 		fix bug in search highlights with -R;
  638 		make initial buffer limit really be 64K not unlimited.
  639 v378  9/30/02	Misc bug fixes and compiler warning cleanup.
  640 		Posted to Web page.
  641 -----------------------------------------------------------------
  642 v379 11/23/02	Add -L option; fix bug with ctrl-K in lesskey files;
  643 		improve UTF-8 overstriking and underscore overstriking;
  644 		fix minor man page problems; change to autoconf 2.54.
  645 v380 11/24/02	Make LINENUM same as POSITION.
  646 v381 11/28/02	Make -N use 7 columns for line number if possible.
  647 -----------------------------------------------------------------
  648 v382   2/3/04	Remove copyrighted code.
  649 -----------------------------------------------------------------
  650 v383  2/16/04	Add history file; add -K option; improve UTF-8 handling;
  651 		fix some signed char bugs (thanks to Christian Biere);
  652 		fix some upper/lower case bugs (thanks to Bjoern Jacke);
  653 		add erase2 char (thanks to David Lawrence);
  654 		add windows charset (thanks to Dimitar Zhekov).
  655 v384  2/20/04	Improvements in UTF-8 handling.
  656 v385  2/23/04	Fix UTF-8 output bug.
  657 -----------------------------------------------------------------
  658 v386  9/13/05	Improvements to UTF-8 shift & color (thanks to Charles Levert);
  659 		protect against invalid LESSOPEN and LESSCLOSE values.
  660 v387  9/14/05	Update Charles Levert's UTF-8 patch.
  661 v388  9/14/05	Change history behavior; change most sprintf calls to snprintf.
  662 v389  9/14/05	Fix copy & paste with long lines; improve performance of
  663 		expand_linebuf; fix crash in init_mlist;
  664 v390  9/15/05	Show search matches in status column even if -G is set.
  665 -----------------------------------------------------------------
  666 v391  9/17/05	Fix bugs.
  667 v392  10/14/05	Fix line wrapping bug.
  668 v393  10/19/05	Allow multiple attributes per char; fix bold+underline bug
  669 		(thanks again to Charles Levert).
  670 v394  11/8/05	Fix prompt bug; fix compile problem in Windows build.
  671 -----------------------------------------------------------------
  672 v395  1/12/07	Update Unicode tables (thanks to Charles Levert);
  673 		don't chmod if LESSHISTFILE = /dev/null;
  674 		make -f work for directories; support DESTDIR in Makefile;
  675 		fix sigset_t detection in configure;
  676 		make "t" cmd traverse tags in correct order
  677 v396  1/13/07	Add compatibility with POSIX more.
  678 v397  3/21/07	Allow decimal point in number for % command;
  679 		Allow decimal point in number for -j option;
  680 		Allow n command to fetch last search pattern from history
  681 		(thanks to arno).
  682 v398  3/22/07	Don't rewrite history file if not necessary;
  683 		fix bug when filenames contain "$".
  684 v399  3/22/07	Don't move to bottom of screen at startup;
  685 		don't output extraneous newlines.
  686 v400  3/23/07	Allow search to find pattern after null byte (PCRE and no-regex)
  687 		(thanks to Michael Constant).
  688 -----------------------------------------------------------------
  689 v401  3/24/07	Minor documentation fixes.
  690 v402  3/30/07	Fix autoconf bug when memcpy etc are inline;
  691 		fix bug in terminating number following -j option.
  692 v403  5/25/07	Fix Windows build.
  693 v404  6/5/07	Fix display bug with F command and long lines.
  694 v405  6/17/07	Fix display bug when using -w option.
  695 v406  6/17/07	Fix secure build.
  696 v407  8/16/07	Fix bugs; support CSI chars.
  697 v408  10/1/07	Fix bug in -i with non-ASCII chars.
  698 v409  10/12/07	Fix crash when viewing text with invalid UTF-8 sequences.
  699 v411  11/6/07	Fix case-insensitive searching with non-ASCII text.
  700 v412  11/6/07	Use symbolic SEEK constants.
  701 v413  11/6/07	Fix search highlight bug with non-ASCII text.
  702 v414  11/6/07	Fix display bug with no-wrap terminals.
  703 v415  11/14/07	Add --follow-name option.
  704 v416  11/22/07	Fix crash when searching text with invalid UTF-8 sequences.
  705 v417  12/31/07	Don't support single-char CSI in UTF-8 mode;
  706 		fix bug with -R and invalid CSI sequences;
  707 		fix bug searching text with SGR sequences with -r;
  708 		emulate SGR sequences in WIN32 build.
  709 v418  12/31/07	Clean up.
  710 -----------------------------------------------------------------
  711 v419  1/16/08	Make CSI char 0x9B work in UTF-8 mode (thanks to Colin Watson).
  712 v420  2/24/08	Add & command; fix -F option; fix '' after G.
  713 v421  2/24/08	Ignore filtered lines when searching.
  714 v422  3/2/08	Output CR at startup.
  715 v423  5/27/08	Clean up.
  716 v424  6/16/08	Fix compile bug with pcre; don't filter help file.
  717 */
  718 
  719 char version[] = "424";