diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-03-15 18:33:31 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-03-15 18:33:31 +0000 |
commit | d2f5a95a9b6212c7f6ba462131b9d3e6aec94db5 (patch) | |
tree | be32bbac734f3ab34bb1f0dd46f83ba1dc9426cc | |
parent | [w3m-dev 03132] Re: Reload image (diff) | |
download | w3m-d2f5a95a9b6212c7f6ba462131b9d3e6aec94db5.tar.gz w3m-d2f5a95a9b6212c7f6ba462131b9d3e6aec94db5.zip |
-title support
modified [w3m-dev-en 00710] contrib: unofficial "xterm title" patch, updated for w3m-0.3
by Moritz Barsnick <barsnick@gmx.net>
* NEWS: -title
* fm.h (displayTitleTerm): added
* proto.h (term_title): added
* main.c (fusage): add -title
(MAIN): add -title
(quitfm): term_title("")
* display.c (displayBuffer): term_title()
* terms.c (title_str): added
(TERM_INFO): added
(term_info): modified from mouse_term_info
(term_info_list): modified from xterm_mouse_term
add "screen"
(set_tty): check displayTitleTerm
(term_title): added
From: Fumitoshi UKAI <ukai@debian.or.jp>
-rw-r--r-- | ChangeLog | 22 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | display.c | 3 | ||||
-rw-r--r-- | fm.h | 3 | ||||
-rw-r--r-- | main.c | 8 | ||||
-rw-r--r-- | proto.h | 3 | ||||
-rw-r--r-- | terms.c | 64 |
7 files changed, 83 insertions, 21 deletions
@@ -1,3 +1,23 @@ +2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * -title support + modified [w3m-dev-en 00710] contrib: unofficial "xterm title" patch, updated for w3m-0.3 + by Moritz Barsnick <barsnick@gmx.net> + * NEWS: -title + * fm.h (displayTitleTerm): added + * proto.h (term_title): added + * main.c (fusage): add -title + (MAIN): add -title + (quitfm): term_title("") + * display.c (displayBuffer): term_title() + * terms.c (title_str): added + (TERM_INFO): added + (term_info): modified from mouse_term_info + (term_info_list): modified from xterm_mouse_term + add "screen" + (set_tty): check displayTitleTerm + (term_title): added + 2002-03-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> * [w3m-dev 03132] Re: Reload image @@ -3207,4 +3227,4 @@ * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.353 2002/03/15 16:35:46 ukai Exp $ +$Id: ChangeLog,v 1.354 2002/03/15 18:33:31 ukai Exp $ @@ -1,5 +1,6 @@ w3m 0.4? +* -title option: set buffer name to terminal title * X-Face support: USE_XFACE, require uncompface ---------------------------------------------------------------- @@ -1,4 +1,4 @@ -/* $Id: display.c,v 1.21 2002/03/10 15:55:15 ukai Exp $ */ +/* $Id: display.c,v 1.22 2002/03/15 18:33:32 ukai Exp $ */ #include <signal.h> #include "fm.h" @@ -383,6 +383,7 @@ displayBuffer(Buffer *buf, int mode) standout(); message(msg->ptr, buf->cursorX + buf->rootX, buf->cursorY); standend(); + term_title(buf->buffername); refresh(); #ifdef USE_IMAGE if (activeImage && displayImage && buf->img) { @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.55 2002/03/14 16:12:07 ukai Exp $ */ +/* $Id: fm.h,v 1.56 2002/03/15 18:33:32 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -816,6 +816,7 @@ global int label_topline init(FALSE); #ifdef NEXTPAGE_TOPLINE global int nextpage_topline init(FALSE); #endif +global char *displayTitleTerm init(NULL); global int displayLink init(FALSE); global int retryAsHttp init(TRUE); global int showLineNum init(FALSE); @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.88 2002/03/15 16:35:46 ukai Exp $ */ +/* $Id: main.c,v 1.89 2002/03/15 18:33:32 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include <signal.h> @@ -230,6 +230,7 @@ fusage(FILE * f, int err) #endif fprintf(f, " -W toggle wrap search mode\n"); fprintf(f, " -X don't use termcap init/deinit\n"); + fprintf(f, " -title[=TERM] set buffer name to terminal title string\n"); fprintf(f, " -o opt=value assign value to config option\n"); fprintf(f, " -config file specify config file\n"); fprintf(f, " -help print this usage message\n"); @@ -659,6 +660,10 @@ MAIN(int argc, char **argv, char **envp) squeezeBlankLine = TRUE; else if (!strcmp("-X", argv[i])) Do_not_use_ti_te = TRUE; + else if (!strcmp("-title", argv[i])) + displayTitleTerm = getenv("TERM"); + else if (!strncmp("-title=", argv[i], 7)) + displayTitleTerm = argv[i]+7; else if (!strcmp("-o", argv[i])) { if (++i >= argc || !strcmp(argv[i], "?")) { show_params_p = 1; @@ -2168,6 +2173,7 @@ qquitfm(void) void quitfm(void) { + term_title(""); /* XXX */ #ifdef USE_IMAGE if (activeImage) termImage(); @@ -1,4 +1,4 @@ -/* $Id: proto.h,v 1.38 2002/03/14 15:41:54 ukai Exp $ */ +/* $Id: proto.h,v 1.39 2002/03/15 18:33:32 ukai Exp $ */ /* * This file was automatically generated by version 1.7 of cextract. * Manual editing not recommended. @@ -416,6 +416,7 @@ extern void term_noecho(void); extern void term_raw(void); extern void term_cooked(void); extern void term_cbreak(void); +extern void term_title(char *s); extern void flush_tty(void); extern void toggle_stand(void); extern char getch(void); @@ -1,4 +1,4 @@ -/* $Id: terms.c,v 1.28 2002/01/31 17:54:56 ukai Exp $ */ +/* $Id: terms.c,v 1.29 2002/03/15 18:33:32 ukai Exp $ */ /* * An original curses library for EUC-kanji by Akinori ITO, December 1989 * revised by Akinori ITO, January 1995 @@ -42,6 +42,8 @@ void mouse_init(), mouse_end(); int mouseActive = 0; #endif /* USE_MOUSE */ +static char *title_str = NULL; + static int tty; #include "terms.h" @@ -474,22 +476,34 @@ writestr(char *s) #define MOVE(line,column) writestr(tgoto(T_cm,column,line)); #ifdef USE_MOUSE -static struct mouse_term_info { +#define TERM_INFO(name, title, mouse) name, title, mouse +#else +#define TERM_INFO(name, title, mouse) name, title +#endif + +#define XTERM_TITLE "\033]0;w3m: %s\007" +#define SCREEN_TITLE "\033k%s\033\134" + +static struct term_info { char *term; - int flag; -} xterm_mouse_term[] = { - { - "xterm", NEED_XTERM_ON | NEED_XTERM_OFF}, { - "kterm", NEED_XTERM_ON | NEED_XTERM_OFF}, { - "rxvt", NEED_XTERM_ON | NEED_XTERM_OFF}, + char *title_str; +#ifdef USE_MOUSE + int mouse_flag; +#endif +} term_info_list[] = { + /* *INDENT-OFF* */ + {TERM_INFO("xterm", XTERM_TITLE, (NEED_XTERM_ON|NEED_XTERM_OFF))}, + {TERM_INFO("kterm", XTERM_TITLE, (NEED_XTERM_ON|NEED_XTERM_OFF))}, + {TERM_INFO("rxvt", XTERM_TITLE, (NEED_XTERM_ON|NEED_XTERM_OFF))}, + {TERM_INFO("Eterm", XTERM_TITLE, (NEED_XTERM_ON|NEED_XTERM_OFF))}, + {TERM_INFO("screen", SCREEN_TITLE, 0)}, #ifdef __CYGWIN__ - { - "cygwin", NEED_XTERM_ON}, + {TERM_INFO("cygwin", NULL, NEED_XTERM_ON)}, #endif - { - NULL, 0} + {TERM_INFO(NULL, NULL, 0)} + /* *INDENT-ON * */ }; -#endif +#undef TERM_INFO int set_tty(void) @@ -510,13 +524,22 @@ set_tty(void) init_win32_console_handle(); #endif TerminalGet(tty, &d_ioval); + if (displayTitleTerm != NULL) { + struct term_info *p; + for (p = term_info_list; p->term != NULL; p++) { + if (!strncmp(displayTitleTerm, p->term, strlen(p->term))) { + title_str = p->title_str; + break; + } + } + } #ifdef USE_MOUSE { char *term = getenv("TERM"); - struct mouse_term_info *p; - for (p = xterm_mouse_term; p->term != NULL; p++) { + struct term_info *p; + for (p = term_info_list; p->term != NULL; p++) { if (!strncmp(term, p->term, strlen(p->term))) { - is_xterm = p->flag; + is_xterm = p->mouse_flag; break; } } @@ -1837,6 +1860,15 @@ term_cbreak(void) term_noecho(); } +void +term_title(char *s) +{ + if (!fmInitialized) + return; + if (title_str != NULL) + fprintf(stderr, title_str, s); +} + char getch(void) { |