"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";