diff options
-rw-r--r-- | ChangeLog | 27 | ||||
-rw-r--r-- | terms.c | 44 | ||||
-rw-r--r-- | terms.h | 18 |
3 files changed, 63 insertions, 26 deletions
@@ -1,3 +1,28 @@ +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03434] Re: cygwin console on Win9X + * terms.c (cygwin_mouse_btn_swapped): ifdef USE_MOUSE + (lastConMouse): deleted + (check_win9x): static + (read_win32_console): static + (GetConsoleHwnd): static + (cygwin_version): ifdef USE_MOUSE, static + (check_cygwin_console): static + (NEED_XTERM_ON): added + (NEED_XTERM_OFF): added + (NEED_CYGWIN_ON): added + (NEED_CYGWIN_OFF): added + (XTERM_TITLE): static char[] + (SCREEN_TITLE): static char[] + (CYGWIN_TITLE): static char[] + (term_title): check title_str + * terms.h (LASTLINE): added + (is_xterm): deleted + (enable_win9x_console_input): extern + (disable_win9x_console_input): extern + (NEED_XTERM_ON): deleted + (NEED_XTERM_OFF): deleted + 2002-11-16 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> * [w3m-dev 03433] cygwin console on Win9X @@ -4726,4 +4751,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.517 2002/11/15 15:36:48 ukai Exp $ +$Id: ChangeLog,v 1.518 2002/11/15 15:44:36 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: terms.c,v 1.36 2002/11/15 15:37:33 ukai Exp $ */ +/* $Id: terms.c,v 1.37 2002/11/15 15:44:36 ukai Exp $ */ /* * An original curses library for EUC-kanji by Akinori ITO, December 1989 * revised by Akinori ITO, January 1995 @@ -61,18 +61,17 @@ extern int CodePage; #include <sys/cygwin.h> static int isWinConsole = 0; static int isLocalConsole = 0; +#ifdef USE_MOUSE int cygwin_mouse_btn_swapped = 0; +#endif #if defined(SUPPORT_WIN9X_CONSOLE_MBCS) static HANDLE hConIn = INVALID_HANDLE_VALUE; -static int isWin95; +static int isWin95 = 0; static char *ConInV; static int iConIn, nConIn, nConInMax; -#ifdef USE_MOUSE -static MOUSE_EVENT_RECORD lastConMouse; -#endif -void +static void check_win9x(void) { OSVERSIONINFO winVersionInfo; @@ -155,7 +154,7 @@ read_win32_console_input(void) return 0; } -int +static int read_win32_console(char *s, int n) { KEY_EVENT_RECORD *ker; @@ -187,7 +186,7 @@ read_win32_console(char *s, int n) #endif /* SUPPORT_WIN9X_CONSOLE_MBCS */ -HWND +static HWND GetConsoleHwnd(void) { #define MY_BUFSIZE 1024 @@ -205,7 +204,8 @@ GetConsoleHwnd(void) return (hwndFound); } -unsigned long +#ifdef USE_MOUSE +static unsigned long cygwin_version(void) { struct per_process *p; @@ -216,8 +216,9 @@ cygwin_version(void) } return 0; } +#endif -void +static void check_cygwin_console(void) { char *term = getenv("TERM"); @@ -237,10 +238,12 @@ check_cygwin_console(void) check_win9x(); #endif } +#ifdef USE_MOUSE if (cygwin_version() <= 1003015) { /* cygwin DLL 1.3.15 or earler */ cygwin_mouse_btn_swapped = 1; } +#endif } #endif /* __CYGWIN__ */ @@ -414,12 +417,21 @@ writestr(char *s) #ifdef USE_MOUSE #define W3M_TERM_INFO(name, title, mouse) name, title, mouse +#define NEED_XTERM_ON (1) +#define NEED_XTERM_OFF (1<<1) +#ifdef __CYGWIN__ +#define NEED_CYGWIN_ON (1<<2) +#define NEED_CYGWIN_OFF (1<<3) +#endif #else #define W3M_TERM_INFO(name, title, mouse) name, title #endif -#define XTERM_TITLE "\033]0;w3m: %s\007" -#define SCREEN_TITLE "\033k%s\033\134" +static char XTERM_TITLE[] = "\033]0;w3m: %s\007"; +static char SCREEN_TITLE[] = "\033k%s\033\134"; +#ifdef __CYGWIN__ +static char CYGWIN_TITLE[] = "w3m: %s"; +#endif /* *INDENT-OFF* */ static struct w3m_term_info { @@ -436,7 +448,7 @@ static struct w3m_term_info { {W3M_TERM_INFO("mlterm", XTERM_TITLE, (NEED_XTERM_ON|NEED_XTERM_OFF))}, {W3M_TERM_INFO("screen", SCREEN_TITLE, 0)}, #ifdef __CYGWIN__ - {W3M_TERM_INFO("cygwin", XTERM_TITLE, (NEED_CYGWIN_ON|NEED_CYGWIN_OFF))}, + {W3M_TERM_INFO("cygwin", CYGWIN_TITLE, (NEED_CYGWIN_ON|NEED_CYGWIN_OFF))}, #endif {W3M_TERM_INFO(NULL, NULL, 0)} }; @@ -1811,12 +1823,12 @@ term_title(char *s) return; if (title_str != NULL) { #ifdef __CYGWIN__ - if (isLocalConsole) { + if (isLocalConsole && title_str == CYGWIN_TITLE) { char buff[1024]; - snprintf(buff, sizeof(buff), "w3m: %s", s); + snprintf(buff, sizeof(buff), title_str, s); SetConsoleTitle(buff); } - else if (!isWinConsole) + else if (isLocalConsole || !isWinConsole) #endif fprintf(ttyf, title_str, s); } @@ -1,8 +1,11 @@ -/* $Id: terms.h,v 1.7 2002/11/15 15:36:48 ukai Exp $ */ +/* $Id: terms.h,v 1.8 2002/11/15 15:44:36 ukai Exp $ */ #ifndef TERMS_H #define TERMS_H extern int LINES, COLS; +#if defined(__CYGWIN__) && LANG == JA +extern int LASTLINE; +#endif #define CODE_ASCII '\0' #define CODE_EUC 'E' @@ -37,19 +40,16 @@ extern int LINES, COLS; #define MOUSE_BTN5_DOWN_XTERM 65 #define MOUSE_BTN_UP 3 #define MOUSE_BTN_RESET -1 +#endif #ifdef __CYGWIN__ -extern int is_xterm; +#ifdef USE_MOUSE extern int cygwin_mouse_btn_swapped; -#ifdef SUPPORT_WIN9X_CONSOLE_MBCS -void enable_win9x_console_input(void); -void disable_win9x_console_input(void); #endif -#define NEED_CYGWIN_ON (1<<2) -#define NEED_CYGWIN_OFF (1<<3) +#ifdef SUPPORT_WIN9X_CONSOLE_MBCS +extern void enable_win9x_console_input(void); +extern void disable_win9x_console_input(void); #endif -#define NEED_XTERM_ON (1) -#define NEED_XTERM_OFF (1<<1) #endif #endif /* not TERMS_H */ |