diff options
Diffstat (limited to 'readline/terminal.c')
-rw-r--r-- | readline/terminal.c | 64 |
1 files changed, 21 insertions, 43 deletions
diff --git a/readline/terminal.c b/readline/terminal.c index 495b87a..8094186 100644 --- a/readline/terminal.c +++ b/readline/terminal.c @@ -51,14 +51,15 @@ /* System-specific feature definitions and include files. */ #include "rldefs.h" +#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ) +# include <sys/ioctl.h> +#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */ + #ifdef __MSDOS__ -# include <pc.h> +# include <pc.h> #endif #include "rltty.h" -#if defined (HAVE_SYS_IOCTL_H) -# include <sys/ioctl.h> /* include for declaration of ioctl */ -#endif #include "tcap.h" /* Some standard library routines. */ @@ -80,14 +81,13 @@ static void _win_get_screensize PARAMS((int *, int *)); static void _emx_get_screensize PARAMS((int *, int *)); #endif -/* If the calling application sets this to a non-zero value, readline will - use the $LINES and $COLUMNS environment variables to set its idea of the - window size before interrogating the kernel. */ -int rl_prefer_env_winsize = 0; +#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay) +#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc) -/* If this is non-zero, readline will set LINES and COLUMNS in the - environment when it handles SIGWINCH. */ -int rl_change_environment = 1; +/* If the calling application sets this to a non-zero value, readline will + use the $LINES and $COLUMNS environment variables to set its idea of the + window size before interrogating the kernel. */ +int rl_prefer_env_winsize = 0; /* **************************************************************** */ /* */ @@ -98,7 +98,7 @@ int rl_change_environment = 1; #ifndef __MSDOS__ static char *term_buffer = (char *)NULL; static char *term_string_buffer = (char *)NULL; -#endif +#endif /* !__MSDOS__ */ static int tcap_initialized; @@ -308,8 +308,7 @@ _rl_get_screen_size (tty, ignore_env) /* If we're being compiled as part of bash, set the environment variables $LINES and $COLUMNS to new values. Otherwise, just do a pair of putenv () or setenv () calls. */ - if (rl_change_environment) - sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth); + sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth); if (_rl_term_autowrap == 0) _rl_screenwidth--; @@ -359,13 +358,7 @@ rl_reset_screen_size () { _rl_get_screen_size (fileno (rl_instream), 0); } - -void -_rl_sigwinch_resize_terminal () -{ - _rl_get_screen_size (fileno (rl_instream), 1); -} - + void rl_resize_terminal () { @@ -567,6 +560,7 @@ _rl_init_terminal_io (terminal_name) term_has_meta = tgetflag ("km") != 0; if (term_has_meta == 0) _rl_term_mm = _rl_term_mo = (char *)NULL; + #endif /* !__MSDOS__ */ /* Attempt to find and bind the arrow keys. Do not override already @@ -700,16 +694,17 @@ rl_ding () default: break; case VISIBLE_BELL: +#ifdef __MSDOS__ + ScreenVisualBell (); + break; +#else if (_rl_visible_bell) { -#ifdef __DJGPP__ - ScreenVisualBell (); -#else tputs (_rl_visible_bell, 1, _rl_output_character_function); -#endif break; } /* FALLTHROUGH */ +#endif case AUDIBLE_BELL: fprintf (stderr, "\007"); fflush (stderr); @@ -726,29 +721,12 @@ rl_ding () /* */ /* **************************************************************** */ -static int enabled_meta = 0; /* flag indicating we enabled meta mode */ - void _rl_enable_meta_key () { #if !defined (__DJGPP__) if (term_has_meta && _rl_term_mm) - { - tputs (_rl_term_mm, 1, _rl_output_character_function); - enabled_meta = 1; - } -#endif -} - -void -_rl_disable_meta_key () -{ -#if !defined (__DJGPP__) - if (term_has_meta && _rl_term_mo && enabled_meta) - { - tputs (_rl_term_mo, 1, _rl_output_character_function); - enabled_meta = 0; - } + tputs (_rl_term_mm, 1, _rl_output_character_function); #endif } |