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