w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

commit 099063cb08f3a7fcc52134ec132c93b5096571a4
parent 2eb4931742974b81bd37aaadc350fec147c9f34c
Author: ukai <ukai>
Date:   Fri, 23 Nov 2001 20:50:59 +0000

add emacs_like_lineedit

Diffstat:
MChangeLog | 7+++++++
Mfm.h | 3+++
Mlinein.c | 68++++++++++++++++++++++++++++++++++++++++----------------------------
Mrc.c | 9+++++++++
4 files changed, 59 insertions(+), 28 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,5 +1,12 @@ 2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp + * fm.h (emacs_like_lineedit): runtime option emacs_like_lineedit + * linein.c (inputLineHist): ditto + * linein.c (_esc): ditto + * linein.c (next_dcompl): ditto + * rc.c (CMT_EMACS_LIKE_LINEEDIT): ditto + * rc.c (params3): ditto + * fm.h (ftppass_hostnamegen): runtime option ftppass_hostnamegen * ftp.c (FtpLogin): ditto * rc.c (CMT_FTPPASS_HOSTNAMEGEN): ditto diff --git a/fm.h b/fm.h @@ -703,6 +703,9 @@ global int useVisitedColor init(FALSE); global int visited_color init(5); /* magenta */ #endif /* USE_COLOR */ global int confirm_on_quit init(TRUE); +#ifdef EMACS_LIKE_LINEEDIT +global int emacs_like_lineedit init(FALSE); +#endif global int displayLink init(FALSE); global int retryAsHttp init(TRUE); global int showLineNum init(FALSE); diff --git a/linein.c b/linein.c @@ -37,10 +37,7 @@ static void insertself(char c), _mvB(void), _mvE(void), _enter(void), _quo(void), _bs(void), _bsw(void), killn(void), killb(void), _inbrk(void), _esc(void), _prev(void), _next(void), _compl(void), _tcompl(void), - _dcompl(void), _rdcompl(void); -#ifndef EMACS_LIKE_LINEEDIT -static void _rcompl(void); -#endif + _dcompl(void), _rdcompl(void), _rcompl(void); #ifdef __EMX__ static int getcntrl(void); #endif @@ -191,22 +188,27 @@ inputLineHist(char *prompt, char *def_str, int flag, Hist * hist) (((cm_mode & CPL_ALWAYS) && (c == CTRL_I || c == ' ')) || ((cm_mode & CPL_ON) && (c == CTRL_I)))) { #ifdef EMACS_LIKE_LINEEDIT - if (cm_next) { - _dcompl(); - need_redraw = TRUE; - } - else { - _compl(); - cm_disp_next = -1; - } -#else - _compl(); - cm_disp_next = -1; + if (emacs_like_lineedit && cm_next) { + _dcompl(); + need_redraw = TRUE; + } + else { +#endif + _compl(); + cm_disp_next = -1; +#ifdef EMACS_LIKE_LINEEDIT + } +#endif } else if (!i_quote && CLen == CPos && (cm_mode & CPL_ALWAYS || cm_mode & CPL_ON) && c == CTRL_D) { - _dcompl(); - need_redraw = TRUE; +#ifdef EMACS_LIKE_LINEEDIT + if (! emacs_like_lineedit) { +#endif + _dcompl(); + need_redraw = TRUE; +#ifdef EMACS_LIKE_LINEEDIT + } #endif } else if (!i_quote && c == DEL_CODE) { @@ -421,25 +423,35 @@ _esc(void) case CTRL_I: case ' ': #ifdef EMACS_LIKE_LINEEDIT - _rdcompl(); - cm_clear = FALSE; + if (emacs_like_lineedit) { + _rdcompl(); + cm_clear = FALSE; + need_redraw = TRUE; + } else #else - _rcompl(); + _rcompl(); +#endif break; case CTRL_D: - _rdcompl(); +#ifdef EMACS_LIKE_LINEEDIT + if (!emacs_like_lineedit) +#else + _rdcompl(); #endif need_redraw = TRUE; break; #ifdef EMACS_LIKE_LINEEDIT case 'f': - _mvRw(); + if (emacs_like_lineedit) + _mvRw(); break; case 'b': - _mvLw(); + if (emacs_like_lineedit) + _mvLw(); break; case CTRL_H: - _bsw(); + if (emacs_like_lineedit) + _bsw(); break; #endif #ifdef JP_CHARSET @@ -628,13 +640,11 @@ _compl(void) next_compl(1); } -#ifndef EMACS_LIKE_LINEEDIT static void _rcompl(void) { next_compl(-1); } -#endif static void _tcompl(void) @@ -815,9 +825,11 @@ disp_next: clrtoeolx(); bold(); #ifdef EMACS_LIKE_LINEEDIT - addstr("----- Press TAB to continue -----"); + if (emacs_like_lineedit) + addstr("----- Press TAB to continue -----"); + else #else - addstr("----- Press CTRL-D to continue -----"); + addstr("----- Press CTRL-D to continue -----"); #endif boldend(); } diff --git a/rc.c b/rc.c @@ -89,6 +89,9 @@ static int rc_initialized = 0; #define CMT_PDROOT "/~user で表されるディレクトリ" #define CMT_CGIBIN "/cgi-bin で表されるディレクトリ" #define CMT_CONFIRM_QQ "q での終了時に確認する" +#ifdef EMACS_LIKE_LINEEDIT +#define CMT_EMACS_LIKE_LINEEDIT "Emacs風の行編集にする" +#endif #define CMT_SHOW_NUM "行番号を表示する" #define CMT_MIMETYPES "利用するmime.types" #define CMT_MAILCAP "利用するmailcap" @@ -187,6 +190,9 @@ static int rc_initialized = 0; #define CMT_PDROOT "Directory corresponds to /~user" #define CMT_CGIBIN "Directory corresponds to /cgi-bin" #define CMT_CONFIRM_QQ "Confirm when quitting with q" +#ifdef EMACS_LIKE_LINEEDIT +#define CMT_EMACS_LIKE_LINEEDIT "Emacs-style line editing" +#endif #define CMT_SHOW_NUM "Show line number" #define CMT_MIMETYPES "mime.types files" #define CMT_MAILCAP "mailcap files" @@ -387,6 +393,9 @@ struct param_ptr params3[] = {"save_hist", P_INT, PI_ONOFF, (void *) &SaveURLHist, CMT_SAVEHIST, NULL}, #endif /* USE_HISTORY */ {"confirm_qq", P_INT, PI_ONOFF, (void *) &confirm_on_quit, CMT_CONFIRM_QQ, NULL}, +#ifdef EMACS_LIKE_LINEEDIT + {"emacs_like_lineedit", P_INT, PI_ONOFF, (void *) &emacs_like_lineedit, CMT_EMACS_LIKE_LINEEDIT, NULL }, +#endif {"wrap_search", P_INT, PI_ONOFF, (void *) &WrapDefault, CMT_WRAP, NULL}, {"ignorecase_search", P_INT, PI_ONOFF, (void *) &IgnoreCase, CMT_IGNORE_CASE, NULL}, #ifdef USE_MOUSE