subsearch.lt revision 1.1 1 !lesstest!
2 !version 1
3 !created 2023-05-31 23:18:59
4 E "LESS_TERMCAP_am" "1"
5 E "LESS_TERMCAP_cd" "S"
6 E "LESS_TERMCAP_ce" "L"
7 E "LESS_TERMCAP_cl" "A"
8 E "LESS_TERMCAP_cr" "<"
9 E "LESS_TERMCAP_cm" "%p2%d;%p1%dj"
10 E "LESS_TERMCAP_ho" "h"
11 E "LESS_TERMCAP_ll" "l"
12 E "LESS_TERMCAP_mb" "b"
13 E "LESS_TERMCAP_md" "[1m"
14 E "LESS_TERMCAP_me" "[m"
15 E "LESS_TERMCAP_se" "[m"
16 E "LESS_TERMCAP_so" "[7m"
17 E "LESS_TERMCAP_sr" "r"
18 E "LESS_TERMCAP_ue" "[24m"
19 E "LESS_TERMCAP_us" "[4m"
20 E "LESS_TERMCAP_vb" "g"
21 E "LESS_TERMCAP_kr" "OC"
22 E "LESS_TERMCAP_kl" "OD"
23 E "LESS_TERMCAP_ku" "OA"
24 E "LESS_TERMCAP_kd" "OB"
25 E "LESS_TERMCAP_kh" "OH"
26 E "LESS_TERMCAP_@7" "OF"
27 E "COLUMNS" "95"
28 E "LINES" "34"
29 E "LANG" "C"
30 T "subsearch"
31 A "subsearch"
32 F "subsearch" 65115
33 /*
34 * Copyright (C) 1984-2023 Mark Nudelman
35 *
36 * You may distribute under the terms of either the GNU General Public
37 * License or the Less License, as specified in the README file.
38 *
39 * For more information, see the README file.
40 */
41
42
43 /*
44 * Routines which deal with the characteristics of the terminal.
45 * Uses termcap to be as terminal-independent as possible.
46 */
47
48 #include "less.h"
49 #include "cmd.h"
50
51 #if MSDOS_COMPILER
52 #include "pckeys.h"
53 #if MSDOS_COMPILER==MSOFTC
54 #include <graph.h>
55 #else
56 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
57 #include <conio.h>
58 #if MSDOS_COMPILER==DJGPPC
59 #include <pc.h>
60 extern int fd0;
61 #endif
62 #else
63 #if MSDOS_COMPILER==WIN32C
64 #include <windows.h>
65 #endif
66 #endif
67 #endif
68 #include <time.h>
69
70 #ifndef FOREGROUND_BLUE
71 #define FOREGROUND_BLUE 0x0001
72 #endif
73 #ifndef FOREGROUND_GREEN
74 #define FOREGROUND_GREEN 0x0002
75 #endif
76 #ifndef FOREGROUND_RED
77 #define FOREGROUND_RED 0x0004
78 #endif
79 #ifndef FOREGROUND_INTENSITY
80 #define FOREGROUND_INTENSITY 0x0008
81 #endif
82
83 #else
84
85 #if HAVE_SYS_IOCTL_H
86 #include <sys/ioctl.h>
87 #endif
88
89 #if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS
90 #include <termios.h>
91 #else
92 #if HAVE_TERMIO_H
93 #include <termio.h>
94 #else
95 #if HAVE_SGSTAT_H
96 #include <sgstat.h>
97 #else
98 #include <sgtty.h>
99 #endif
100 #endif
101 #endif
102
103 #if HAVE_NCURSESW_TERMCAP_H
104 #include <ncursesw/termcap.h>
105 #else
106 #if HAVE_NCURSES_TERMCAP_H
107 #include <ncurses/termcap.h>
108 #else
109 #if HAVE_TERMCAP_H
110 #include <termcap.h>
111 #endif
112 #endif
113 #endif
114 #ifdef _OSK
115 #include <signal.h>
116 #endif
117 #if OS2
118 #include <sys/signal.h>
119 #include "pckeys.h"
120 #endif
121 #if HAVE_SYS_STREAM_H
122 #include <sys/stream.h>
123 #endif
124 #if HAVE_SYS_PTEM_H
125 #include <sys/ptem.h>
126 #endif
127
128 #endif /* MSDOS_COMPILER */
129
130 /*
131 * Check for broken termios package that forces you to manually
132 * set the line discipline.
133 */
134 #ifdef __ultrix__
135 #define MUST_SET_LINE_DISCIPLINE 1
136 #else
137 #define MUST_SET_LINE_DISCIPLINE 0
138 #endif
139
140 #if OS2
141 #define DEFAULT_TERM "ansi"
142 static char *windowid;
143 #else
144 #define DEFAULT_TERM "unknown"
145 #endif
146
147 #if MSDOS_COMPILER==MSOFTC
148 static int videopages;
149 static long msec_loops;
150 static int flash_created = 0;
151 #define SET_FG_COLOR(fg) _settextcolor(fg)
152 #define SET_BG_COLOR(bg) _setbkcolor(bg)
153 #define SETCOLORS(fg,bg) { SET_FG_COLOR(fg); SET_BG_COLOR(bg); }
154 #endif
155
156 #if MSDOS_COMPILER==BORLANDC
157 static unsigned short *whitescreen;
158 static int flash_created = 0;
159 #endif
160 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
161 #define _settextposition(y,x) gotoxy(x,y)
162 #define _clearscreen(m) clrscr()
163 #define _outtext(s) cputs(s)
164 #define SET_FG_COLOR(fg) textcolor(fg)
165 #define SET_BG_COLOR(bg) textbackground(bg)
166 #define SETCOLORS(fg,bg) { SET_FG_COLOR(fg); SET_BG_COLOR(bg); }
167 extern int sc_height;
168 #endif
169
170 #if MSDOS_COMPILER==WIN32C
171 #define UTF8_MAX_LENGTH 4
172 struct keyRecord
173 {
174 WCHAR unicode;
175 int ascii;
176 int scan;
177 } currentKey;
178
179 static int keyCount = 0;
180 static WORD curr_attr;
181 static int pending_scancode = 0;
182 static char x11mousebuf[] = "[M???"; /* Mouse report, after ESC */
183 static int x11mousePos, x11mouseCount;
184
185 static HANDLE con_out_save = INVALID_HANDLE_VALUE; /* previous console */
186 static HANDLE con_out_ours = INVALID_HANDLE_VALUE; /* our own */
187 HANDLE con_out = INVALID_HANDLE_VALUE; /* current console */
188
189 extern int utf_mode;
190 extern int quitting;
191 static void win32_init_term();
192 static void win32_deinit_term();
193
194 #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
195 #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 4
196 #endif
197
198 #define FG_COLORS (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)
199 #define BG_COLORS (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY)
200 #define MAKEATTR(fg,bg) ((WORD)((fg)|((bg)<<4)))
201 #define APPLY_COLORS() { if (SetConsoleTextAttribute(con_out, curr_attr) == 0) \
202 error("SETCOLORS failed", NULL_PARG); }
203 #define SET_FG_COLOR(fg) { curr_attr |= (fg); APPLY_COLORS(); }
204 #define SET_BG_COLOR(bg) { curr_attr |= ((bg)<<4); APPLY_COLORS(); }
205 #define SETCOLORS(fg,bg) { curr_attr = MAKEATTR(fg,bg); APPLY_COLORS(); }
206 #endif
207
208 #if MSDOS_COMPILER
209 public int nm_fg_color; /* Color of normal text */
210 public int nm_bg_color;
211 public int bo_fg_color; /* Color of bold text */
212 public int bo_bg_color;
213 public int ul_fg_color; /* Color of underlined text */
214 public int ul_bg_color;
215 public int so_fg_color; /* Color of standout text */
216 public int so_bg_color;
217 public int bl_fg_color; /* Color of blinking text */
218 public int bl_bg_color;
219 static int sy_fg_color; /* Color of system text (before less) */
220 static int sy_bg_color;
221 public int sgr_mode; /* Honor ANSI sequences rather than using above */
222 #if MSDOS_COMPILER==WIN32C
223 static DWORD init_output_mode; /* The initial console output mode */
224 public int vt_enabled = -1; /* Is virtual terminal processing available? */
225 #endif
226 #else
227
228 /*
229 * Strings passed to tputs() to do various terminal functions.
230 */
231 static char
232 *sc_pad, /* Pad string */
233 *sc_home, /* Cursor home */
234 *sc_addline, /* Add line, scroll down following lines */
235 *sc_lower_left, /* Cursor to last line, first column */
236 *sc_return, /* Cursor to beginning of current line */
237 *sc_move, /* General cursor positioning */
238 *sc_clear, /* Clear screen */
239 *sc_eol_clear, /* Clear to end of line */
240 *sc_eos_clear, /* Clear to end of screen */
241 *sc_s_in, /* Enter standout (highlighted) mode */
242 *sc_s_out, /* Exit standout mode */
243 *sc_u_in, /* Enter underline mode */
244 *sc_u_out, /* Exit underline mode */
245 *sc_b_in, /* Enter bold mode */
246 *sc_b_out, /* Exit bold mode */
247 *sc_bl_in, /* Enter blink mode */
248 *sc_bl_out, /* Exit blink mode */
249 *sc_visual_bell, /* Visual bell (flash screen) sequence */
250 *sc_backspace, /* Backspace cursor */
251 *sc_s_keypad, /* Start keypad mode */
252 *sc_e_keypad, /* End keypad mode */
253 *sc_s_mousecap, /* Start mouse capture mode */
254 *sc_e_mousecap, /* End mouse capture mode */
255 *sc_init, /* Startup terminal initialization */
256 *sc_deinit; /* Exit terminal de-initialization */
257
258 static int attrcolor = -1;
259 #endif
260
261 static int init_done = 0;
262
263 public int auto_wrap; /* Terminal does \r\n when write past margin */
264 public int ignaw; /* Terminal ignores \n immediately after wrap */
265 public int erase_char; /* The user's erase char */
266 public int erase2_char; /* The user's other erase char */
267 public int kill_char; /* The user's line-kill char */
268 public int werase_char; /* The user's word-erase char */
269 public int sc_width, sc_height; /* Height & width of screen */
270 public int bo_s_width, bo_e_width; /* Printing width of boldface seq */
271 public int ul_s_width, ul_e_width; /* Printing width of underline seq */
272 public int so_s_width, so_e_width; /* Printing width of standout seq */
273 public int bl_s_width, bl_e_width; /* Printing width of blink seq */
274 public int above_mem, below_mem; /* Memory retained above/below screen */
275 public int can_goto_line; /* Can move cursor to any line */
276 public int clear_bg; /* Clear fills with background color */
277 public int missing_cap = 0; /* Some capability is missing */
278 public char *kent = NULL; /* Keypad ENTER sequence */
279 public int term_init_done = FALSE;
280 public int full_screen = TRUE;
281
282 static int attrmode = AT_NORMAL;
283 static int termcap_debug = -1;
284 static int no_alt_screen; /* sc_init does not switch to alt screen */
285 extern int binattr;
286 extern int one_screen;
287 #if LESSTEST
288 extern char *ttyin_name;
289 #endif /*LESSTEST*/
290
291 #if !MSDOS_COMPILER
292 static char *cheaper(char *t1, char *t2, char *def);
293 static void tmodes(char *incap, char *outcap, char **instr,
294 char **outstr, char *def_instr, char *def_outstr, char **spp);
295 #endif
296
297 /*
298 * These two variables are sometimes defined in,
299 * and needed by, the termcap library.
300 */
301 #if MUST_DEFINE_OSPEED
302 extern short ospeed; /* Terminal output baud rate */
303 extern char PC; /* Pad character */
304 #endif
305 #ifdef _OSK
306 short ospeed;
307 char PC_, *UP, *BC;
308 #endif
309
310 extern int quiet; /* If VERY_QUIET, use visual bell for bell */
311 extern int no_vbell;
312 extern int no_back_scroll;
313 extern int swindow;
314 extern int no_init;
315 extern int no_keypad;
316 extern int sigs;
317 extern int wscroll;
318 extern int screen_trashed;
319 extern int top_scroll;
320 extern int quit_if_one_screen;
321 extern int oldbot;
322 extern int mousecap;
323 extern int is_tty;
324 extern int use_color;
325 #if HILITE_SEARCH
326 extern int hilite_search;
327 #endif
328 #if MSDOS_COMPILER==WIN32C
329 extern HANDLE tty;
330 extern DWORD console_mode;
331 #ifndef ENABLE_EXTENDED_FLAGS
332 #define ENABLE_EXTENDED_FLAGS 0x80
333 #define ENABLE_QUICK_EDIT_MODE 0x40
334 #endif
335 #else
336 extern int tty;
337 #endif
338
339 #if (HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS) || defined(TCGETA)
340 /*
341 * Set termio flags for use by less.
342 */
343 static void set_termio_flags(
344 #if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS
345 struct termios *s
346 #else
347 struct termio *s
348 #endif
349 )
350 {
351 s->c_lflag &= ~(0
352 #ifdef ICANON
353 | ICANON
354 #endif
355 #ifdef ECHO
356 | ECHO
357 #endif
358 #ifdef ECHOE
359 | ECHOE
360 #endif
361 #ifdef ECHOK
362 | ECHOK
363 #endif
364 #if ECHONL
365 | ECHONL
366 #endif
367 );
368
369 s->c_oflag |= (0
370 #ifdef OXTABS
371 | OXTABS
372 #else
373 #ifdef TAB3
374 | TAB3
375 #else
376 #ifdef XTABS
377 | XTABS
378 #endif
379 #endif
380 #endif
381 #ifdef OPOST
382 | OPOST
383 #endif
384 #ifdef ONLCR
385 | ONLCR
386 #endif
387 );
388
389 s->c_oflag &= ~(0
390 #ifdef ONOEOT
391 | ONOEOT
392 #endif
393 #ifdef OCRNL
394 | OCRNL
395 #endif
396 #ifdef ONOCR
397 | ONOCR
398 #endif
399 #ifdef ONLRET
400 | ONLRET
401 #endif
402 );
403 }
404 #endif
405
406 /*
407 * Change terminal to "raw mode", or restore to "normal" mode.
408 * "Raw mode" means
409 * 1. An outstanding read will complete on receipt of a single keystroke.
410 * 2. Input is not echoed.
411 * 3. On output, \n is mapped to \r\n.
412 * 4. \t is NOT expanded into spaces.
413 * 5. Signal-causing characters such as ctrl-C (interrupt),
414 * etc. are NOT disabled.
415 * It doesn't matter whether an input \n is mapped to \r, or vice versa.
416 */
417 public void raw_mode(int on)
418 {
419 static int curr_on = 0;
420
421 if (on == curr_on)
422 return;
423 erase2_char = '\b'; /* in case OS doesn't know about erase2 */
424 #if LESSTEST
425 if (ttyin_name != NULL)
426 {
427 /* {{ For consistent conditions when running tests. }} */
428 erase_char = '\b';
429 kill_char = CONTROL('U');
430 werase_char = CONTROL('W');
431 } else
432 #endif /*LESSTEST*/
433 #if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS
434 {
435 struct termios s;
436 static struct termios save_term;
437 static int saved_term = 0;
438
439 if (on)
440 {
441 /*
442 * Get terminal modes.
443 */
444 if (tcgetattr(tty, &s) < 0)
445 {
446 erase_char = '\b';
447 kill_char = CONTROL('U');
448 werase_char = CONTROL('W');
449 } else
450 {
451 /*
452 * Save modes and set certain variables dependent on modes.
453 */
454 if (!saved_term)
455 {
456 save_term = s;
457 saved_term = 1;
458 }
459 #if HAVE_OSPEED
460 switch (cfgetospeed(&s))
461 {
462 #ifdef B0
463 case B0: ospeed = 0; break;
464 #endif
465 #ifdef B50
466 case B50: ospeed = 1; break;
467 #endif
468 #ifdef B75
469 case B75: ospeed = 2; break;
470 #endif
471 #ifdef B110
472 case B110: ospeed = 3; break;
473 #endif
474 #ifdef B134
475 case B134: ospeed = 4; break;
476 #endif
477 #ifdef B150
478 case B150: ospeed = 5; break;
479 #endif
480 #ifdef B200
481 case B200: ospeed = 6; break;
482 #endif
483 #ifdef B300
484 case B300: ospeed = 7; break;
485 #endif
486 #ifdef B600
487 case B600: ospeed = 8; break;
488 #endif
489 #ifdef B1200
490 case B1200: ospeed = 9; break;
491 #endif
492 #ifdef B1800
493 case B1800: ospeed = 10; break;
494 #endif
495 #ifdef B2400
496 case B2400: ospeed = 11; break;
497 #endif
498 #ifdef B4800
499 case B4800: ospeed = 12; break;
500 #endif
501 #ifdef B9600
502 case B9600: ospeed = 13; break;
503 #endif
504 #ifdef EXTA
505 case EXTA: ospeed = 14; break;
506 #endif
507 #ifdef EXTB
508 case EXTB: ospeed = 15; break;
509 #endif
510 #ifdef B57600
511 case B57600: ospeed = 16; break;
512 #endif
513 #ifdef B115200
514 case B115200: ospeed = 17; break;
515 #endif
516 default: ;
517 }
518 #endif
519 erase_char = s.c_cc[VERASE];
520 #ifdef VERASE2
521 erase2_char = s.c_cc[VERASE2];
522 #endif
523 kill_char = s.c_cc[VKILL];
524 #ifdef VWERASE
525 werase_char = s.c_cc[VWERASE];
526 #else
527 werase_char = CONTROL('W');
528 #endif
529
530 /*
531 * Set the modes to the way we want them.
532 */
533 set_termio_flags(&s);
534 s.c_cc[VMIN] = 1;
535 s.c_cc[VTIME] = 0;
536 #ifdef VLNEXT
537 s.c_cc[VLNEXT] = 0;
538 #endif
539 #ifdef VDSUSP
540 s.c_cc[VDSUSP] = 0;
541 #endif
542 #ifdef VSTOP
543 s.c_cc[VSTOP] = 0;
544 #endif
545 #ifdef VSTART
546 s.c_cc[VSTART] = 0;
547 #endif
548 #if MUST_SET_LINE_DISCIPLINE
549 /*
550 * System's termios is broken; need to explicitly
551 * request TERMIODISC line discipline.
552 */
553 s.c_line = TERMIODISC;
554 #endif
555 }
556 } else
557 {
558 /*
559 * Restore saved modes.
560 */
561 s = save_term;
562 }
563 #if HAVE_FSYNC
564 fsync(tty);
565 #endif
566 tcsetattr(tty, TCSADRAIN, &s);
567 #if MUST_SET_LINE_DISCIPLINE
568 if (!on)
569 {
570 /*
571 * Broken termios *ignores* any line discipline
572 * except TERMIODISC. A different old line discipline
573 * is therefore not restored, yet. Restore the old
574 * line discipline by hand.
575 */
576 ioctl(tty, TIOCSETD, &save_term.c_line);
577 }
578 #endif
579 }
580 #else
581 #ifdef TCGETA
582 {
583 struct termio s;
584 static struct termio save_term;
585 static int saved_term = 0;
586
587 if (on)
588 {
589 /*
590 * Get terminal modes.
591 */
592 ioctl(tty, TCGETA, &s);
593
594 /*
595 * Save modes and set certain variables dependent on modes.
596 */
597 if (!saved_term)
598 {
599 save_term = s;
600 saved_term = 1;
601 }
602 #if HAVE_OSPEED
603 ospeed = s.c_cflag & CBAUD;
604 #endif
605 erase_char = s.c_cc[VERASE];
606 kill_char = s.c_cc[VKILL];
607 #ifdef VWERASE
608 werase_char = s.c_cc[VWERASE];
609 #else
610 werase_char = CONTROL('W');
611 #endif
612
613 /*
614 * Set the modes to the way we want them.
615 */
616 set_termio_flags(&s);
617 s.c_cc[VMIN] = 1;
618 s.c_cc[VTIME] = 0;
619 #ifdef VSTOP
620 s.c_cc[VSTOP] = 0;
621 #endif
622 #ifdef VSTART
623 s.c_cc[VSTART] = 0;
624 #endif
625 } else
626 {
627 /*
628 * Restore saved modes.
629 */
630 s = save_term;
631 }
632 ioctl(tty, TCSETAW, &s);
633 }
634 #else
635 #ifdef TIOCGETP
636 {
637 struct sgttyb s;
638 static struct sgttyb save_term;
639 static int saved_term = 0;
640
641 if (on)
642 {
643 /*
644 * Get terminal modes.
645 */
646 ioctl(tty, TIOCGETP, &s);
647
648 /*
649 * Save modes and set certain variables dependent on modes.
650 */
651 if (!saved_term)
652 {
653 save_term = s;
654 saved_term = 1;
655 }
656 #if HAVE_OSPEED
657 ospeed = s.sg_ospeed;
658 #endif
659 erase_char = s.sg_erase;
660 kill_char = s.sg_kill;
661 werase_char = CONTROL('W');
662
663 /*
664 * Set the modes to the way we want them.
665 */
666 s.sg_flags |= CBREAK;
667 s.sg_flags &= ~(ECHO|XTABS);
668 } else
669 {
670 /*
671 * Restore saved modes.
672 */
673 s = save_term;
674 }
675 ioctl(tty, TIOCSETN, &s);
676 }
677 #else
678 #ifdef _OSK
679 {
680 struct sgbuf s;
681 static struct sgbuf save_term;
682 static int saved_term = 0;
683
684 if (on)
685 {
686 /*
687 * Get terminal modes.
688 */
689 _gs_opt(tty, &s);
690
691 /*
692 * Save modes and set certain variables dependent on modes.
693 */
694 if (!saved_term)
695 {
696 save_term = s;
697 saved_term = 1;
698 }
699 erase_char = s.sg_bspch;
700 kill_char = s.sg_dlnch;
701 werase_char = CONTROL('W');
702
703 /*
704 * Set the modes to the way we want them.
705 */
706 s.sg_echo = 0;
707 s.sg_eofch = 0;
708 s.sg_pause = 0;
709 s.sg_psch = 0;
710 } else
711 {
712 /*
713 * Restore saved modes.
714 */
715 s = save_term;
716 }
717 _ss_opt(tty, &s);
718 }
719 #else
720 /* MS-DOS, Windows, or OS2 */
721 #if OS2
722 /* OS2 */
723 LSIGNAL(SIGINT, SIG_IGN);
724 #endif
725 erase_char = '\b';
726 #if MSDOS_COMPILER==DJGPPC
727 kill_char = CONTROL('U');
728 /*
729 * So that when we shell out or run another program, its
730 * stdin is in cooked mode. We do not switch stdin to binary
731 * mode if fd0 is zero, since that means we were called before
732 * tty was reopened in open_getchr, in which case we would be
733 * changing the original stdin device outside less.
734 */
735 if (fd0 != 0)
736 setmode(0, on ? O_BINARY : O_TEXT);
737 #else
738 kill_char = ESC;
739 #endif
740 werase_char = CONTROL('W');
741 #endif
742 #endif
743 #endif
744 #endif
745 curr_on = on;
746 }
747
748 #if !MSDOS_COMPILER
749 /*
750 * Some glue to prevent calling termcap functions if tgetent() failed.
751 */
752 static int hardcopy;
753
754 static char * ltget_env(char *capname)
755 {
756 char name[64];
757
758 if (termcap_debug)
759 {
760 struct env { struct env *next; char *name; char *value; };
761 static struct env *envs = NULL;
762 struct env *p;
763 for (p = envs; p != NULL; p = p->next)
764 if (strcmp(p->name, capname) == 0)
765 return p->value;
766 p = (struct env *) ecalloc(1, sizeof(struct env));
767 p->name = save(capname);
768 p->value = (char *) ecalloc(strlen(capname)+3, sizeof(char));
769 sprintf(p->value, "<%s>", capname);
770 p->next = envs;
771 envs = p;
772 return p->value;
773 }
774 SNPRINTF1(name, sizeof(name), "LESS_TERMCAP_%s", capname);
775 return (lgetenv(name));
776 }
777
778 static int ltgetflag(char *capname)
779 {
780 char *s;
781
782 if ((s = ltget_env(capname)) != NULL)
783 return (*s != '\0' && *s != '0');
784 if (hardcopy)
785 return (0);
786 return (tgetflag(capname));
787 }
788
789 static int ltgetnum(char *capname)
790 {
791 char *s;
792
793 if ((s = ltget_env(capname)) != NULL)
794 return (atoi(s));
795 if (hardcopy)
796 return (-1);
797 return (tgetnum(capname));
798 }
799
800 static char * ltgetstr(char *capname, char **pp)
801 {
802 char *s;
803
804 if ((s = ltget_env(capname)) != NULL)
805 return (s);
806 if (hardcopy)
807 return (NULL);
808 return (tgetstr(capname, pp));
809 }
810 #endif /* MSDOS_COMPILER */
811
812 /*
813 * Get size of the output screen.
814 */
815 public void scrsize(void)
816 {
817 char *s;
818 int sys_height;
819 int sys_width;
820 #if !MSDOS_COMPILER
821 int n;
822 #endif
823
824 #define DEF_SC_WIDTH 80
825 #if MSDOS_COMPILER
826 #define DEF_SC_HEIGHT 25
827 #else
828 #define DEF_SC_HEIGHT 24
829 #endif
830
831
832 sys_width = sys_height = 0;
833
834 #if LESSTEST
835 if (ttyin_name != NULL)
836 #endif /*LESSTEST*/
837 {
838 #if MSDOS_COMPILER==MSOFTC
839 {
840 struct videoconfig w;
841 _getvideoconfig(&w);
842 sys_height = w.numtextrows;
843 sys_width = w.numtextcols;
844 }
845 #else
846 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
847 {
848 struct text_info w;
849 gettextinfo(&w);
850 sys_height = w.screenheight;
851 sys_width = w.screenwidth;
852 }
853 #else
854 #if MSDOS_COMPILER==WIN32C
855 {
856 CONSOLE_SCREEN_BUFFER_INFO scr;
857 GetConsoleScreenBufferInfo(con_out, &scr);
858 sys_height = scr.srWindow.Bottom - scr.srWindow.Top + 1;
859 sys_width = scr.srWindow.Right - scr.srWindow.Left + 1;
860 }
861 #else
862 #if OS2
863 {
864 int s[2];
865 _scrsize(s);
866 sys_width = s[0];
867 sys_height = s[1];
868 /*
869 * When using terminal emulators for XFree86/OS2, the
870 * _scrsize function does not work well.
871 * Call the scrsize.exe program to get the window size.
872 */
873 windowid = getenv("WINDOWID");
874 if (windowid != NULL)
875 {
876 FILE *fd = popen("scrsize", "rt");
877 if (fd != NULL)
878 {
879 int w, h;
880 fscanf(fd, "%i %i", &w, &h);
881 if (w > 0 && h > 0)
882 {
883 sys_width = w;
884 sys_height = h;
885 }
886 pclose(fd);
887 }
888 }
889 }
890 #else
891 #ifdef TIOCGWINSZ
892 {
893 struct winsize w;
894 if (ioctl(2, TIOCGWINSZ, &w) == 0)
895 {
896 if (w.ws_row > 0)
897 sys_height = w.ws_row;
898 if (w.ws_col > 0)
899 sys_width = w.ws_col;
900 }
901 }
902 #else
903 #ifdef WIOCGETD
904 {
905 struct uwdata w;
906 if (ioctl(2, WIOCGETD, &w) == 0)
907 {
908 if (w.uw_height > 0)
909 sys_height = w.uw_height / w.uw_vs;
910 if (w.uw_width > 0)
911 sys_width = w.uw_width / w.uw_hs;
912 }
913 }
914 #endif
915 #endif
916 #endif
917 #endif
918 #endif
919 #endif
920 }
921
922 if (sys_height > 0)
923 sc_height = sys_height;
924 else if ((s = lgetenv("LINES")) != NULL)
925 sc_height = atoi(s);
926 #if !MSDOS_COMPILER
927 else if ((n = ltgetnum("li")) > 0)
928 sc_height = n;
929 #endif
930 if ((s = lgetenv("LESS_LINES")) != NULL)
931 {
932 int height = atoi(s);
933 sc_height = (height < 0) ? sc_height + height : height;
934 full_screen = FALSE;
935 }
936 if (sc_height <= 0)
937 sc_height = DEF_SC_HEIGHT;
938
939 if (sys_width > 0)
940 sc_width = sys_width;
941 else if ((s = lgetenv("COLUMNS")) != NULL)
942 sc_width = atoi(s);
943 #if !MSDOS_COMPILER
944 else if ((n = ltgetnum("co")) > 0)
945 sc_width = n;
946 #endif
947 if ((s = lgetenv("LESS_COLUMNS")) != NULL)
948 {
949 int width = atoi(s);
950 sc_width = (width < 0) ? sc_width + width : width;
951 }
952 if (sc_width <= 0)
953 sc_width = DEF_SC_WIDTH;
954 }
955
956 #if MSDOS_COMPILER==MSOFTC
957 /*
958 * Figure out how many empty loops it takes to delay a millisecond.
959 */
960 static void get_clock(void)
961 {
962 clock_t start;
963
964 /*
965 * Get synchronized at the start of a tick.
966 */
967 start = clock();
968 while (clock() == start)
969 ;
970 /*
971 * Now count loops till the next tick.
972 */
973 start = clock();
974 msec_loops = 0;
975 while (clock() == start)
976 msec_loops++;
977 /*
978 * Convert from (loops per clock) to (loops per millisecond).
979 */
980 msec_loops *= CLOCKS_PER_SEC;
981 msec_loops /= 1000;
982 }
983
984 /*
985 * Delay for a specified number of milliseconds.
986 */
987 static void delay(int msec)
988 {
989 long i;
990
991 while (msec-- > 0)
992 {
993 for (i = 0; i < msec_loops; i++)
994 (void) clock();
995 }
996 }
997 #endif
998
999 /*
1000 * Return the characters actually input by a "special" key.
1001 */
1002 public char * special_key_str(int key)
1003 {
1004 static char tbuf[40];
1005 char *s;
1006 #if MSDOS_COMPILER || OS2
1007 static char k_right[] = { '\340', PCK_RIGHT, 0 };
1008 static char k_left[] = { '\340', PCK_LEFT, 0 };
1009 static char k_ctl_right[] = { '\340', PCK_CTL_RIGHT, 0 };
1010 static char k_ctl_left[] = { '\340', PCK_CTL_LEFT, 0 };
1011 static char k_insert[] = { '\340', PCK_INSERT, 0 };
1012 static char k_delete[] = { '\340', PCK_DELETE, 0 };
1013 static char k_ctl_delete[] = { '\340', PCK_CTL_DELETE, 0 };
1014 static char k_ctl_backspace[] = { '\177', 0 };
1015 static char k_backspace[] = { '\b', 0 };
1016 static char k_home[] = { '\340', PCK_HOME, 0 };
1017 static char k_end[] = { '\340', PCK_END, 0 };
1018 static char k_up[] = { '\340', PCK_UP, 0 };
1019 static char k_down[] = { '\340', PCK_DOWN, 0 };
1020 static char k_backtab[] = { '\340', PCK_SHIFT_TAB, 0 };
1021 static char k_pagedown[] = { '\340', PCK_PAGEDOWN, 0 };
1022 static char k_pageup[] = { '\340', PCK_PAGEUP, 0 };
1023 static char k_f1[] = { '\340', PCK_F1, 0 };
1024 #endif
1025 #if !MSDOS_COMPILER
1026 char *sp = tbuf;
1027 #endif
1028
1029 switch (key)
1030 {
1031 #if OS2
1032 /*
1033 * If windowid is not NULL, assume less is executed in
1034 * the XFree86 environment.
1035 */
1036 case SK_RIGHT_ARROW:
1037 s = windowid ? ltgetstr("kr", &sp) : k_right;
1038 break;
1039 case SK_LEFT_ARROW:
1040 s = windowid ? ltgetstr("kl", &sp) : k_left;
1041 break;
1042 case SK_UP_ARROW:
1043 s = windowid ? ltgetstr("ku", &sp) : k_up;
1044 break;
1045 case SK_DOWN_ARROW:
1046 s = windowid ? ltgetstr("kd", &sp) : k_down;
1047 break;
1048 case SK_PAGE_UP:
1049 s = windowid ? ltgetstr("kP", &sp) : k_pageup;
1050 break;
1051 case SK_PAGE_DOWN:
1052 s = windowid ? ltgetstr("kN", &sp) : k_pagedown;
1053 break;
1054 case SK_HOME:
1055 s = windowid ? ltgetstr("kh", &sp) : k_home;
1056 break;
1057 case SK_END:
1058 s = windowid ? ltgetstr("@7", &sp) : k_end;
1059 break;
1060 case SK_DELETE:
1061 s = windowid ? ltgetstr("kD", &sp) : k_delete;
1062 if (s == NULL)
1063 {
1064 tbuf[0] = '\177';
1065 tbuf[1] = '\0';
1066 s = tbuf;
1067 }
1068 break;
1069 #endif
1070 #if MSDOS_COMPILER
1071 case SK_RIGHT_ARROW:
1072 s = k_right;
1073 break;
1074 case SK_LEFT_ARROW:
1075 s = k_left;
1076 break;
1077 case SK_UP_ARROW:
1078 s = k_up;
1079 break;
1080 case SK_DOWN_ARROW:
1081 s = k_down;
1082 break;
1083 case SK_PAGE_UP:
1084 s = k_pageup;
1085 break;
1086 case SK_PAGE_DOWN:
1087 s = k_pagedown;
1088 break;
1089 case SK_HOME:
1090 s = k_home;
1091 break;
1092 case SK_END:
1093 s = k_end;
1094 break;
1095 case SK_DELETE:
1096 s = k_delete;
1097 break;
1098 #endif
1099 #if MSDOS_COMPILER || OS2
1100 case SK_INSERT:
1101 s = k_insert;
1102 break;
1103 case SK_CTL_LEFT_ARROW:
1104 s = k_ctl_left;
1105 break;
1106 case SK_CTL_RIGHT_ARROW:
1107 s = k_ctl_right;
1108 break;
1109 case SK_CTL_BACKSPACE:
1110 s = k_ctl_backspace;
1111 break;
1112 case SK_CTL_DELETE:
1113 s = k_ctl_delete;
1114 break;
1115 case SK_BACKSPACE:
1116 s = k_backspace;
1117 break;
1118 case SK_F1:
1119 s = k_f1;
1120 break;
1121 case SK_BACKTAB:
1122 s = k_backtab;
1123 break;
1124 #else
1125 case SK_RIGHT_ARROW:
1126 s = ltgetstr("kr", &sp);
1127 break;
1128 case SK_LEFT_ARROW:
1129 s = ltgetstr("kl", &sp);
1130 break;
1131 case SK_UP_ARROW:
1132 s = ltgetstr("ku", &sp);
1133 break;
1134 case SK_DOWN_ARROW:
1135 s = ltgetstr("kd", &sp);
1136 break;
1137 case SK_PAGE_UP:
1138 s = ltgetstr("kP", &sp);
1139 break;
1140 case SK_PAGE_DOWN:
1141 s = ltgetstr("kN", &sp);
1142 break;
1143 case SK_HOME:
1144 s = ltgetstr("kh", &sp);
1145 break;
1146 case SK_END:
1147 s = ltgetstr("@7", &sp);
1148 break;
1149 case SK_DELETE:
1150 s = ltgetstr("kD", &sp);
1151 if (s == NULL)
1152 {
1153 tbuf[0] = '\177';
1154 tbuf[1] = '\0';
1155 s = tbuf;
1156 }
1157 break;
1158 case SK_BACKSPACE:
1159 s = ltgetstr("kb", &sp);
1160 if (s == NULL)
1161 {
1162 tbuf[0] = '\b';
1163 tbuf[1] = '\0';
1164 s = tbuf;
1165 }
1166 break;
1167 #endif
1168 case SK_CONTROL_K:
1169 tbuf[0] = CONTROL('K');
1170 tbuf[1] = '\0';
1171 s = tbuf;
1172 break;
1173 default:
1174 return (NULL);
1175 }
1176 return (s);
1177 }
1178
1179 /*
1180 * Get terminal capabilities via termcap.
1181 */
1182 public void get_term(void)
1183 {
1184 termcap_debug = !isnullenv(lgetenv("LESS_TERMCAP_DEBUG"));
1185 #if MSDOS_COMPILER
1186 auto_wrap = 1;
1187 ignaw = 0;
1188 can_goto_line = 1;
1189 clear_bg = 1;
1190 /*
1191 * Set up default colors.
1192 * The xx_s_width and xx_e_width vars are already initialized to 0.
1193 */
1194 #if MSDOS_COMPILER==MSOFTC
1195 sy_bg_color = _getbkcolor();
1196 sy_fg_color = _gettextcolor();
1197 get_clock();
1198 #else
1199 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
1200 {
1201 struct text_info w;
1202 gettextinfo(&w);
1203 sy_bg_color = (w.attribute >> 4) & 0x0F;
1204 sy_fg_color = (w.attribute >> 0) & 0x0F;
1205 }
1206 #else
1207 #if MSDOS_COMPILER==WIN32C
1208 {
1209 CONSOLE_SCREEN_BUFFER_INFO scr;
1210
1211 con_out_save = con_out = GetStdHandle(STD_OUTPUT_HANDLE);
1212 /*
1213 * Always open stdin in binary. Note this *must* be done
1214 * before any file operations have been done on fd0.
1215 */
1216 SET_BINARY(0);
1217 GetConsoleMode(con_out, &init_output_mode);
1218 GetConsoleScreenBufferInfo(con_out, &scr);
1219 curr_attr = scr.wAttributes;
1220 sy_bg_color = (curr_attr & BG_COLORS) >> 4; /* normalize */
1221 sy_fg_color = curr_attr & FG_COLORS;
1222 }
1223 #endif
1224 #endif
1225 #endif
1226 nm_fg_color = sy_fg_color;
1227 nm_bg_color = sy_bg_color;
1228 bo_fg_color = 11;
1229 bo_bg_color = 0;
1230 ul_fg_color = 9;
1231 ul_bg_color = 0;
1232 so_fg_color = 15;
1233 so_bg_color = 9;
1234 bl_fg_color = 15;
1235 bl_bg_color = 0;
1236 sgr_mode = 0;
1237
1238 /*
1239 * Get size of the screen.
1240 */
1241 scrsize();
1242 pos_init();
1243
1244
1245 #else /* !MSDOS_COMPILER */
1246 {
1247 char *sp;
1248 char *t1, *t2;
1249 char *term;
1250 /*
1251 * Some termcap libraries assume termbuf is static
1252 * (accessible after tgetent returns).
1253 */
1254 static char termbuf[TERMBUF_SIZE];
1255 static char sbuf[TERMSBUF_SIZE];
1256
1257 #if OS2
1258 /*
1259 * Make sure the termcap database is available.
1260 */
1261 sp = lgetenv("TERMCAP");
1262 if (isnullenv(sp))
1263 {
1264 char *termcap;
1265 if ((sp = homefile("termcap.dat")) != NULL)
1266 {
1267 termcap = (char *) ecalloc(strlen(sp)+9, sizeof(char));
1268 sprintf(termcap, "TERMCAP=%s", sp);
1269 free(sp);
1270 putenv(termcap);
1271 }
1272 }
1273 #endif
1274 /*
1275 * Find out what kind of terminal this is.
1276 */
1277 if ((term = lgetenv("TERM")) == NULL)
1278 term = DEFAULT_TERM;
1279 hardcopy = 0;
1280 /* {{ Should probably just pass NULL instead of termbuf. }} */
1281 if (tgetent(termbuf, term) != TGETENT_OK)
1282 hardcopy = 1;
1283 if (ltgetflag("hc"))
1284 hardcopy = 1;
1285
1286 /*
1287 * Get size of the screen.
1288 */
1289 scrsize();
1290 pos_init();
1291
1292 auto_wrap = ltgetflag("am");
1293 ignaw = ltgetflag("xn");
1294 above_mem = ltgetflag("da");
1295 below_mem = ltgetflag("db");
1296 clear_bg = ltgetflag("ut");
1297 no_alt_screen = ltgetflag("NR");
1298
1299 /*
1300 * Assumes termcap variable "sg" is the printing width of:
1301 * the standout sequence, the end standout sequence,
1302 * the underline sequence, the end underline sequence,
1303 * the boldface sequence, and the end boldface sequence.
1304 */
1305 if ((so_s_width = ltgetnum("sg")) < 0)
1306 so_s_width = 0;
1307 so_e_width = so_s_width;
1308
1309 bo_s_width = bo_e_width = so_s_width;
1310 ul_s_width = ul_e_width = so_s_width;
1311 bl_s_width = bl_e_width = so_s_width;
1312
1313 #if HILITE_SEARCH
1314 if (so_s_width > 0 || so_e_width > 0)
1315 /*
1316 * Disable highlighting by default on magic cookie terminals.
1317 * Turning on highlighting might change the displayed width
1318 * of a line, causing the display to get messed up.
1319 * The user can turn it back on with -g,
1320 * but she won't like the results.
1321 */
1322 hilite_search = 0;
1323 #endif
1324
1325 /*
1326 * Get various string-valued capabilities.
1327 */
1328 sp = sbuf;
1329
1330 #if HAVE_OSPEED
1331 sc_pad = ltgetstr("pc", &sp);
1332 if (sc_pad != NULL)
1333 PC = *sc_pad;
1334 #endif
1335
1336 sc_s_keypad = ltgetstr("ks", &sp);
1337 if (sc_s_keypad == NULL)
1338 sc_s_keypad = "";
1339 sc_e_keypad = ltgetstr("ke", &sp);
1340 if (sc_e_keypad == NULL)
1341 sc_e_keypad = "";
1342 kent = ltgetstr("@8", &sp);
1343
1344 sc_s_mousecap = ltgetstr("MOUSE_START", &sp);
1345 if (sc_s_mousecap == NULL)
1346 sc_s_mousecap = ESCS "[?1000h" ESCS "[?1006h";
1347 sc_e_mousecap = ltgetstr("MOUSE_END", &sp);
1348 if (sc_e_mousecap == NULL)
1349 sc_e_mousecap = ESCS "[?1006l" ESCS "[?1000l";
1350
1351 sc_init = ltgetstr("ti", &sp);
1352 if (sc_init == NULL)
1353 sc_init = "";
1354
1355 sc_deinit= ltgetstr("te", &sp);
1356 if (sc_deinit == NULL)
1357 sc_deinit = "";
1358
1359 sc_eol_clear = ltgetstr("ce", &sp);
1360 if (sc_eol_clear == NULL || *sc_eol_clear == '\0')
1361 {
1362 missing_cap = 1;
1363 sc_eol_clear = "";
1364 }
1365
1366 sc_eos_clear = ltgetstr("cd", &sp);
1367 if (below_mem && (sc_eos_clear == NULL || *sc_eos_clear == '\0'))
1368 {
1369 missing_cap = 1;
1370 sc_eos_clear = "";
1371 }
1372
1373 sc_clear = ltgetstr("cl", &sp);
1374 if (sc_clear == NULL || *sc_clear == '\0')
1375 {
1376 missing_cap = 1;
1377 sc_clear = "\n\n";
1378 }
1379
1380 sc_move = ltgetstr("cm", &sp);
1381 if (sc_move == NULL || *sc_move == '\0')
1382 {
1383 /*
1384 * This is not an error here, because we don't
1385 * always need sc_move.
1386 * We need it only if we don't have home or lower-left.
1387 */
1388 sc_move = "";
1389 can_goto_line = 0;
1390 } else
1391 can_goto_line = 1;
1392
1393 tmodes("so", "se", &sc_s_in, &sc_s_out, "", "", &sp);
1394 tmodes("us", "ue", &sc_u_in, &sc_u_out, sc_s_in, sc_s_out, &sp);
1395 tmodes("md", "me", &sc_b_in, &sc_b_out, sc_s_in, sc_s_out, &sp);
1396 tmodes("mb", "me", &sc_bl_in, &sc_bl_out, sc_s_in, sc_s_out, &sp);
1397
1398 sc_visual_bell = ltgetstr("vb", &sp);
1399 if (sc_visual_bell == NULL)
1400 sc_visual_bell = "";
1401
1402 if (ltgetflag("bs"))
1403 sc_backspace = "\b";
1404 else
1405 {
1406 sc_backspace = ltgetstr("bc", &sp);
1407 if (sc_backspace == NULL || *sc_backspace == '\0')
1408 sc_backspace = "\b";
1409 }
1410
1411 /*
1412 * Choose between using "ho" and "cm" ("home" and "cursor move")
1413 * to move the cursor to the upper left corner of the screen.
1414 */
1415 t1 = ltgetstr("ho", &sp);
1416 if (t1 == NULL)
1417 t1 = "";
1418 if (*sc_move == '\0')
1419 t2 = "";
1420 else
1421 {
1422 strcpy(sp, tgoto(sc_move, 0, 0));
1423 t2 = sp;
1424 sp += strlen(sp) + 1;
1425 }
1426 sc_home = cheaper(t1, t2, "|\b^");
1427
1428 /*
1429 * Choose between using "ll" and "cm" ("lower left" and "cursor move")
1430 * to move the cursor to the lower left corner of the screen.
1431 */
1432 t1 = ltgetstr("ll", &sp);
1433 if (t1 == NULL || !full_screen)
1434 t1 = "";
1435 if (*sc_move == '\0')
1436 t2 = "";
1437 else
1438 {
1439 strcpy(sp, tgoto(sc_move, 0, sc_height-1));
1440 t2 = sp;
1441 sp += strlen(sp) + 1;
1442 }
1443 sc_lower_left = cheaper(t1, t2, "\r");
1444
1445 /*
1446 * Get carriage return string.
1447 */
1448 sc_return = ltgetstr("cr", &sp);
1449 if (sc_return == NULL)
1450 sc_return = "\r";
1451
1452 /*
1453 * Choose between using "al" or "sr" ("add line" or "scroll reverse")
1454 * to add a line at the top of the screen.
1455 */
1456 t1 = ltgetstr("al", &sp);
1457 if (t1 == NULL)
1458 t1 = "";
1459 t2 = ltgetstr("sr", &sp);
1460 if (t2 == NULL)
1461 t2 = "";
1462 #if OS2
1463 if (*t1 == '\0' && *t2 == '\0')
1464 sc_addline = "";
1465 else
1466 #endif
1467 if (above_mem)
1468 sc_addline = t1;
1469 else
1470 sc_addline = cheaper(t1, t2, "");
1471 if (*sc_addline == '\0')
1472 {
1473 /*
1474 * Force repaint on any backward movement.
1475 */
1476 no_back_scroll = 1;
1477 }
1478 }
1479 #endif /* MSDOS_COMPILER */
1480 }
1481
1482 #if !MSDOS_COMPILER
1483 /*
1484 * Return the cost of displaying a termcap string.
1485 * We use the trick of calling tputs, but as a char printing function
1486 * we give it inc_costcount, which just increments "costcount".
1487 * This tells us how many chars would be printed by using this string.
1488 * {{ Couldn't we just use strlen? }}
1489 */
1490 static int costcount;
1491
1492 /*ARGSUSED*/
1493 static int inc_costcount(int c)
1494 {
1495 costcount++;
1496 return (c);
1497 }
1498
1499 static int cost(char *t)
1500 {
1501 costcount = 0;
1502 tputs(t, sc_height, inc_costcount);
1503 return (costcount);
1504 }
1505
1506 /*
1507 * Return the "best" of the two given termcap strings.
1508 * The best, if both exist, is the one with the lower
1509 * cost (see cost() function).
1510 */
1511 static char * cheaper(char *t1, char *t2, char *def)
1512 {
1513 if (*t1 == '\0' && *t2 == '\0')
1514 {
1515 missing_cap = 1;
1516 return (def);
1517 }
1518 if (*t1 == '\0')
1519 return (t2);
1520 if (*t2 == '\0')
1521 return (t1);
1522 if (cost(t1) < cost(t2))
1523 return (t1);
1524 return (t2);
1525 }
1526
1527 static void tmodes(char *incap, char *outcap, char **instr, char **outstr, char *def_instr, char *def_outstr, char **spp)
1528 {
1529 *instr = ltgetstr(incap, spp);
1530 if (*instr == NULL)
1531 {
1532 /* Use defaults. */
1533 *instr = def_instr;
1534 *outstr = def_outstr;
1535 return;
1536 }
1537
1538 *outstr = ltgetstr(outcap, spp);
1539 if (*outstr == NULL)
1540 /* No specific out capability; use "me". */
1541 *outstr = ltgetstr("me", spp);
1542 if (*outstr == NULL)
1543 /* Don't even have "me"; use a null string. */
1544 *outstr = "";
1545 }
1546
1547 #endif /* MSDOS_COMPILER */
1548
1549
1550 /*
1551 * Below are the functions which perform all the
1552 * terminal-specific screen manipulation.
1553 */
1554
1555
1556 #if MSDOS_COMPILER
1557
1558 #if MSDOS_COMPILER==WIN32C
1559 static void _settextposition(int row, int col)
1560 {
1561 COORD cpos;
1562 CONSOLE_SCREEN_BUFFER_INFO csbi;
1563
1564 GetConsoleScreenBufferInfo(con_out, &csbi);
1565 cpos.X = csbi.srWindow.Left + (col - 1);
1566 cpos.Y = csbi.srWindow.Top + (row - 1);
1567 SetConsoleCursorPosition(con_out, cpos);
1568 }
1569 #endif
1570
1571 /*
1572 * Initialize the screen to the correct color at startup.
1573 */
1574 static void initcolor(void)
1575 {
1576 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
1577 intensevideo();
1578 #endif
1579 SETCOLORS(nm_fg_color, nm_bg_color);
1580 #if 0
1581 /*
1582 * This clears the screen at startup. This is different from
1583 * the behavior of other versions of less. Disable it for now.
1584 */
1585 char *blanks;
1586 int row;
1587 int col;
1588
1589 /*
1590 * Create a complete, blank screen using "normal" colors.
1591 */
1592 SETCOLORS(nm_fg_color, nm_bg_color);
1593 blanks = (char *) ecalloc(width+1, sizeof(char));
1594 for (col = 0; col < sc_width; col++)
1595 blanks[col] = ' ';
1596 blanks[sc_width] = '\0';
1597 for (row = 0; row < sc_height; row++)
1598 _outtext(blanks);
1599 free(blanks);
1600 #endif
1601 }
1602 #endif
1603
1604 #if MSDOS_COMPILER==WIN32C
1605
1606 /*
1607 * Enable virtual terminal processing, if available.
1608 */
1609 static void win32_init_vt_term(void)
1610 {
1611 DWORD output_mode;
1612
1613 if (vt_enabled == 0 || (vt_enabled == 1 && con_out == con_out_ours))
1614 return;
1615
1616 GetConsoleMode(con_out, &output_mode);
1617 vt_enabled = SetConsoleMode(con_out,
1618 output_mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
1619 if (vt_enabled)
1620 {
1621 auto_wrap = 0;
1622 ignaw = 1;
1623 }
1624 }
1625
1626 static void win32_deinit_vt_term(void)
1627 {
1628 if (vt_enabled == 1 && con_out == con_out_save)
1629 SetConsoleMode(con_out, init_output_mode);
1630 }
1631
1632 /*
1633 * Termcap-like init with a private win32 console.
1634 */
1635 static void win32_init_term(void)
1636 {
1637 CONSOLE_SCREEN_BUFFER_INFO scr;
1638 COORD size;
1639
1640 if (con_out_save == INVALID_HANDLE_VALUE)
1641 return;
1642
1643 GetConsoleScreenBufferInfo(con_out_save, &scr);
1644
1645 if (con_out_ours == INVALID_HANDLE_VALUE)
1646 {
1647 /*
1648 * Create our own screen buffer, so that we
1649 * may restore the original when done.
1650 */
1651 con_out_ours = CreateConsoleScreenBuffer(
1652 GENERIC_WRITE | GENERIC_READ,
1653 FILE_SHARE_WRITE | FILE_SHARE_READ,
1654 (LPSECURITY_ATTRIBUTES) NULL,
1655 CONSOLE_TEXTMODE_BUFFER,
1656 (LPVOID) NULL);
1657 }
1658
1659 size.X = scr.srWindow.Right - scr.srWindow.Left + 1;
1660 size.Y = scr.srWindow.Bottom - scr.srWindow.Top + 1;
1661 SetConsoleScreenBufferSize(con_out_ours, size);
1662 SetConsoleActiveScreenBuffer(con_out_ours);
1663 con_out = con_out_ours;
1664 }
1665
1666 /*
1667 * Restore the startup console.
1668 */
1669 static void win32_deinit_term(void)
1670 {
1671 if (con_out_save == INVALID_HANDLE_VALUE)
1672 return;
1673 if (quitting)
1674 (void) CloseHandle(con_out_ours);
1675 SetConsoleActiveScreenBuffer(con_out_save);
1676 con_out = con_out_save;
1677 }
1678
1679 #endif
1680
1681 #if !MSDOS_COMPILER
1682 static void do_tputs(char *str, int affcnt, int (*f_putc)(int))
1683 {
1684 #if LESSTEST
1685 if (ttyin_name != NULL && f_putc == putchr)
1686 putstr(str);
1687 else
1688 #endif /*LESSTEST*/
1689 tputs(str, affcnt, f_putc);
1690 }
1691
1692 /*
1693 * Like tputs but we handle $<...> delay strings here because
1694 * some implementations of tputs don't perform delays correctly.
1695 */
1696 static void ltputs(char *str, int affcnt, int (*f_putc)(int))
1697 {
1698 while (str != NULL && *str != '\0')
1699 {
1700 #if HAVE_STRSTR
1701 char *obrac = strstr(str, "$<");
1702 if (obrac != NULL)
1703 {
1704 char str2[64];
1705 int slen = obrac - str;
1706 if (slen < sizeof(str2))
1707 {
1708 int delay;
1709 /* Output first part of string (before "$<"). */
1710 memcpy(str2, str, slen);
1711 str2[slen] = '\0';
1712 do_tputs(str2, affcnt, f_putc);
1713 str += slen + 2;
1714 /* Perform the delay. */
1715 delay = lstrtoi(str, &str, 10);
1716 if (*str == '*')
1717 if (ckd_mul(&delay, delay, affcnt))
1718 delay = INT_MAX;
1719 flush();
1720 sleep_ms(delay);
1721 /* Skip past closing ">" at end of delay string. */
1722 str = strstr(str, ">");
1723 if (str != NULL)
1724 str++;
1725 continue;
1726 }
1727 }
1728 #endif
1729 /* Pass the rest of the string to tputs and we're done. */
1730 do_tputs(str, affcnt, f_putc);
1731 break;
1732 }
1733 }
1734 #endif /* MSDOS_COMPILER */
1735
1736 /*
1737 * Configure the terminal so mouse clicks and wheel moves
1738 * produce input to less.
1739 */
1740 public void init_mouse(void)
1741 {
1742 #if !MSDOS_COMPILER
1743 ltputs(sc_s_mousecap, sc_height, putchr);
1744 #else
1745 #if MSDOS_COMPILER==WIN32C
1746 SetConsoleMode(tty, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT
1747 | ENABLE_EXTENDED_FLAGS /* disable quick edit */);
1748
1749 #endif
1750 #endif
1751 }
1752
1753 /*
1754 * Configure the terminal so mouse clicks and wheel moves
1755 * are handled by the system (so text can be selected, etc).
1756 */
1757 public void deinit_mouse(void)
1758 {
1759 #if !MSDOS_COMPILER
1760 ltputs(sc_e_mousecap, sc_height, putchr);
1761 #else
1762 #if MSDOS_COMPILER==WIN32C
1763 SetConsoleMode(tty, ENABLE_PROCESSED_INPUT | ENABLE_EXTENDED_FLAGS
1764 | (console_mode & ENABLE_QUICK_EDIT_MODE));
1765 #endif
1766 #endif
1767 }
1768
1769 /*
1770 * Initialize terminal
1771 */
1772 public void init(void)
1773 {
1774 clear_bot_if_needed();
1775 #if !MSDOS_COMPILER
1776 if (!(quit_if_one_screen && one_screen))
1777 {
1778 if (!no_init)
1779 {
1780 ltputs(sc_init, sc_height, putchr);
1781 /*
1782 * Some terminals leave the cursor unmoved when switching
1783 * to the alt screen. To avoid having the text appear at
1784 * a seemingly random line on the alt screen, move to
1785 * lower left if we are using an alt screen.
1786 */
1787 if (*sc_init != '\0' && *sc_deinit != '\0' && !no_alt_screen)
1788 lower_left();
1789 term_init_done = 1;
1790 }
1791 if (!no_keypad)
1792 ltputs(sc_s_keypad, sc_height, putchr);
1793 if (mousecap)
1794 init_mouse();
1795 }
1796 init_done = 1;
1797 if (top_scroll)
1798 {
1799 int i;
1800
1801 /*
1802 * This is nice to terminals with no alternate screen,
1803 * but with saved scrolled-off-the-top lines. This way,
1804 * no previous line is lost, but we start with a whole
1805 * screen to ourself.
1806 */
1807 for (i = 1; i < sc_height; i++)
1808 putchr('\n');
1809 } else
1810 line_left();
1811 #else
1812 #if MSDOS_COMPILER==WIN32C
1813 if (!(quit_if_one_screen && one_screen))
1814 {
1815 if (!no_init)
1816 {
1817 win32_init_term();
1818 term_init_done = 1;
1819 }
1820 if (mousecap)
1821 init_mouse();
1822
1823 }
1824 win32_init_vt_term();
1825 #endif
1826 init_done = 1;
1827 initcolor();
1828 flush();
1829 #endif
1830 }
1831
1832 /*
1833 * Deinitialize terminal
1834 */
1835 public void deinit(void)
1836 {
1837 if (!init_done)
1838 return;
1839 #if !MSDOS_COMPILER
1840 if (!(quit_if_one_screen && one_screen))
1841 {
1842 if (mousecap)
1843 deinit_mouse();
1844 if (!no_keypad)
1845 ltputs(sc_e_keypad, sc_height, putchr);
1846 if (!no_init)
1847 ltputs(sc_deinit, sc_height, putchr);
1848 }
1849 #else
1850 /* Restore system colors. */
1851 SETCOLORS(sy_fg_color, sy_bg_color);
1852 #if MSDOS_COMPILER==WIN32C
1853 win32_deinit_vt_term();
1854 if (!(quit_if_one_screen && one_screen))
1855 {
1856 if (mousecap)
1857 deinit_mouse();
1858 if (!no_init)
1859 win32_deinit_term();
1860 }
1861 #else
1862 /* Need clreol to make SETCOLORS take effect. */
1863 clreol();
1864 #endif
1865 #endif
1866 init_done = 0;
1867 }
1868
1869 /*
1870 * Are we interactive (ie. writing to an initialized tty)?
1871 */
1872 public int interactive(void)
1873 {
1874 return (is_tty && init_done);
1875 }
1876
1877 static void assert_interactive(void)
1878 {
1879 if (interactive()) return;
1880 /* abort(); */
1881 }
1882
1883 /*
1884 * Home cursor (move to upper left corner of screen).
1885 */
1886 public void home(void)
1887 {
1888 assert_interactive();
1889 #if !MSDOS_COMPILER
1890 ltputs(sc_home, 1, putchr);
1891 #else
1892 flush();
1893 _settextposition(1,1);
1894 #endif
1895 }
1896
1897 #if LESSTEST
1898 public void dump_screen(void)
1899 {
1900 char dump_cmd[32];
1901 SNPRINTF1(dump_cmd, sizeof(dump_cmd), ESCS"0;0;%dR", sc_width * sc_height);
1902 ltputs(dump_cmd, sc_height, putchr);
1903 flush();
1904 }
1905 #endif /*LESSTEST*/
1906
1907 /*
1908 * Add a blank line (called with cursor at home).
1909 * Should scroll the display down.
1910 */
1911 public void add_line(void)
1912 {
1913 assert_interactive();
1914 #if !MSDOS_COMPILER
1915 ltputs(sc_addline, sc_height, putchr);
1916 #else
1917 flush();
1918 #if MSDOS_COMPILER==MSOFTC
1919 _scrolltextwindow(_GSCROLLDOWN);
1920 _settextposition(1,1);
1921 #else
1922 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
1923 movetext(1,1, sc_width,sc_height-1, 1,2);
1924 gotoxy(1,1);
1925 clreol();
1926 #else
1927 #if MSDOS_COMPILER==WIN32C
1928 {
1929 CHAR_INFO fillchar;
1930 SMALL_RECT rcSrc, rcClip;
1931 COORD new_org;
1932 CONSOLE_SCREEN_BUFFER_INFO csbi;
1933
1934 GetConsoleScreenBufferInfo(con_out,&csbi);
1935
1936 /* The clip rectangle is the entire visible screen. */
1937 rcClip.Left = csbi.srWindow.Left;
1938 rcClip.Top = csbi.srWindow.Top;
1939 rcClip.Right = csbi.srWindow.Right;
1940 rcClip.Bottom = csbi.srWindow.Bottom;
1941
1942 /* The source rectangle is the visible screen minus the last line. */
1943 rcSrc = rcClip;
1944 rcSrc.Bottom--;
1945
1946 /* Move the top left corner of the source window down one row. */
1947 new_org.X = rcSrc.Left;
1948 new_org.Y = rcSrc.Top + 1;
1949
1950 /* Fill the right character and attributes. */
1951 fillchar.Char.AsciiChar = ' ';
1952 curr_attr = MAKEATTR(nm_fg_color, nm_bg_color);
1953 fillchar.Attributes = curr_attr;
1954 ScrollConsoleScreenBuffer(con_out, &rcSrc, &rcClip, new_org, &fillchar);
1955 _settextposition(1,1);
1956 }
1957 #endif
1958 #endif
1959 #endif
1960 #endif
1961 }
1962
1963 #if 0
1964 /*
1965 * Remove the n topmost lines and scroll everything below it in the
1966 * window upward. This is needed to stop leaking the topmost line
1967 * into the scrollback buffer when we go down-one-line (in WIN32).
1968 */
1969 public void remove_top(int n)
1970 {
1971 #if MSDOS_COMPILER==WIN32C
1972 SMALL_RECT rcSrc, rcClip;
1973 CHAR_INFO fillchar;
1974 COORD new_org;
1975 CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
1976
1977 if (n >= sc_height - 1)
1978 {
1979 clear();
1980 home();
1981 return;
1982 }
1983
1984 flush();
1985
1986 GetConsoleScreenBufferInfo(con_out, &csbi);
1987
1988 /* Get the extent of all-visible-rows-but-the-last. */
1989 rcSrc.Left = csbi.srWindow.Left;
1990 rcSrc.Top = csbi.srWindow.Top + n;
1991 rcSrc.Right = csbi.srWindow.Right;
1992 rcSrc.Bottom = csbi.srWindow.Bottom;
1993
1994 /* Get the clip rectangle. */
1995 rcClip.Left = rcSrc.Left;
1996 rcClip.Top = csbi.srWindow.Top;
1997 rcClip.Right = rcSrc.Right;
1998 rcClip.Bottom = rcSrc.Bottom ;
1999
2000 /* Move the source window up n rows. */
2001 new_org.X = rcSrc.Left;
2002 new_org.Y = rcSrc.Top - n;
2003
2004 /* Fill the right character and attributes. */
2005 fillchar.Char.AsciiChar = ' ';
2006 curr_attr = MAKEATTR(nm_fg_color, nm_bg_color);
2007 fillchar.Attributes = curr_attr;
2008
2009 ScrollConsoleScreenBuffer(con_out, &rcSrc, &rcClip, new_org, &fillchar);
2010
2011 /* Position cursor on first blank line. */
2012 goto_line(sc_height - n - 1);
2013 #endif
2014 }
2015 #endif
2016
2017 #if MSDOS_COMPILER==WIN32C
2018 /*
2019 * Clear the screen.
2020 */
2021 static void win32_clear(void)
2022 {
2023 /*
2024 * This will clear only the currently visible rows of the NT
2025 * console buffer, which means none of the precious scrollback
2026 * rows are touched making for faster scrolling. Note that, if
2027 * the window has fewer columns than the console buffer (i.e.
2028 * there is a horizontal scrollbar as well), the entire width
2029 * of the visible rows will be cleared.
2030 */
2031 COORD topleft;
2032 DWORD nchars;
2033 DWORD winsz;
2034 CONSOLE_SCREEN_BUFFER_INFO csbi;
2035
2036 /* get the number of cells in the current buffer */
2037 GetConsoleScreenBufferInfo(con_out, &csbi);
2038 winsz = csbi.dwSize.X * (csbi.srWindow.Bottom - csbi.srWindow.Top + 1);
2039 topleft.X = 0;
2040 topleft.Y = csbi.srWindow.Top;
2041
2042 curr_attr = MAKEATTR(nm_fg_color, nm_bg_color);
2043 FillConsoleOutputCharacter(con_out, ' ', winsz, topleft, &nchars);
2044 FillConsoleOutputAttribute(con_out, curr_attr, winsz, topleft, &nchars);
2045 }
2046
2047 /*
2048 * Remove the n topmost lines and scroll everything below it in the
2049 * window upward.
2050 */
2051 public void win32_scroll_up(int n)
2052 {
2053 SMALL_RECT rcSrc, rcClip;
2054 CHAR_INFO fillchar;
2055 COORD topleft;
2056 COORD new_org;
2057 DWORD nchars;
2058 DWORD size;
2059 CONSOLE_SCREEN_BUFFER_INFO csbi;
2060
2061 if (n <= 0)
2062 return;
2063
2064 if (n >= sc_height - 1)
2065 {
2066 win32_clear();
2067 _settextposition(1,1);
2068 return;
2069 }
2070
2071 /* Get the extent of what will remain visible after scrolling. */
2072 GetConsoleScreenBufferInfo(con_out, &csbi);
2073 rcSrc.Left = csbi.srWindow.Left;
2074 rcSrc.Top = csbi.srWindow.Top + n;
2075 rcSrc.Right = csbi.srWindow.Right;
2076 rcSrc.Bottom = csbi.srWindow.Bottom;
2077
2078 /* Get the clip rectangle. */
2079 rcClip.Left = rcSrc.Left;
2080 rcClip.Top = csbi.srWindow.Top;
2081 rcClip.Right = rcSrc.Right;
2082 rcClip.Bottom = rcSrc.Bottom ;
2083
2084 /* Move the source text to the top of the screen. */
2085 new_org.X = rcSrc.Left;
2086 new_org.Y = rcClip.Top;
2087
2088 /* Fill the right character and attributes. */
2089 fillchar.Char.AsciiChar = ' ';
2090 fillchar.Attributes = MAKEATTR(nm_fg_color, nm_bg_color);
2091
2092 /* Scroll the window. */
2093 SetConsoleTextAttribute(con_out, fillchar.Attributes);
2094 ScrollConsoleScreenBuffer(con_out, &rcSrc, &rcClip, new_org, &fillchar);
2095
2096 /* Clear remaining lines at bottom. */
2097 topleft.X = csbi.dwCursorPosition.X;
2098 topleft.Y = rcSrc.Bottom - n;
2099 size = (n * csbi.dwSize.X) + (rcSrc.Right - topleft.X);
2100 FillConsoleOutputCharacter(con_out, ' ', size, topleft,
2101 &nchars);
2102 FillConsoleOutputAttribute(con_out, fillchar.Attributes, size, topleft,
2103 &nchars);
2104 SetConsoleTextAttribute(con_out, curr_attr);
2105
2106 /* Move cursor n lines up from where it was. */
2107 csbi.dwCursorPosition.Y -= n;
2108 SetConsoleCursorPosition(con_out, csbi.dwCursorPosition);
2109 }
2110 #endif
2111
2112 /*
2113 * Move cursor to lower left corner of screen.
2114 */
2115 public void lower_left(void)
2116 {
2117 assert_interactive();
2118 #if !MSDOS_COMPILER
2119 ltputs(sc_lower_left, 1, putchr);
2120 #else
2121 flush();
2122 _settextposition(sc_height, 1);
2123 #endif
2124 }
2125
2126 /*
2127 * Move cursor to left position of current line.
2128 */
2129 public void line_left(void)
2130 {
2131 assert_interactive();
2132 #if !MSDOS_COMPILER
2133 ltputs(sc_return, 1, putchr);
2134 #else
2135 {
2136 int row;
2137 flush();
2138 #if MSDOS_COMPILER==WIN32C
2139 {
2140 CONSOLE_SCREEN_BUFFER_INFO scr;
2141 GetConsoleScreenBufferInfo(con_out, &scr);
2142 row = scr.dwCursorPosition.Y - scr.srWindow.Top + 1;
2143 }
2144 #else
2145 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
2146 row = wherey();
2147 #else
2148 {
2149 struct rccoord tpos = _gettextposition();
2150 row = tpos.row;
2151 }
2152 #endif
2153 #endif
2154 _settextposition(row, 1);
2155 }
2156 #endif
2157 }
2158
2159 /*
2160 * Check if the console size has changed and reset internals
2161 * (in lieu of SIGWINCH for WIN32).
2162 */
2163 public void check_winch(void)
2164 {
2165 #if MSDOS_COMPILER==WIN32C
2166 CONSOLE_SCREEN_BUFFER_INFO scr;
2167 COORD size;
2168
2169 if (con_out == INVALID_HANDLE_VALUE)
2170 return;
2171
2172 flush();
2173 GetConsoleScreenBufferInfo(con_out, &scr);
2174 size.Y = scr.srWindow.Bottom - scr.srWindow.Top + 1;
2175 size.X = scr.srWindow.Right - scr.srWindow.Left + 1;
2176 if (size.Y != sc_height || size.X != sc_width)
2177 {
2178 sc_height = size.Y;
2179 sc_width = size.X;
2180 if (!no_init && con_out_ours == con_out)
2181 SetConsoleScreenBufferSize(con_out, size);
2182 pos_init();
2183 wscroll = (sc_height + 1) / 2;
2184 screen_trashed = 1;
2185 }
2186 #endif
2187 }
2188
2189 /*
2190 * Goto a specific line on the screen.
2191 */
2192 public void goto_line(int sindex)
2193 {
2194 assert_interactive();
2195 #if !MSDOS_COMPILER
2196 ltputs(tgoto(sc_move, 0, sindex), 1, putchr);
2197 #else
2198 flush();
2199 _settextposition(sindex+1, 1);
2200 #endif
2201 }
2202
2203 #if MSDOS_COMPILER==MSOFTC || MSDOS_COMPILER==BORLANDC
2204 /*
2205 * Create an alternate screen which is all white.
2206 * This screen is used to create a "flash" effect, by displaying it
2207 * briefly and then switching back to the normal screen.
2208 * {{ Yuck! There must be a better way to get a visual bell. }}
2209 */
2210 static void create_flash(void)
2211 {
2212 #if MSDOS_COMPILER==MSOFTC
2213 struct videoconfig w;
2214 char *blanks;
2215 int row, col;
2216
2217 _getvideoconfig(&w);
2218 videopages = w.numvideopages;
2219 if (videopages < 2)
2220 {
2221 at_enter(AT_STANDOUT);
2222 at_exit();
2223 } else
2224 {
2225 _setactivepage(1);
2226 at_enter(AT_STANDOUT);
2227 blanks = (char *) ecalloc(w.numtextcols, sizeof(char));
2228 for (col = 0; col < w.numtextcols; col++)
2229 blanks[col] = ' ';
2230 for (row = w.numtextrows; row > 0; row--)
2231 _outmem(blanks, w.numtextcols);
2232 _setactivepage(0);
2233 _setvisualpage(0);
2234 free(blanks);
2235 at_exit();
2236 }
2237 #else
2238 #if MSDOS_COMPILER==BORLANDC
2239 int n;
2240
2241 whitescreen = (unsigned short *)
2242 malloc(sc_width * sc_height * sizeof(short));
2243 if (whitescreen == NULL)
2244 return;
2245 for (n = 0; n < sc_width * sc_height; n++)
2246 whitescreen[n] = 0x7020;
2247 #endif
2248 #endif
2249 flash_created = 1;
2250 }
2251 #endif /* MSDOS_COMPILER */
2252
2253 /*
2254 * Output the "visual bell", if there is one.
2255 */
2256 public void vbell(void)
2257 {
2258 if (no_vbell)
2259 return;
2260 #if !MSDOS_COMPILER
2261 if (*sc_visual_bell == '\0')
2262 return;
2263 ltputs(sc_visual_bell, sc_height, putchr);
2264 #else
2265 #if MSDOS_COMPILER==DJGPPC
2266 ScreenVisualBell();
2267 #else
2268 #if MSDOS_COMPILER==MSOFTC
2269 /*
2270 * Create a flash screen on the second video page.
2271 * Switch to that page, then switch back.
2272 */
2273 if (!flash_created)
2274 create_flash();
2275 if (videopages < 2)
2276 return;
2277 _setvisualpage(1);
2278 delay(100);
2279 _setvisualpage(0);
2280 #else
2281 #if MSDOS_COMPILER==BORLANDC
2282 unsigned short *currscreen;
2283
2284 /*
2285 * Get a copy of the current screen.
2286 * Display the flash screen.
2287 * Then restore the old screen.
2288 */
2289 if (!flash_created)
2290 create_flash();
2291 if (whitescreen == NULL)
2292 return;
2293 currscreen = (unsigned short *)
2294 malloc(sc_width * sc_height * sizeof(short));
2295 if (currscreen == NULL) return;
2296 gettext(1, 1, sc_width, sc_height, currscreen);
2297 puttext(1, 1, sc_width, sc_height, whitescreen);
2298 delay(100);
2299 puttext(1, 1, sc_width, sc_height, currscreen);
2300 free(currscreen);
2301 #else
2302 #if MSDOS_COMPILER==WIN32C
2303 /* paint screen with an inverse color */
2304 clear();
2305
2306 /* leave it displayed for 100 msec. */
2307 Sleep(100);
2308
2309 /* restore with a redraw */
2310 repaint();
2311 #endif
2312 #endif
2313 #endif
2314 #endif
2315 #endif
2316 }
2317
2318 /*
2319 * Make a noise.
2320 */
2321 static void beep(void)
2322 {
2323 #if !MSDOS_COMPILER
2324 putchr(CONTROL('G'));
2325 #else
2326 #if MSDOS_COMPILER==WIN32C
2327 MessageBeep(0);
2328 #else
2329 write(1, "\7", 1);
2330 #endif
2331 #endif
2332 }
2333
2334 /*
2335 * Ring the terminal bell.
2336 */
2337 public void bell(void)
2338 {
2339 if (quiet == VERY_QUIET)
2340 vbell();
2341 else
2342 beep();
2343 }
2344
2345 /*
2346 * Clear the screen.
2347 */
2348 public void clear(void)
2349 {
2350 assert_interactive();
2351 #if !MSDOS_COMPILER
2352 ltputs(sc_clear, sc_height, putchr);
2353 #else
2354 flush();
2355 #if MSDOS_COMPILER==WIN32C
2356 win32_clear();
2357 #else
2358 _clearscreen(_GCLEARSCREEN);
2359 #endif
2360 #endif
2361 }
2362
2363 /*
2364 * Clear from the cursor to the end of the cursor's line.
2365 * {{ This must not move the cursor. }}
2366 */
2367 public void clear_eol(void)
2368 {
2369 /* assert_interactive();*/
2370 #if !MSDOS_COMPILER
2371 ltputs(sc_eol_clear, 1, putchr);
2372 #else
2373 #if MSDOS_COMPILER==MSOFTC
2374 short top, left;
2375 short bot, right;
2376 struct rccoord tpos;
2377
2378 flush();
2379 /*
2380 * Save current state.
2381 */
2382 tpos = _gettextposition();
2383 _gettextwindow(&top, &left, &bot, &right);
2384 /*
2385 * Set a temporary window to the current line,
2386 * from the cursor's position to the right edge of the screen.
2387 * Then clear that window.
2388 */
2389 _settextwindow(tpos.row, tpos.col, tpos.row, sc_width);
2390 _clearscreen(_GWINDOW);
2391 /*
2392 * Restore state.
2393 */
2394 _settextwindow(top, left, bot, right);
2395 _settextposition(tpos.row, tpos.col);
2396 #else
2397 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
2398 flush();
2399 clreol();
2400 #else
2401 #if MSDOS_COMPILER==WIN32C
2402 DWORD nchars;
2403 COORD cpos;
2404 CONSOLE_SCREEN_BUFFER_INFO scr;
2405
2406 flush();
2407 memset(&scr, 0, sizeof(scr));
2408 GetConsoleScreenBufferInfo(con_out, &scr);
2409 cpos.X = scr.dwCursorPosition.X;
2410 cpos.Y = scr.dwCursorPosition.Y;
2411 curr_attr = MAKEATTR(nm_fg_color, nm_bg_color);
2412 FillConsoleOutputAttribute(con_out, curr_attr,
2413 scr.dwSize.X - cpos.X, cpos, &nchars);
2414 FillConsoleOutputCharacter(con_out, ' ',
2415 scr.dwSize.X - cpos.X, cpos, &nchars);
2416 #endif
2417 #endif
2418 #endif
2419 #endif
2420 }
2421
2422 /*
2423 * Clear the current line.
2424 * Clear the screen if there's off-screen memory below the display.
2425 */
2426 static void clear_eol_bot(void)
2427 {
2428 assert_interactive();
2429 #if MSDOS_COMPILER
2430 clear_eol();
2431 #else
2432 if (below_mem)
2433 ltputs(sc_eos_clear, 1, putchr);
2434 else
2435 ltputs(sc_eol_clear, 1, putchr);
2436 #endif
2437 }
2438
2439 /*
2440 * Clear the bottom line of the display.
2441 * Leave the cursor at the beginning of the bottom line.
2442 */
2443 public void clear_bot(void)
2444 {
2445 /*
2446 * If we're in a non-normal attribute mode, temporarily exit
2447 * the mode while we do the clear. Some terminals fill the
2448 * cleared area with the current attribute.
2449 */
2450 if (oldbot)
2451 lower_left();
2452 else
2453 line_left();
2454
2455 if (attrmode == AT_NORMAL)
2456 clear_eol_bot();
2457 else
2458 {
2459 int saved_attrmode = attrmode;
2460
2461 at_exit();
2462 clear_eol_bot();
2463 at_enter(saved_attrmode);
2464 }
2465 }
2466
2467 /*
2468 * Color string may be "x[y]" where x and y are 4-bit color chars,
2469 * or "N[.M]" where N and M are decimal integers>
2470 * Any of x,y,N,M may also be "-" to mean "unchanged".
2471 */
2472
2473 /*
2474 * Parse a 4-bit color char.
2475 */
2476 static int parse_color4(char ch)
2477 {
2478 switch (ch)
2479 {
2480 case 'k': return 0;
2481 case 'r': return CV_RED;
2482 case 'g': return CV_GREEN;
2483 case 'y': return CV_RED|CV_GREEN;
2484 case 'b': return CV_BLUE;
2485 case 'm': return CV_RED|CV_BLUE;
2486 case 'c': return CV_GREEN|CV_BLUE;
2487 case 'w': return CV_RED|CV_GREEN|CV_BLUE;
2488 case 'K': return 0|CV_BRIGHT;
2489 case 'R': return CV_RED|CV_BRIGHT;
2490 case 'G': return CV_GREEN|CV_BRIGHT;
2491 case 'Y': return CV_RED|CV_GREEN|CV_BRIGHT;
2492 case 'B': return CV_BLUE|CV_BRIGHT;
2493 case 'M': return CV_RED|CV_BLUE|CV_BRIGHT;
2494 case 'C': return CV_GREEN|CV_BLUE|CV_BRIGHT;
2495 case 'W': return CV_RED|CV_GREEN|CV_BLUE|CV_BRIGHT;
2496 case '-': return CV_NOCHANGE;
2497 default: return CV_ERROR;
2498 }
2499 }
2500
2501 /*
2502 * Parse a color as a decimal integer.
2503 */
2504 static int parse_color6(char **ps)
2505 {
2506 if (**ps == '-')
2507 {
2508 (*ps)++;
2509 return CV_NOCHANGE;
2510 } else
2511 {
2512 char *ops = *ps;
2513 int color = lstrtoi(ops, ps, 10);
2514 if (color < 0 || *ps == ops)
2515 return CV_ERROR;
2516 return color;
2517 }
2518 }
2519
2520 /*
2521 * Parse a color pair and return the foreground/background values.
2522 * Return type of color specifier:
2523 * CV_4BIT: fg/bg values are OR of CV_{RGB} bits.
2524 * CV_6BIT: fg/bg values are integers entered by user.
2525 */
2526 public COLOR_TYPE parse_color(char *str, int *p_fg, int *p_bg)
2527 {
2528 int fg;
2529 int bg;
2530 COLOR_TYPE type = CT_NULL;
2531
2532 if (str == NULL || *str == '\0')
2533 return CT_NULL;
2534 if (*str == '+')
2535 str++; /* ignore leading + */
2536
2537 fg = parse_color4(str[0]);
2538 bg = parse_color4((strlen(str) < 2) ? '-' : str[1]);
2539 if (fg != CV_ERROR && bg != CV_ERROR)
2540 type = CT_4BIT;
2541 else
2542 {
2543 fg = parse_color6(&str);
2544 bg = (fg != CV_ERROR && *str++ == '.') ? parse_color6(&str) : CV_NOCHANGE;
2545 if (fg != CV_ERROR && bg != CV_ERROR)
2546 type = CT_6BIT;
2547 }
2548 if (p_fg != NULL) *p_fg = fg;
2549 if (p_bg != NULL) *p_bg = bg;
2550 return type;
2551 }
2552
2553 #if !MSDOS_COMPILER
2554
2555 static int sgr_color(int color)
2556 {
2557 switch (color)
2558 {
2559 case 0: return 30;
2560 case CV_RED: return 31;
2561 case CV_GREEN: return 32;
2562 case CV_RED|CV_GREEN: return 33;
2563 case CV_BLUE: return 34;
2564 case CV_RED|CV_BLUE: return 35;
2565 case CV_GREEN|CV_BLUE: return 36;
2566 case CV_RED|CV_GREEN|CV_BLUE: return 37;
2567
2568 case CV_BRIGHT: return 90;
2569 case CV_RED|CV_BRIGHT: return 91;
2570 case CV_GREEN|CV_BRIGHT: return 92;
2571 case CV_RED|CV_GREEN|CV_BRIGHT: return 93;
2572 case CV_BLUE|CV_BRIGHT: return 94;
2573 case CV_RED|CV_BLUE|CV_BRIGHT: return 95;
2574 case CV_GREEN|CV_BLUE|CV_BRIGHT: return 96;
2575 case CV_RED|CV_GREEN|CV_BLUE|CV_BRIGHT: return 97;
2576
2577 default: return color;
2578 }
2579 }
2580
2581 static void tput_fmt(char *fmt, int color, int (*f_putc)(int))
2582 {
2583 char buf[INT_STRLEN_BOUND(int)+16];
2584 if (color == attrcolor)
2585 return;
2586 SNPRINTF1(buf, sizeof(buf), fmt, color);
2587 ltputs(buf, 1, f_putc);
2588 attrcolor = color;
2589 }
2590
2591 static void tput_color(char *str, int (*f_putc)(int))
2592 {
2593 int fg;
2594 int bg;
2595
2596 if (str != NULL && strcmp(str, "*") == 0)
2597 {
2598 /* Special case: reset to normal */
2599 tput_fmt(ESCS"[m", -1, f_putc);
2600 return;
2601 }
2602 switch (parse_color(str, &fg, &bg))
2603 {
2604 case CT_4BIT:
2605 if (fg >= 0)
2606 tput_fmt(ESCS"[%dm", sgr_color(fg), f_putc);
2607 if (bg >= 0)
2608 tput_fmt(ESCS"[%dm", sgr_color(bg)+10, f_putc);
2609 break;
2610 case CT_6BIT:
2611 if (fg >= 0)
2612 tput_fmt(ESCS"[38;5;%dm", fg, f_putc);
2613 if (bg >= 0)
2614 tput_fmt(ESCS"[48;5;%dm", bg, f_putc);
2615 break;
2616 default:
2617 break;
2618 }
2619 }
2620
2621 static void tput_inmode(char *mode_str, int attr, int attr_bit, int (*f_putc)(int))
2622 {
2623 char *color_str;
2624 if ((attr & attr_bit) == 0)
2625 return;
2626 color_str = get_color_map(attr_bit);
2627 if (color_str == NULL || *color_str == '\0' || *color_str == '+')
2628 {
2629 ltputs(mode_str, 1, f_putc);
2630 if (color_str == NULL || *color_str++ != '+')
2631 return;
2632 }
2633 /* Color overrides mode string */
2634 tput_color(color_str, f_putc);
2635 }
2636
2637 static void tput_outmode(char *mode_str, int attr_bit, int (*f_putc)(int))
2638 {
2639 if ((attrmode & attr_bit) == 0)
2640 return;
2641 ltputs(mode_str, 1, f_putc);
2642 }
2643
2644 #else /* MSDOS_COMPILER */
2645
2646 #if MSDOS_COMPILER==WIN32C
2647 static int WIN32put_fmt(char *fmt, int color)
2648 {
2649 char buf[INT_STRLEN_BOUND(int)+16];
2650 int len = SNPRINTF1(buf, sizeof(buf), fmt, color);
2651 WIN32textout(buf, len);
2652 return TRUE;
2653 }
2654 #endif
2655
2656 static int win_set_color(int attr)
2657 {
2658 int fg;
2659 int bg;
2660 int out = FALSE;
2661 char *str = get_color_map(attr);
2662 if (str == NULL || str[0] == '\0')
2663 return FALSE;
2664 switch (parse_color(str, &fg, &bg))
2665 {
2666 case CT_4BIT:
2667 if (fg >= 0 && bg >= 0)
2668 {
2669 SETCOLORS(fg, bg);
2670 out = TRUE;
2671 } else if (fg >= 0)
2672 {
2673 SET_FG_COLOR(fg);
2674 out = TRUE;
2675 } else if (bg >= 0)
2676 {
2677 SET_BG_COLOR(bg);
2678 out = TRUE;
2679 }
2680 break;
2681 #if MSDOS_COMPILER==WIN32C
2682 case CT_6BIT:
2683 if (vt_enabled)
2684 {
2685 if (fg > 0)
2686 out = WIN32put_fmt(ESCS"[38;5;%dm", fg);
2687 if (bg > 0)
2688 out = WIN32put_fmt(ESCS"[48;5;%dm", bg);
2689 }
2690 break;
2691 #endif
2692 default:
2693 break;
2694 }
2695 return out;
2696 }
2697
2698 #endif /* MSDOS_COMPILER */
2699
2700 public void at_enter(int attr)
2701 {
2702 attr = apply_at_specials(attr);
2703 #if !MSDOS_COMPILER
2704 /* The one with the most priority is last. */
2705 tput_inmode(sc_u_in, attr, AT_UNDERLINE, putchr);
2706 tput_inmode(sc_b_in, attr, AT_BOLD, putchr);
2707 tput_inmode(sc_bl_in, attr, AT_BLINK, putchr);
2708 /* Don't use standout and color at the same time. */
2709 if (use_color && (attr & AT_COLOR))
2710 tput_color(get_color_map(attr), putchr);
2711 else
2712 tput_inmode(sc_s_in, attr, AT_STANDOUT, putchr);
2713 #else
2714 flush();
2715 /* The one with the most priority is first. */
2716 if ((attr & AT_COLOR) && use_color)
2717 {
2718 win_set_color(attr);
2719 } else if (attr & AT_STANDOUT)
2720 {
2721 SETCOLORS(so_fg_color, so_bg_color);
2722 } else if (attr & AT_BLINK)
2723 {
2724 SETCOLORS(bl_fg_color, bl_bg_color);
2725 } else if (attr & AT_BOLD)
2726 {
2727 SETCOLORS(bo_fg_color, bo_bg_color);
2728 } else if (attr & AT_UNDERLINE)
2729 {
2730 SETCOLORS(ul_fg_color, ul_bg_color);
2731 }
2732 #endif
2733 attrmode = attr;
2734 }
2735
2736 public void at_exit(void)
2737 {
2738 #if !MSDOS_COMPILER
2739 /* Undo things in the reverse order we did them. */
2740 tput_color("*", putchr);
2741 tput_outmode(sc_s_out, AT_STANDOUT, putchr);
2742 tput_outmode(sc_bl_out, AT_BLINK, putchr);
2743 tput_outmode(sc_b_out, AT_BOLD, putchr);
2744 tput_outmode(sc_u_out, AT_UNDERLINE, putchr);
2745 #else
2746 flush();
2747 SETCOLORS(nm_fg_color, nm_bg_color);
2748 #endif
2749 attrmode = AT_NORMAL;
2750 }
2751
2752 public void at_switch(int attr)
2753 {
2754 int new_attrmode = apply_at_specials(attr);
2755 int ignore_modes = AT_ANSI;
2756
2757 if ((new_attrmode & ~ignore_modes) != (attrmode & ~ignore_modes))
2758 {
2759 at_exit();
2760 at_enter(attr);
2761 }
2762 }
2763
2764 public int is_at_equiv(int attr1, int attr2)
2765 {
2766 attr1 = apply_at_specials(attr1);
2767 attr2 = apply_at_specials(attr2);
2768
2769 return (attr1 == attr2);
2770 }
2771
2772 public int apply_at_specials(int attr)
2773 {
2774 if (attr & AT_BINARY)
2775 attr |= binattr;
2776 if (attr & AT_HILITE)
2777 attr |= AT_STANDOUT;
2778 attr &= ~(AT_BINARY|AT_HILITE);
2779
2780 return attr;
2781 }
2782
2783 /*
2784 * Output a plain backspace, without erasing the previous char.
2785 */
2786 public void putbs(void)
2787 {
2788 if (termcap_debug)
2789 putstr("<bs>");
2790 else
2791 {
2792 #if !MSDOS_COMPILER
2793 ltputs(sc_backspace, 1, putchr);
2794 #else
2795 int row, col;
2796
2797 flush();
2798 {
2799 #if MSDOS_COMPILER==MSOFTC
2800 struct rccoord tpos;
2801 tpos = _gettextposition();
2802 row = tpos.row;
2803 col = tpos.col;
2804 #else
2805 #if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
2806 row = wherey();
2807 col = wherex();
2808 #else
2809 #if MSDOS_COMPILER==WIN32C
2810 CONSOLE_SCREEN_BUFFER_INFO scr;
2811 GetConsoleScreenBufferInfo(con_out, &scr);
2812 row = scr.dwCursorPosition.Y - scr.srWindow.Top + 1;
2813 col = scr.dwCursorPosition.X - scr.srWindow.Left + 1;
2814 #endif
2815 #endif
2816 #endif
2817 }
2818 if (col <= 1)
2819 return;
2820 _settextposition(row, col-1);
2821 #endif /* MSDOS_COMPILER */
2822 }
2823 }
2824
2825 #if MSDOS_COMPILER==WIN32C
2826 /*
2827 * Determine whether an input character is waiting to be read.
2828 */
2829 public int win32_kbhit(void)
2830 {
2831 INPUT_RECORD ip;
2832 DWORD read;
2833
2834 if (keyCount > 0)
2835 return (TRUE);
2836
2837 currentKey.ascii = 0;
2838 currentKey.scan = 0;
2839
2840 if (x11mouseCount > 0)
2841 {
2842 currentKey.ascii = x11mousebuf[x11mousePos++];
2843 --x11mouseCount;
2844 keyCount = 1;
2845 return (TRUE);
2846 }
2847
2848 /*
2849 * Wait for a real key-down event, but
2850 * ignore SHIFT and CONTROL key events.
2851 */
2852 do
2853 {
2854 PeekConsoleInputW(tty, &ip, 1, &read);
2855 if (read == 0)
2856 return (FALSE);
2857 ReadConsoleInputW(tty, &ip, 1, &read);
2858 /* generate an X11 mouse sequence from the mouse event */
2859 if (mousecap && ip.EventType == MOUSE_EVENT &&
2860 ip.Event.MouseEvent.dwEventFlags != MOUSE_MOVED)
2861 {
2862 x11mousebuf[3] = X11MOUSE_OFFSET + ip.Event.MouseEvent.dwMousePosition.X + 1;
2863 x11mousebuf[4] = X11MOUSE_OFFSET + ip.Event.MouseEvent.dwMousePosition.Y + 1;
2864 switch (ip.Event.MouseEvent.dwEventFlags)
2865 {
2866 case 0: /* press or release */
2867 if (ip.Event.MouseEvent.dwButtonState == 0)
2868 x11mousebuf[2] = X11MOUSE_OFFSET + X11MOUSE_BUTTON_REL;
2869 else if (ip.Event.MouseEvent.dwButtonState & (FROM_LEFT_3RD_BUTTON_PRESSED | FROM_LEFT_4TH_BUTTON_PRESSED))
2870 continue;
2871 else
2872 x11mousebuf[2] = X11MOUSE_OFFSET + X11MOUSE_BUTTON1 + ((int)ip.Event.MouseEvent.dwButtonState << 1);
2873 break;
2874 case MOUSE_WHEELED:
2875 x11mousebuf[2] = X11MOUSE_OFFSET + (((int)ip.Event.MouseEvent.dwButtonState < 0) ? X11MOUSE_WHEEL_DOWN : X11MOUSE_WHEEL_UP);
2876 break;
2877 default:
2878 continue;
2879 }
2880 x11mousePos = 0;
2881 x11mouseCount = 5;
2882 currentKey.ascii = ESC;
2883 keyCount = 1;
2884 return (TRUE);
2885 }
2886 } while (ip.EventType != KEY_EVENT ||
2887 ip.Event.KeyEvent.bKeyDown != TRUE ||
2888 (ip.Event.KeyEvent.wVirtualScanCode == 0 && ip.Event.KeyEvent.uChar.UnicodeChar == 0) ||
2889 ((ip.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED)) == (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED) && ip.Event.KeyEvent.uChar.UnicodeChar == 0) ||
2890 ip.Event.KeyEvent.wVirtualKeyCode == VK_KANJI ||
2891 ip.Event.KeyEvent.wVirtualKeyCode == VK_SHIFT ||
2892 ip.Event.KeyEvent.wVirtualKeyCode == VK_CONTROL ||
2893 ip.Event.KeyEvent.wVirtualKeyCode == VK_MENU);
2894
2895 currentKey.unicode = ip.Event.KeyEvent.uChar.UnicodeChar;
2896 currentKey.ascii = ip.Event.KeyEvent.uChar.AsciiChar;
2897 currentKey.scan = ip.Event.KeyEvent.wVirtualScanCode;
2898 keyCount = ip.Event.KeyEvent.wRepeatCount;
2899
2900 if (ip.Event.KeyEvent.dwControlKeyState &
2901 (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED))
2902 {
2903 switch (currentKey.scan)
2904 {
2905 case PCK_ALT_E: /* letter 'E' */
2906 currentKey.ascii = 0;
2907 break;
2908 }
2909 } else if (ip.Event.KeyEvent.dwControlKeyState &
2910 (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED))
2911 {
2912 switch (currentKey.scan)
2913 {
2914 case PCK_RIGHT: /* right arrow */
2915 currentKey.scan = PCK_CTL_RIGHT;
2916 break;
2917 case PCK_LEFT: /* left arrow */
2918 currentKey.scan = PCK_CTL_LEFT;
2919 break;
2920 case PCK_DELETE: /* delete */
2921 currentKey.scan = PCK_CTL_DELETE;
2922 break;
2923 }
2924 } else if (ip.Event.KeyEvent.dwControlKeyState & SHIFT_PRESSED)
2925 {
2926 switch (currentKey.scan)
2927 {
2928 case PCK_SHIFT_TAB: /* tab */
2929 currentKey.ascii = 0;
2930 break;
2931 }
2932 }
2933
2934 return (TRUE);
2935 }
2936
2937 /*
2938 * Read a character from the keyboard.
2939 */
2940 public char WIN32getch(void)
2941 {
2942 char ascii;
2943 static unsigned char utf8[UTF8_MAX_LENGTH];
2944 static int utf8_size = 0;
2945 static int utf8_next_byte = 0;
2946
2947 // Return the rest of multibyte character from the prior call
2948 if (utf8_next_byte < utf8_size)
2949 {
2950 ascii = utf8[utf8_next_byte++];
2951 return ascii;
2952 }
2953 utf8_size = 0;
2954
2955 if (pending_scancode)
2956 {
2957 pending_scancode = 0;
2958 return ((char)(currentKey.scan & 0x00FF));
2959 }
2960
2961 do {
2962 while (win32_kbhit() == FALSE)
2963 {
2964 Sleep(20);
2965 if (ABORT_SIGS())
2966 return ('\003');
2967 continue;
2968 }
2969 keyCount --;
2970 // If multibyte character, return its first byte
2971 if (currentKey.ascii != currentKey.unicode)
2972 {
2973 utf8_size = WideCharToMultiByte(CP_UTF8, 0, ¤tKey.unicode, 1, &utf8, sizeof(utf8), NULL, NULL);
2974 if (utf8_size == 0 )
2975 return '\0';
2976 ascii = utf8[0];
2977 utf8_next_byte = 1;
2978 } else
2979 ascii = currentKey.ascii;
2980 /*
2981 * On PC's, the extended keys return a 2 byte sequence beginning
2982 * with '00', so if the ascii code is 00, the next byte will be
2983 * the lsb of the scan code.
2984 */
2985 pending_scancode = (ascii == 0x00);
2986 } while (pending_scancode &&
2987 (currentKey.scan == PCK_CAPS_LOCK || currentKey.scan == PCK_NUM_LOCK));
2988
2989 return ascii;
2990 }
2991 #endif
2992
2993 #if MSDOS_COMPILER
2994 /*
2995 */
2996 public void WIN32setcolors(int fg, int bg)
2997 {
2998 SETCOLORS(fg, bg);
2999 }
3000
3001 /*
3002 */
3003 public void WIN32textout(char *text, int len)
3004 {
3005 #if MSDOS_COMPILER==WIN32C
3006 DWORD written;
3007 if (utf_mode == 2)
3008 {
3009 /*
3010 * We've got UTF-8 text in a non-UTF-8 console. Convert it to
3011 * wide and use WriteConsoleW.
3012 */
3013 WCHAR wtext[1024];
3014 len = MultiByteToWideChar(CP_UTF8, 0, text, len, wtext,
3015 sizeof(wtext)/sizeof(*wtext));
3016 WriteConsoleW(con_out, wtext, len, &written, NULL);
3017 } else
3018 WriteConsole(con_out, text, len, &written, NULL);
3019 #else
3020 char c = text[len];
3021 text[len] = '\0';
3022 cputs(text);
3023 text[len] = c;
3024 #endif
3025 }
3026 #endif
3027
3028 R
3029 =/*_____________________________________________________________________________________________ * Copyright (C) 1984-2023 Mark Nudelman______________________________________________________ *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________@04subsearch@00#______________________________________________________________________________________
3030 +6a
3031 = * Copyright (C) 1984-2023 Mark Nudelman______________________________________________________ *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________:#______________________________________________________________________________________________
3032 +6a
3033 = *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________:#______________________________________________________________________________________________
3034 +2f
3035 = *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________/#______________________________________________________________________________________________
3036 +65
3037 = *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________/e#_____________________________________________________________________________________________
3038 +73
3039 = *_____________________________________________________________________________________________ * You may distribute under the terms of either the GNU General Public_________________________ * License or the Less License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which deal with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "less.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________/es#____________________________________________________________________________________________
3040 +a
3041 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________:#______________________________________________________________________________________________
3042 +2f
3043 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________/#______________________________________________________________________________________________
3044 +e
3045 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match /#____________________________________________________________________________________
3046 +17
3047 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match Wrap /#_______________________________________________________________________________
3048 +5
3049 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match EOF-ignore /#_________________________________________________________________________
3050 +5
3051 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match /#____________________________________________________________________________________
3052 +17
3053 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match Wrap /#_______________________________________________________________________________
3054 +5
3055 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match EOF-ignore /#_________________________________________________________________________
3056 +17
3057 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match Wrap /#_______________________________________________________________________________
3058 +5
3059 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match EOF-ignore /#_________________________________________________________________________
3060 +17
3061 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match Wrap /#_______________________________________________________________________________
3062 +17
3063 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match /#____________________________________________________________________________________
3064 +65
3065 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match /e#___________________________________________________________________________________
3066 +73
3067 = * License or the L@04es@00s License, as specified in the README file._______________________________ *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________Non-match /es#__________________________________________________________________________________
3068 +a
3069 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifndef FOREGROUND_BLUE________________________________________________________________________:#______________________________________________________________________________________________
3070 +2f
3071 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifndef FOREGROUND_BLUE________________________________________________________________________/#______________________________________________________________________________________________
3072 +21
3073 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifndef FOREGROUND_BLUE________________________________________________________________________Non-match /#____________________________________________________________________________________
3074 +64
3075 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifndef FOREGROUND_BLUE________________________________________________________________________Non-match /d#___________________________________________________________________________________
3076 +65
3077 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routin@04es@00 which deal with the characteristics of the terminal._______________________________ * Us@04es@00 termcap to be as terminal-independent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#include "l@04es (a] 00s.h"______________________________________________________________________________\#include "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#include "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#include <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#include <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#include <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#include <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#include <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifndef FOREGROUND_BLUE________________________________________________________________________Non-match /de#__________________________________________________________________________________
3078 +a
3079 = *_____________________________________________________________________________________________ * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________:#______________________________________________________________________________________________
3080 +6e
3081 = * For more information, see the README file.__________________________________________________ */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________:#______________________________________________________________________________________________
3082 +6e
3083 = */__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________:#______________________________________________________________________________________________
3084 +6e
3085 =______________________________________________________________________________________________________________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________:#______________________________________________________________________________________________
3086 +6e
3087 =_______________________________________________________________________________________________/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________:#______________________________________________________________________________________________
3088 +6e
3089 =/*_____________________________________________________________________________________________ * Routines which @04de@00al with the characteristics of the terminal._______________________________ * Uses termcap to be as terminal-in@04de@00pendent as possible._____________________________________ */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________:#______________________________________________________________________________________________
3090 +6e
3091 = */___________________________________________________________________________________________________________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________:#______________________________________________________________________________________________
3092 +6e
3093 =_______________________________________________________________________________________________\#inclu@04de@00 "less.h"______________________________________________________________________________\#inclu@04de@00 "cmd.h"______________________________________________________________________________________________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________:#______________________________________________________________________________________________
3094 +6e
3095 =_______________________________________________________________________________________________\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________:#______________________________________________________________________________________________
3096 +6e
3097 =\#if MSDOS_COMPILER_____________________________________________________________________________\#inclu@04de@00 "pckeys.h"____________________________________________________________________________\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else__________________________________________________________________________________________:#______________________________________________________________________________________________
3098 +6e
3099 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________:#______________________________________________________________________________________________
3100 +2f
3101 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/#______________________________________________________________________________________________
3102 +64
3103 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d#_____________________________________________________________________________________________
3104 +1b
3105 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d#_____________________________________________________________________________________________
3106 +4f
3107 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d#_____________________________________________________________________________________________
3108 +41
3109 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/de#____________________________________________________________________________________________
3110 +8
3111 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d#_____________________________________________________________________________________________
3112 +28
3113 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d(#____________________________________________________________________________________________
3114 +65
3115 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d(e#___________________________________________________________________________________________
3116 +29
3117 =\#if MSDOS_COMPILER==MSOFTC_____________________________________________________________________\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________/d(e)#__________________________________________________________________________________________
3118 +a
3119 =\#inclu@04de@00 <graph.h>_____________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC_________________________________________\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________:#______________________________________________________________________________________________
3120 +6e
3121 =\#inclu@04de@00 <conio.h>_____________________________________________________________________________\#if MSDOS_COMPILER==DJGPPC_____________________________________________________________________\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________:#______________________________________________________________________________________________
3122 +6e
3123 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________:#______________________________________________________________________________________________
3124 +2f
3125 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________/#______________________________________________________________________________________________
3126 +21
3127 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________Non-match /#____________________________________________________________________________________
3128 +64
3129 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________Non-match /d#___________________________________________________________________________________
3130 +28
3131 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________Non-match /d(#__________________________________________________________________________________
3132 +65
3133 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________Non-match /d(e#_________________________________________________________________________________
3134 +29
3135 =\#inclu@04de@00 <pc.h>________________________________________________________________________________extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________Non-match /d(e)#________________________________________________________________________________
3136 +a
3137 =extern int fd0;________________________________________________________________________________\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_TERMIO_H______________________________________________________________________________:#______________________________________________________________________________________________
3138 +6e
3139 =\#endif_________________________________________________________________________________________\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_TERMIO_H______________________________________________________________________________\#inclu@04de@00 <termio.h>____________________________________________________________________________:#______________________________________________________________________________________________
3140 +6e
3141 =\#else__________________________________________________________________________________________\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_TERMIO_H______________________________________________________________________________\#inclu@04de@00 <termio.h>____________________________________________________________________________\#else__________________________________________________________________________________________:#______________________________________________________________________________________________
3142 +6e
3143 =\#if MSDOS_COMPILER==WIN32C_____________________________________________________________________\#inclu@04de@00 <windows.h>___________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_TERMIO_H______________________________________________________________________________\#inclu@04de@00 <termio.h>____________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_SGSTAT_H______________________________________________________________________________:#______________________________________________________________________________________________
3144 +6e
3145 =\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#endif_________________________________________________________________________________________\#inclu@04de@00 <time.h>_____________________________________________________________________________________________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_BLUE________________________________________________________________________\#@04de@00fine FOREGROUND_BLUE 0x0001 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_GREEN_______________________________________________________________________\#@04de@00fine FOREGROUND_GREEN 0x0002 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_RED_________________________________________________________________________\#@04de@00fine FOREGROUND_RED 0x0004 _______________________________________________________\#endif_________________________________________________________________________________________\#ifn@04de@00f FOREGROUND_INTENSITY___________________________________________________________________\#@04de@00fine FOREGROUND_INTENSITY 0x0008____________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#else_________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_SYS_IOCTL_H___________________________________________________________________________\#inclu@04de@00 <sys/ioctl.h>_________________________________________________________________________\#endif________________________________________________________________________________________________________________________________________________________________________________________\#if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS_______________________________________________________\#inclu@04de@00 <termios.h>___________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_TERMIO_H______________________________________________________________________________\#inclu@04de@00 <termio.h>____________________________________________________________________________\#else__________________________________________________________________________________________\#if HAVE_SGSTAT_H______________________________________________________________________________\#inclu@04de@00 <sgstat.h>____________________________________________________________________________\#else__________________________________________________________________________________________:#______________________________________________________________________________________________
3146 +71
3147 Q
3148