From a69adb5cfc49099de39dc06a1320a908b5321a47 Mon Sep 17 00:00:00 2001 From: CSRG Date: Mon, 7 Jan 1991 19:09:10 -0800 Subject: [PATCH] BSD 4_4_Lite1 development Work on file usr/src/contrib/emacs-18.57/src/termchar.h Work on file usr/src/contrib/emacs-18.57/src/termhooks.h Work on file usr/src/contrib/emacs-18.57/src/terminfo.c Work on file usr/src/contrib/emacs-18.57/src/termopts.h Synthesized-from: CSRG/cd2/4.4BSD-Lite1 --- usr/src/contrib/emacs-18.57/src/termchar.h | 48 +++++++++++++++++++ usr/src/contrib/emacs-18.57/src/termhooks.h | 53 +++++++++++++++++++++ usr/src/contrib/emacs-18.57/src/terminfo.c | 50 +++++++++++++++++++ usr/src/contrib/emacs-18.57/src/termopts.h | 47 ++++++++++++++++++ 4 files changed, 198 insertions(+) create mode 100644 usr/src/contrib/emacs-18.57/src/termchar.h create mode 100644 usr/src/contrib/emacs-18.57/src/termhooks.h create mode 100644 usr/src/contrib/emacs-18.57/src/terminfo.c create mode 100644 usr/src/contrib/emacs-18.57/src/termopts.h diff --git a/usr/src/contrib/emacs-18.57/src/termchar.h b/usr/src/contrib/emacs-18.57/src/termchar.h new file mode 100644 index 0000000000..8125ca2715 --- /dev/null +++ b/usr/src/contrib/emacs-18.57/src/termchar.h @@ -0,0 +1,48 @@ +/* Flags and parameters describing terminal's characteristics. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +extern int baud_rate; /* Output speed in baud */ +extern int screen_width; /* Number of usable columns */ +extern int screen_height; /* Number of lines */ +extern int must_write_spaces; /* Nonzero means spaces in the text + must actually be output; can't just skip + over some columns to leave them blank. */ +extern int min_padding_speed; /* Speed below which no padding necessary */ +extern int fast_clear_end_of_line; /* Nonzero means terminal has command for this */ + +extern int line_ins_del_ok; /* Terminal can insert and delete lines */ +extern int char_ins_del_ok; /* Terminal can insert and delete chars */ +extern int scroll_region_ok; /* Terminal supports setting the scroll window */ +extern int memory_below_screen; /* Terminal remembers lines scrolled off bottom */ +extern int fast_clear_end_of_line; /* Terminal has a `ce' string */ + +extern int dont_calculate_costs; /* Nonzero means don't bother computing */ + /* various cost tables; we won't use them. */ + +/* Nonzero means no need to redraw the entire screen on resuming + a suspended Emacs. This is useful on terminals with multiple pages, + where one page is used for Emacs and another for all else. */ +extern int no_redraw_on_reenter; + +/* DCICcost[n] is cost of inserting N characters. + DCICcost[-n] is cost of deleting N characters. */ + +#define DCICcost (&DC_ICcost[screen_width]) +extern int *DC_ICcost; diff --git a/usr/src/contrib/emacs-18.57/src/termhooks.h b/usr/src/contrib/emacs-18.57/src/termhooks.h new file mode 100644 index 0000000000..bec2c3aa11 --- /dev/null +++ b/usr/src/contrib/emacs-18.57/src/termhooks.h @@ -0,0 +1,53 @@ +/* Hooks by which low level terminal operations + can be made to call other routines. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +extern int (*move_cursor_hook) (); +extern int (*raw_move_cursor_hook) (); + +extern int (*clear_to_end_hook) (); +extern int (*clear_screen_hook) (); +extern int (*clear_end_of_line_hook) (); + +extern int (*ins_del_lines_hook) (); + +extern int (*change_line_highlight_hook) (); +extern int (*reassert_line_highlight_hook) (); + +extern int (*insert_chars_hook) (); +extern int (*output_chars_hook) (); +extern int (*delete_chars_hook) (); + +extern int (*ring_bell_hook) (); + +extern int (*reset_terminal_modes_hook) (); +extern int (*set_terminal_modes_hook) (); +extern int (*update_begin_hook) (); +extern int (*update_end_hook) (); +extern int (*set_terminal_window_hook) (); + +extern int (*read_socket_hook) (); +extern int (*fix_screen_hook) (); +extern int (*calculate_costs_hook) (); + +/* If nonzero, send all terminal output characters to this stream also. */ + +extern FILE *termscript; + diff --git a/usr/src/contrib/emacs-18.57/src/terminfo.c b/usr/src/contrib/emacs-18.57/src/terminfo.c new file mode 100644 index 0000000000..af057133e5 --- /dev/null +++ b/usr/src/contrib/emacs-18.57/src/terminfo.c @@ -0,0 +1,50 @@ +/* Interface from Emacs to terminfo. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Define these variables that serve as global parameters to termcap, + so that we do not need to conditionalize the places in Emacs + that set them. */ + +char *UP, *BC, PC; +short ospeed; + +static buffer[512]; + +/* Interface to curses/terminfo library. + Turns out that all of the terminfo-level routines look + like their termcap counterparts except for tparm, which replaces + tgoto. Not only is the calling sequence different, but the string + format is different too. +*/ + +char * +tparam (string, outstring, len, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) + char *string; + char *outstring; + int arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9; +{ + char *temp; + extern char *tparm(); + + temp = tparm (string, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); + if (outstring == 0) + outstring = ((char *) (malloc ((strlen (temp)) + 1))); + strcpy (outstring, temp); + return outstring; +} diff --git a/usr/src/contrib/emacs-18.57/src/termopts.h b/usr/src/contrib/emacs-18.57/src/termopts.h new file mode 100644 index 0000000000..6237baaee0 --- /dev/null +++ b/usr/src/contrib/emacs-18.57/src/termopts.h @@ -0,0 +1,47 @@ +/* Flags and paramaters describing user options for handling the terminal. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* Nonzero means flash the screen instead of ringing the bell. */ + +extern int visible_bell; + +/* Nonzero means invert white and black for the entire screen. */ + +extern int inverse_video; + +/* Nonzero means use ^S/^Q as cretinous flow control. */ + +extern int flow_control; + +/* Nonzero means use interrupt-driven input. */ + +extern int interrupt_input; + +/* Nonzero while interrupts are temporarily deferred during redisplay. */ + +extern int interrupts_deferred; + +/* Nonzero if terminal has a meta key. */ + +extern int meta_key; + +/* Nonzero means truncate lines in all windows less wide than the screen */ + +extern int truncate_partial_width_windows; -- 2.20.1