changeset 25258:8eefac3ecebf

(line_number_display_limit_width): New var. (decode_mode_spec): Use it instead of hardcoded value. (syms_of_xdisp): Defvar it.
author Karl Heuer <kwzh@gnu.org>
date Sat, 14 Aug 1999 03:13:35 +0000
parents 0be923a80096
children 9f7a9dceb11b
files src/xdisp.c
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Sat Aug 14 02:30:27 1999 +0000
+++ b/src/xdisp.c	Sat Aug 14 03:13:35 1999 +0000
@@ -488,6 +488,10 @@
 
 static int line_number_display_limit;
 
+/* line width to consider when repostioning for line number display */
+
+static int line_number_display_limit_width;
+
 /* Number of lines to keep in the message log buffer.  t means
    infinite.  nil means don't log at all.  */
 
@@ -11346,7 +11350,7 @@
 	    int limit = BUF_BEGV (b);
 	    int limit_byte = BUF_BEGV_BYTE (b);
 	    int position;
-	    int distance = (height * 2 + 30) * 200;
+	    int distance = (height * 2 + 30) * line_number_display_limit_width;
 
 	    if (startpos - distance > limit)
 	      {
@@ -11359,7 +11363,7 @@
 					  - (height * 2 + 30),
 					  &position);
 	    /* If we couldn't find the lines we wanted within 
-	       200 chars per line,
+	       line_number_display_limit_width chars per line,
 	       give up on line numbers for this window.  */
 	    if (position == limit_byte && limit == startpos - distance)
 	      {
@@ -12042,6 +12046,12 @@
 in the mode line.");
   line_number_display_limit = 1000000;
 
+  DEFVAR_INT ("line-number-display-limit-width", &line_number_display_limit_width,
+    "*Maximum line width (in characters) for line number display.\n\
+If the average length of the lines near point is bigger than this, then the\n\
+line number may be omitted from the mode line.");
+  line_number_display_limit_width = 200;
+
   DEFVAR_BOOL ("highlight-nonselected-windows", &highlight_nonselected_windows,
     "*Non-nil means highlight region even in nonselected windows.");
   highlight_nonselected_windows = 0;