changeset 67935:52bbc53dbce1

(visible_cursor): New boolean var. (set_terminal_modes, tty_show_cursor): Use "vs" or "ve" depending on visible_cursor. (syms_of_term): Export the new var as "visible-cursor".
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 30 Dec 2005 21:48:35 +0000
parents 83b7f7a9b7c9
children 07ec77ecb7b5
files src/ChangeLog src/term.c
diffstat 2 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Dec 30 17:28:30 2005 +0000
+++ b/src/ChangeLog	Fri Dec 30 21:48:35 2005 +0000
@@ -1,3 +1,10 @@
+2005-12-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* term.c (visible_cursor): New boolean var.
+	(set_terminal_modes, tty_show_cursor): Use "vs" or "ve" depending on
+	visible_cursor.
+	(syms_of_term): Export the new var as "visible-cursor".
+
 2005-12-30  Eli Zaretskii  <eliz@gnu.org>
 
 	* .gdbinit: Tell users not to worry about GDB warnings that some
--- a/src/term.c	Fri Dec 30 17:28:30 2005 +0000
+++ b/src/term.c	Fri Dec 30 21:48:35 2005 +0000
@@ -87,6 +87,10 @@
 
 Lisp_Object Vring_bell_function;
 
+/* If true, use "vs", otherwise use "ve" to make the cursor visible.  */
+
+static int visible_cursor;
+
 /* Terminal characteristics that higher levels want to look at.
    These are all extern'd in termchar.h */
 
@@ -460,7 +464,7 @@
 	    putchar ('\n');
 	}
 
-      OUTPUT_IF (TS_cursor_visible);
+      OUTPUT_IF (visible_cursor ? TS_cursor_visible : TS_cursor_normal);
       OUTPUT_IF (TS_keypad_mode);
       losecursor ();
     }
@@ -615,7 +619,8 @@
     {
       tty_cursor_hidden = 0;
       OUTPUT_IF (TS_cursor_normal);
-      OUTPUT_IF (TS_cursor_visible);
+      if (visible_cursor)
+	OUTPUT_IF (TS_cursor_visible);
     }
 }
 
@@ -2726,6 +2731,13 @@
 The function should accept no arguments.  */);
   Vring_bell_function = Qnil;
 
+  DEFVAR_BOOL ("visible-cursor", &visible_cursor,
+	       doc: /* Non-nil means to make the cursor very visible.
+This only has an effect when running in a text terminal.
+What means \"very visible\" is up to your terminal.  It may make the cursor
+bigger, or it may make it blink, or it may do nothing at all.  */);
+  visible_cursor = 1;
+
   defsubr (&Stty_display_color_p);
   defsubr (&Stty_display_color_cells);
   defsubr (&Stty_no_underline);