[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