# HG changeset patch # User vimboss # Date 1126127923 0 # Node ID b47114409935609ca3d838a3df3a6a5db9b1c3d0 # Parent c30adca155068552ff823af1018a8ed52cbfdfdc updated for version 7.0143 diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -5478,6 +5478,9 @@ ex_window() int save_restart_edit = restart_edit; int save_State = State; int save_exmode = exmode_active; +#ifdef FEAT_RIGHTLEFT + int save_cmdmsg_rl = cmdmsg_rl; +#endif /* Can't do this recursively. Can't do it when typing a password. */ if (cmdwin_type != 0 @@ -5514,7 +5517,8 @@ ex_window() set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); curbuf->b_p_ma = TRUE; # ifdef FEAT_RIGHTLEFT - curwin->w_p_rl = FALSE; + curwin->w_p_rl = cmdmsg_rl; + cmdmsg_rl = FALSE; # endif # ifdef FEAT_SCROLLBIND curwin->w_p_scb = FALSE; @@ -5525,6 +5529,9 @@ ex_window() --autocmd_block; # endif + /* Showing the prompt may have set need_wait_return, reset it. */ + need_wait_return = FALSE; + histtype = hist_char2type(ccline.cmdfirstc); if (histtype == HIST_CMD || histtype == HIST_DEBUG) { @@ -5565,6 +5572,8 @@ ex_window() ml_replace(curbuf->b_ml.ml_line_count, ccline.cmdbuff, TRUE); curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; curwin->w_cursor.col = ccline.cmdpos; + changed_line_abv_curs(); + invalidate_botline(); redraw_later(NOT_VALID); /* Save the command line info, can be used recursively. */ @@ -5625,10 +5634,24 @@ ex_window() # endif /* Set the new command line from the cmdline buffer. */ vim_free(ccline.cmdbuff); - if (cmdwin_result == K_XF1) /* :qa! typed */ + if (cmdwin_result == K_XF1 || cmdwin_result == K_XF2) /* :qa[!] typed */ { - ccline.cmdbuff = vim_strsave((char_u *)"qa!"); - cmdwin_result = CAR; + char *p = (cmdwin_result == K_XF2) ? "qa" : "qa!"; + + if (histtype == HIST_CMD) + { + /* Execute the command directly. */ + ccline.cmdbuff = vim_strsave((char_u *)p); + cmdwin_result = CAR; + } + else + { + /* First need to cancel what we were doing. */ + ccline.cmdbuff = NULL; + stuffcharReadbuff(':'); + stuffReadbuff((char_u *)p); + stuffcharReadbuff(CAR); + } } else if (cmdwin_result == K_XF2) /* :qa typed */ { @@ -5673,6 +5696,9 @@ ex_window() ga_clear(&winsizes); restart_edit = save_restart_edit; +# ifdef FEAT_RIGHTLEFT + cmdmsg_rl = save_cmdmsg_rl; +# endif State = save_State; # ifdef FEAT_MOUSE diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -3287,7 +3287,7 @@ set_init_2() && (STRCMP(T_NAME, "linux") == 0 || STRCMP(T_NAME, "screen.linux") == 0 || STRCMP(T_NAME, "cygwin") == 0 - || ((p = mch_getenv("COLORFGBG")) != NULL + || ((p = mch_getenv((char_u *)"COLORFGBG")) != NULL && (p = vim_strrchr(p, ';')) != NULL && ((p[1] >= '0' && p[1] <= '6') || p[1] == '8') && p[2] == NUL))) diff --git a/src/structs.h b/src/structs.h --- a/src/structs.h +++ b/src/structs.h @@ -1029,7 +1029,7 @@ struct listvar_S int lv_copyID; /* ID used by deepcopy() */ list_T *lv_copylist; /* copied list used by deepcopy() */ char lv_lock; /* zero, VAR_LOCKED, VAR_FIXED */ - list_T *lv_used_next; /* next list in used dicts list */ + list_T *lv_used_next; /* next list in used lists list */ list_T *lv_used_prev; /* previous list in used lists list */ }; diff --git a/src/version.h b/src/version.h --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 7)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 7, compiled "