diff options
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | fm.h | 5 | ||||
| -rw-r--r-- | linein.c | 70 | ||||
| -rw-r--r-- | rc.c | 11 | 
4 files changed, 62 insertions, 31 deletions
| @@ -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 @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.13 2001/11/23 20:23:41 ukai Exp $ */ +/* $Id: fm.h,v 1.14 2001/11/23 20:50:59 ukai Exp $ */  /*    * w3m: WWW wo Miru utility   *  @@ -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); @@ -1,4 +1,4 @@ -/* $Id: linein.c,v 1.6 2001/11/22 15:02:17 ukai Exp $ */ +/* $Id: linein.c,v 1.7 2001/11/23 20:50:59 ukai Exp $ */  #include "fm.h"  #include "local.h"  #include "myctype.h" @@ -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();      } @@ -1,4 +1,4 @@ -/* $Id: rc.c,v 1.8 2001/11/23 20:23:41 ukai Exp $ */ +/* $Id: rc.c,v 1.9 2001/11/23 20:50:59 ukai Exp $ */  /*    * Initialization file etc.   */ @@ -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 | 
