* readline.c (_rl_output_character_function), display.c:

Return int, not void, to conform with the expected arg of tputs.
	* readline.c (init_terminal_io):  tgetflag only takes 1 arg.
	* readline.c (_rl_savestring):  New function.
	* chardefs.h:  To avoid conflicts and/or warnings, define
	savestring as a macro wrapper for _rl_savestring.
	* display.c (extern term_xn):  It's an int flag, not a string.
	* charsdefs.h, rldefs.h:  Remove HAVE_STRING_H-related junk.
This commit is contained in:
Per Bothner 1994-02-15 22:31:19 +00:00
parent 848743c1b6
commit f550cec5b1
5 changed files with 45 additions and 63 deletions

View File

@ -1,3 +1,14 @@
Tue Feb 15 14:07:08 1994 Per Bothner (bothner@kalessin.cygnus.com)
* readline.c (_rl_output_character_function), display.c:
Return int, not void, to conform with the expected arg of tputs.
* readline.c (init_terminal_io): tgetflag only takes 1 arg.
* readline.c (_rl_savestring): New function.
* chardefs.h: To avoid conflicts and/or warnings, define
savestring as a macro wrapper for _rl_savestring.
* display.c (extern term_xn): It's an int flag, not a string.
* charsdefs.h, rldefs.h: Remove HAVE_STRING_H-related junk.
Sat Feb 5 08:32:30 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* Makefile.in: Remove obsolete rules for history.info and

View File

@ -4,37 +4,9 @@
#include <ctype.h>
#if 0
/* Getting the correct definition of HAVE_STRING_H is harder than just
declaring them ourselves. CYGNUS LOCAL. */
#if defined (HAVE_STRING_H)
# include <string.h>
#else
# include <strings.h>
#endif /* HAVE_STRING_H */
#else /* not 0 */
/* We don't worry about declaring functions where we don't use the return
value (e.g. strcpy) or which return int. */
extern char *strrchr ();
#endif /* not 0 */
#ifndef savestring
#if 0
/* CYGNUS LOCAL--this declaration loses if xmalloc has already been
declared as void *xmalloc (), as in GDB. The whole concept of
readline using xmalloc rather than just returning NULL when it runs
out of memory is questionable, but if we do want xmalloc we need a
better way to declare it (e.g. the client declares it, or the client
calls a rl_register_xmalloc function analagous to the way signal()
works. */
extern char *xmalloc ();
#endif
# ifndef strcpy
extern char *strcpy ();
# endif
#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
#define savestring(X) _rl_savestring(X)
extern char * _rl_savestring ();
#endif
#ifndef whitespace

View File

@ -41,10 +41,10 @@ extern int readline_echoing_p;
extern char *term_clreol, *term_im, *term_ic, *term_ei, *term_DC;
/* Termcap variables. */
extern char *term_up, *term_dc, *term_cr, *term_IC;
extern int screenheight, screenwidth, terminal_can_insert;
extern int screenheight, screenwidth, terminal_can_insert, term_xn;
extern void _rl_output_some_chars ();
extern void _rl_output_character_function ();
extern int _rl_output_character_function ();
extern int _rl_convert_meta_chars_to_ascii;
extern int _rl_horizontal_scroll_mode;
@ -75,11 +75,7 @@ extern char *xmalloc (), *xrealloc ();
update_line and the code that calls it makes a multiple line,
automatically wrapping line update. Carefull attention needs
to be paid to the vertical position variables.
handling of terminals with autowrap on (incl. DEC braindamage)
could be improved a bit. Right now I just cheat and decrement
screenwidth by one. */
to be paid to the vertical position variables. */
/* Keep two buffers; one which reflects the current contents of the
screen, and the other to draw what we think the new contents should
@ -240,7 +236,7 @@ rl_redisplay ()
/* PWP: now is when things get a bit hairy. The visible and invisible
line buffers are really multiple lines, which would wrap every
(screenwidth - 1) characters. Go through each in turn, finding
screenwidth characters. Go through each in turn, finding
the changed region and updating it. The line order is top to bottom. */
/* If we can move the cursor up and down, then use multiple lines,
@ -363,6 +359,15 @@ update_line (old, new, current_line)
register char *ofd, *ols, *oe, *nfd, *nls, *ne;
int lendiff, wsatend;
if (_rl_last_c_pos == screenwidth && term_xn && new[0])
{
putc (new[0], rl_outstream);
_rl_last_c_pos = 1;
_rl_last_v_pos++;
if (old[0])
old[0] = new[0];
}
/* Find first difference. */
for (ofd = old, nfd = new;
(ofd - old < screenwidth) && *ofd && (*ofd == *nfd);

View File

@ -88,7 +88,7 @@ extern int rl_complete_with_tilde_expansion;
/* Forward declarations used in this file. */
void rl_dispatch ();
void free_history_entry ();
void _rl_output_character_function ();
int _rl_output_character_function ();
void _rl_set_screen_size ();
#if !defined (_GO32_)
@ -224,6 +224,8 @@ static int defining_kbd_macro = 0;
emacs_meta_keymap or vi_escape_keymap. */
int _rl_convert_meta_chars_to_ascii = 1;
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
static int doing_an_undo;
/* **************************************************************** */
@ -1235,7 +1237,7 @@ init_terminal_io (terminal_name)
screenwidth = screenheight = 0;
term_xn = tgetflag ("am", &buffer) && tgetflag ("xn", &buffer);
term_xn = tgetflag ("am") && tgetflag ("xn");
_rl_set_screen_size (tty, 0);
@ -1319,11 +1321,11 @@ init_terminal_io (terminal_name)
}
/* A function for the use of tputs () */
void
int
_rl_output_character_function (c)
int c;
{
putc (c, out_stream);
return putc (c, out_stream);
}
/* Write COUNT characters from STRING to the output stream. */
@ -2277,10 +2279,6 @@ rl_transpose_chars (count)
/* */
/* **************************************************************** */
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
static int doing_an_undo = 0;
/* The current undo list for THE_LINE. */
UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
@ -3063,6 +3061,15 @@ rl_getc (stream)
}
}
char *
_rl_savestring (str)
char *str;
{
char *copy = (char*) xmalloc (strlen (str) + 1);
strcpy (copy, str);
return copy;
}
#if defined (STATIC_MALLOC)
/* **************************************************************** */

View File

@ -49,13 +49,15 @@
#endif /* __linux__ */
/* Some USG machines have BSD signal handling (sigblock, sigsetmask, etc.) */
#if defined (USG) && !defined (hpux)
/* CYGNUS LOCAL accept __hpux as well as hpux for HP compiler in ANSI mode. */
#if defined (USG) && !(defined (hpux) || defined (__hpux))
# undef HAVE_BSD_SIGNALS
#endif
/* System V machines use termio. */
#if !defined (_POSIX_VERSION)
# if defined (USG) || defined (hpux) || defined (Xenix) || defined (sgi) || defined (DGUX)
/* CYGNUS LOCAL accept __hpux as well as hpux for HP compiler in ANSI mode. */
# if defined (USG) || defined (hpux) || defined (__hpux) || defined (Xenix) || defined (sgi) || defined (DGUX)
# undef NEW_TTY_DRIVER
# define TERMIO_TTY_DRIVER
# include <termio.h>
@ -150,21 +152,6 @@
#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
#endif
/* Decide which flavor of the header file describing the C library
string functions to include and include it. */
#if defined (USG) || defined (NeXT)
# if !defined (HAVE_STRING_H)
# define HAVE_STRING_H
# endif /* !HAVE_STRING_H */
#endif /* USG || NeXT */
#if defined (HAVE_STRING_H)
# include <string.h>
#else /* !HAVE_STRING_H */
# include <strings.h>
#endif /* !HAVE_STRING_H */
#if !defined (strchr) && !defined (__STDC__)
extern char *strchr (), *strrchr ();
#endif /* !strchr && !__STDC__ */