[ekg2-commit] ekg2: main.c (HEAD) mouse.c (HEAD) mouse.h (HEAD) [peres]

CVS commit cvs w toxygen.net
Nie, 21 Paź 2007, 12:13:09 CEST


Module name:	ekg2
Changes by:	peres	2007-10-21 12:13:07

Modified files:
	main.c mouse.c mouse.h

Log message:
1) get "$TERM" in ncurses init function, and pass it to mouse init
   (more flexible),
2) use "$TERM" to determine window title setting support and method
   (screen uses other than *terms),
3) set window titles based on window targets.

Index: main.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/ncurses/main.c,v
diff -d -u -r1.104 -r1.105
--- main.c	20 Oct 2007 22:01:04 -0000	1.104
+++ main.c	21 Oct 2007 10:13:06 -0000	1.105
@@ -61,6 +61,9 @@
 int ncurses_initialized;
 int ncurses_plugin_destroyed;
 
+const char *ncurses_settitle_formats[3] = { NULL, "\e]0;%s%s%s\b", "\e_%s%s%s\e\\" };
+static int ncurses_settitle = 0;
+
 QUERY(ncurses_password_input); /* old.c */
 void ncurses_window_gone(window_t *w);
 
@@ -164,6 +167,9 @@
 			ncurses_window_gone(w);
 	}
 
+	if (ncurses_settitle)
+		printf(ncurses_settitle_formats[ncurses_settitle], w->target ? w->target : "", w->target ? " - " : "", "EKG2");
+
 	return 0;
 }
 
@@ -589,6 +595,7 @@
 	list_t l;
 	int is_UI = 0;
 	va_list dummy;
+	char *termtype = getenv("TERM");
 
         query_emit_id(NULL, UI_IS_INITIALIZED, &is_UI);
 
@@ -686,7 +693,18 @@
 	ncurses_initialized = 1;
 
 	if (!no_mouse)
-		ncurses_enable_mouse(); 
+		ncurses_enable_mouse(termtype);
+
+	/* determine window title setting support */
+	if (!xstrcasecmp(termtype, "screen"))
+		ncurses_settitle = 2;
+	else if (!xstrncasecmp(termtype, "xterm", 5) || !xstrncasecmp(termtype, "rxvt", 4) || !xstrncasecmp(termtype, "gnome", 5)
+			|| ((*termtype == 'E' || *termtype == 'a' || *termtype == 'k') && !xstrcasecmp(termtype+1, "term")))
+		ncurses_settitle = 1;
+
+	if (ncurses_settitle)
+		printf(ncurses_settitle_formats[ncurses_settitle], "", "", "EKG2");
+
 	return 0;
 }
 

Index: mouse.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/ncurses/mouse.c,v
diff -d -u -r1.31 -r1.32
--- mouse.c	6 Oct 2007 21:14:58 -0000	1.31
+++ mouse.c	21 Oct 2007 10:13:07 -0000	1.32
@@ -302,8 +302,7 @@
  * it should enable mouse support
  * checks if we are in console mode or in xterm
  */
-void ncurses_enable_mouse() {
-	char *env		= getenv("TERM");
+void ncurses_enable_mouse(const char *env) {
 #ifdef HAVE_LIBGPM
 	Gpm_Connect conn;
 

Index: mouse.h
===================================================================
RCS file: /home/cvs/ekg2/plugins/ncurses/mouse.h,v
diff -d -u -r1.9 -r1.10
--- mouse.h	20 Jul 2007 10:56:34 -0000	1.9
+++ mouse.h	21 Oct 2007 10:13:07 -0000	1.10
@@ -20,7 +20,7 @@
 #ifndef __EKG_NCURSES_MOUSE_H
 #define __EKG_NCURSES_MOUSE_H
 
-void ncurses_enable_mouse();
+void ncurses_enable_mouse(const char *env);
 void ncurses_disable_mouse();
 void ncurses_mouse_clicked_handler(int x, int y, int mouse_flag);
 


Więcej informacji o liście dyskusyjnej ekg2-commit