Commit | Line | Data |
---|---|---|
d427b66a JB |
1 | /* Interface from Emacs to terminfo. |
2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of GNU Emacs. | |
5 | ||
6 | GNU Emacs is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
fc91b8cb | 8 | the Free Software Foundation; either version 2, or (at your option) |
d427b66a JB |
9 | any later version. |
10 | ||
11 | GNU Emacs is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with GNU Emacs; see the file COPYING. If not, write to | |
3b7ad313 EN |
18 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 | Boston, MA 02111-1307, USA. */ | |
d427b66a | 20 | |
d676eef3 | 21 | #include <config.h> |
495de6e9 | 22 | #include "lisp.h" |
d676eef3 | 23 | |
d427b66a JB |
24 | /* Define these variables that serve as global parameters to termcap, |
25 | so that we do not need to conditionalize the places in Emacs | |
26 | that set them. */ | |
27 | ||
28 | char *UP, *BC, PC; | |
d676eef3 | 29 | |
f0d21750 GM |
30 | #ifdef HAVE_SPEED_T |
31 | #include <termios.h> | |
dd432f16 | 32 | speed_t ospeed; |
f0d21750 | 33 | #else |
ba5971b3 RS |
34 | #if defined (HAVE_LIBNCURSES) && ! defined (NCURSES_OSPEED_T) |
35 | short ospeed; | |
36 | #else | |
515b04d0 | 37 | #if defined (HAVE_TERMIOS_H) && defined (LINUX) |
d676eef3 | 38 | #include <termios.h> |
825e7e55 RS |
39 | /* HJL's version of libc is said to need this on the Alpha. |
40 | On the other hand, DEC OSF1 on the Alpha needs ospeed to be a short. */ | |
d676eef3 RS |
41 | speed_t ospeed; |
42 | #else | |
9f80a1c8 | 43 | short ospeed; |
d676eef3 | 44 | #endif |
ba5971b3 | 45 | #endif |
f0d21750 | 46 | #endif |
d427b66a | 47 | |
d427b66a JB |
48 | /* Interface to curses/terminfo library. |
49 | Turns out that all of the terminfo-level routines look | |
50 | like their termcap counterparts except for tparm, which replaces | |
51 | tgoto. Not only is the calling sequence different, but the string | |
52 | format is different too. | |
53 | */ | |
54 | ||
55 | char * | |
56 | tparam (string, outstring, len, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) | |
57 | char *string; | |
58 | char *outstring; | |
59 | int arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9; | |
60 | { | |
61 | char *temp; | |
62 | extern char *tparm(); | |
63 | ||
64 | temp = tparm (string, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); | |
65 | if (outstring == 0) | |
495de6e9 | 66 | outstring = ((char *) (xmalloc ((strlen (temp)) + 1))); |
d427b66a JB |
67 | strcpy (outstring, temp); |
68 | return outstring; | |
69 | } |