* readline.c, display.c: Patches to allow use of all 80
authorPer Bothner <per@bothner.com>
Sun, 16 Jan 1994 04:04:13 +0000 (04:04 +0000)
committerPer Bothner <per@bothner.com>
Sun, 16 Jan 1994 04:04:13 +0000 (04:04 +0000)
columns on most terminals (those with am and xn).

readline/ChangeLog
readline/readline.c

index 1aa1e98..48ed69d 100644 (file)
@@ -1,5 +1,8 @@
 Sat Jan 15 19:36:12 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
+       * readline.c, display.c:  Patches to allow use of all 80
+       columns on most terminals (those with am and xn).
+
        Merge in changes from bash-1.13.  The most obvious one is
        that the file readline.c has been split into multiple files.
        * bind.c, complete.c, dispay.c, isearch.c, parens.c, rldefs.h,
index 7e5a820..00af9d6 100644 (file)
@@ -1064,6 +1064,9 @@ char *term_forward_char;
 /* How to go up a line. */
 char *term_up;
 
+/* True if we have funny auto-line-wrap ("am" and "xn"). */
+int term_xn;
+
 /* A visible bell, if the terminal can be made to flash the screen. */
 char *visible_bell;
 
@@ -1146,7 +1149,10 @@ _rl_set_screen_size (tty, ignore_env)
   set_lines_and_columns (screenheight, screenwidth);
 #endif
 
-  screenwidth--;
+  /* If we don't have xn (most modern terminals do),
+     don't use the last column. */
+  if (!term_xn)
+    screenwidth--;
 }
 
 init_terminal_io (terminal_name)
@@ -1169,7 +1175,7 @@ init_terminal_io (terminal_name)
 #if defined (HACK_TERMCAP_MOTION)
   term_forward_char = (char *)NULL;
 #endif
-  terminal_can_insert = 0;
+  terminal_can_insert = term_xn = 0;
   return;
 #else /* !__GO32__ */
   char *term, *buffer;
@@ -1202,7 +1208,7 @@ init_terminal_io (terminal_name)
 #if defined (HACK_TERMCAP_MOTION)
       term_forward_char = (char *)NULL;
 #endif
-      terminal_can_insert = 0;
+      terminal_can_insert = term_xn = 0;
       return;
     }
 
@@ -1229,6 +1235,8 @@ init_terminal_io (terminal_name)
 
   screenwidth = screenheight = 0;
 
+  term_xn = tgetflag ("am", &buffer) && tgetflag ("xn", &buffer);
+
   _rl_set_screen_size (tty, 0);
 
   term_im = tgetstr ("im", &buffer);