diff options
-rw-r--r-- | runtime/doc/cmdline.txt | 7 | ||||
-rw-r--r-- | runtime/indent/php.vim | 40 | ||||
-rw-r--r-- | runtime/spell/nl/nl_NL.diff | 92 | ||||
-rw-r--r-- | src/buffer.c | 7 | ||||
-rw-r--r-- | src/ex_docmd.c | 70 | ||||
-rw-r--r-- | src/normal.c | 21 | ||||
-rw-r--r-- | src/os_unix.c | 2 | ||||
-rw-r--r-- | src/proto/ex_getln.pro | 2 | ||||
-rw-r--r-- | src/vim.h | 1 | ||||
-rw-r--r-- | src/window.c | 6 |
10 files changed, 172 insertions, 76 deletions
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index d12c1ea77..2fc068f2c 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.0aa. Last change: 2005 Dec 30 +*cmdline.txt* For Vim version 7.0aa. Last change: 2006 Jan 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -153,8 +153,9 @@ CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>* *c_CTRL-R_=* '=' the expression register: you are prompted to enter an expression (see |expression|) - (doesn't work at the expression prompt; uses - the |sandbox| to avoid side effects) + (doesn't work at the expression prompt; some + things such as changing the buffer or current + window are not allowed to avoid side effects) See |registers| about registers. {not in Vi} Implementation detail: When using the |expression| register and invoking setcmdpos(), this sets the position before diff --git a/runtime/indent/php.vim b/runtime/indent/php.vim index 8d05b03b0..de313814c 100644 --- a/runtime/indent/php.vim +++ b/runtime/indent/php.vim @@ -2,8 +2,9 @@ " Language: PHP " Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr> " URL: http://www.2072productions.com/vim/indent/php.vim -" Last Change: 2005 Nobember 21st -" Version: 1.20 +" Last Change: 2006 January 15th +" Newsletter: http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php +" Version: 1.23 " " The change log and all the comments have been removed from this file. " @@ -11,14 +12,14 @@ " 2072productions.com at the URI provided above. " " If you find a bug, please e-mail me at John.wellesz (AT) teaser (DOT) fr -" with an example of code that break the algorithm. +" with an example of code that breaks the algorithm. " " " Thanks a lot for using this script. " " " NOTE: This script must be used with PHP syntax ON and with the php syntax -" script by Lutz Eymers (http://www.isp.de/data/php.vim ) that's the script bundled with Gvim. +" script by Lutz Eymers ( http://www.isp.de/data/php.vim ) that's the script bundled with Vim. " " " In the case you have syntax errors in your script such as end of HereDoc @@ -69,6 +70,10 @@ + + + + if exists("b:did_indent") finish endif @@ -127,7 +132,7 @@ if &fileformat == "unix" && exists("PHP_removeCRwhenUnix") && PHP_removeCRwhenUn endif if exists("*GetPhpIndent") - finish " XXX + finish " XXX endif let s:endline= '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$' @@ -136,7 +141,13 @@ let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!' function! GetLastRealCodeLNum(startline) " {{{ + let lnum = a:startline + + if b:GetLastRealCodeLNum_ADD && b:GetLastRealCodeLNum_ADD == lnum + 1 + let lnum = b:GetLastRealCodeLNum_ADD + endif + let old_lnum = lnum while lnum > 1 @@ -288,7 +299,7 @@ function! IslinePHP (lnum, tofind) " {{{ endfunction " }}} let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\);' -let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|[|&]\)' +let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|try\>\|catch\>\|[|&]\)' let s:autorestoptions = 0 if ! s:autorestoptions @@ -316,6 +327,8 @@ endfunc function! GetPhpIndent() + let b:GetLastRealCodeLNum_ADD = 0 + let UserIsEditing=0 if b:PHP_oldchangetick != b:changedtick let b:PHP_oldchangetick = b:changedtick @@ -361,7 +374,10 @@ function! GetPhpIndent() if !b:InPHPcode_checked " {{{ One time check let b:InPHPcode_checked = 1 - let synname = IslinePHP (prevnonblank(v:lnum), "") + let synname = "" + if cline !~ '<?.*?>' + let synname = IslinePHP (prevnonblank(v:lnum), "") + endif if synname!="" if synname != "phpHereDoc" @@ -425,6 +441,7 @@ function! GetPhpIndent() elseif cline =~? '<script\>' let b:InPHPcode_and_script = 1 + let b:GetLastRealCodeLNum_ADD = v:lnum endif endif endif @@ -453,11 +470,11 @@ function! GetPhpIndent() endif endif " }}} + if !b:InPHPcode && !b:InPHPcode_and_script return -1 endif - " Indent successive // or # comment the same way the first is {{{ if cline =~ '^\s*\%(//\|#\|/\*.*\*/\s*$\)' if b:PHP_LastIndentedWasComment == 1 @@ -482,9 +499,11 @@ function! GetPhpIndent() endif endif - if !b:PHP_InsideMultilineComment && cline =~ '^\s*/\*' + if !b:PHP_InsideMultilineComment && cline =~ '^\s*/\*' && cline !~ '\*/\s*$' + if getline(v:lnum + 1) !~ '^\s*\*' + return -1 + endif let b:PHP_InsideMultilineComment = 1 - return -1 endif " }}} @@ -504,6 +523,7 @@ function! GetPhpIndent() let s:level = 0 let lnum = GetLastRealCodeLNum(v:lnum - 1) + let last_line = getline(lnum) let ind = indent(lnum) let endline= s:endline diff --git a/runtime/spell/nl/nl_NL.diff b/runtime/spell/nl/nl_NL.diff index 2509250d6..5de01c029 100644 --- a/runtime/spell/nl/nl_NL.diff +++ b/runtime/spell/nl/nl_NL.diff @@ -1,8 +1,8 @@ *** nl_NL.orig.aff Sun Jul 3 18:24:07 2005 ---- nl_NL.aff Tue Aug 23 14:03:48 2005 +--- nl_NL.aff Thu Dec 29 19:42:56 2005 *************** *** 3,6 **** ---- 3,30 ---- +--- 3,31 ---- + FOL ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ + LOW ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ @@ -13,9 +13,10 @@ + + MIDWORD '- + -+ KEP = -+ RAR ? ++ KEEPCASE = ++ RARE ? + BAD ! ++ SLASH , + NOSPLITSUGS @@ -53,7 +54,7 @@ ! SFX J 0 je [aeiou][bcdfgkpt] ! SFX J 0 jes [aeiou][bcdfgkpt] ---- 57,76 ---- +--- 58,77 ---- SFX J N 18 ! SFX J 0 tje [aeiou][aeiou] ! SFX J 0 tjes [aeiou][aeiou] @@ -79,7 +80,7 @@ REP ubi ibu ! REP croc krok REP ten than ---- 277,279 ---- +--- 278,280 ---- REP ubi ibu ! REP croc krok REP ten than @@ -88,7 +89,7 @@ REP capucino cappuccino ! REP celcius Celsius REP kado cadeau ---- 312,314 ---- +--- 313,315 ---- REP capucino cappuccino ! REP celcius Celsius REP kado cadeau @@ -101,7 +102,7 @@ REP kommittee comité ! REP kwis quiz REP kwissen quizzen ---- 318,324 ---- +--- 319,325 ---- REP committee comité ! REP komitee comité ! REP komittee comité @@ -114,7 +115,7 @@ REP copy kopij ! REP pitoresque pittoreske REP reikweite reikwijdte ---- 326,328 ---- +--- 327,329 ---- REP copy kopij ! REP pitoresque pittoreske REP reikweite reikwijdte @@ -126,7 +127,7 @@ ! REP kontekst context ! REP korrekt correct REP kritikus criticus ---- 338,343 ---- +--- 339,344 ---- REP klup club ! REP wiskid whizzkid ! REP kontakt contact @@ -135,13 +136,13 @@ REP kritikus criticus *************** *** 333 **** ---- 357,360 ---- +--- 358,361 ---- REP aflassen afgelasten + REP svp s.v.p. + REP zoz z.o.z. + *** nl_NL.orig.dic Sun Jul 3 18:24:07 2005 ---- nl_NL.dic Sat Dec 10 20:46:29 2005 +--- nl_NL.dic Tue Jan 17 20:39:49 2006 *************** *** 1,3 **** 119937 @@ -187,8 +188,14 @@ ! achterwand/N achterweg/NE *************** +*** 4896,4897 **** +--- 4900,4902 ---- + aidsepidemie ++ aidspreventieprogramma + aidspreventieprogramma's +*************** *** 7485,7486 **** ---- 7489,7498 ---- +--- 7490,7499 ---- avond/SN + 's avonds/= + 's middags/= @@ -201,7 +208,7 @@ avondappèl/S *************** *** 20681,20682 **** ---- 20693,20695 ---- +--- 20694,20696 ---- cytostatica + d.m.v. daad/P @@ -210,19 +217,19 @@ hartelozer ! hartelust harten/S ---- 41822,41824 ---- +--- 41823,41825 ---- hartelozer ! hartenlust harten/S *************** *** 46300,46301 **** ---- 46313,46315 ---- +--- 46314,46316 ---- informaticus + informatie/S informatie-uitwisseling *************** *** 60206,60208 **** ---- 60220,60227 ---- +--- 60221,60228 ---- löss + m.a.w. + m.b.t. @@ -233,7 +240,7 @@ maag *************** *** 77996,77997 **** ---- 78015,78017 ---- +--- 78016,78018 ---- pluisje + pluisjes pluist/UF @@ -242,39 +249,39 @@ programmablad ! programmaboekje programmacode ---- 80330,80332 ---- +--- 80331,80333 ---- programmablad ! programmaboekje/S programmacode *************** *** 97474,97475 **** ---- 97494,97497 ---- +--- 97495,97498 ---- suïciderisico/X + s.v.p. + z.o.z. swagger/S *************** *** 101428,101429 **** ---- 101450,101453 ---- +--- 101451,101454 ---- toezichthouder/S + toezichthoudersaansprakelijkheidsverzekering + toezichthoudersaansprakelijkheidsverzekeringen toezie/N *************** *** 103707,103708 **** ---- 103731,103733 ---- +--- 103732,103734 ---- tête-à-tête/S + u uchtend/N *************** *** 110847,110848 **** ---- 110872,110874 ---- +--- 110873,110875 ---- voorjaarscollectie/S + voorjaarsconferentie/S voorjaarsmoeheid *************** *** 119938 **** ---- 119964,173136 ---- +--- 119965,173166 ---- überhaupt + Christiaan/X + Fred/X @@ -285,6 +292,7 @@ + René/X + Renée/X + Walter/X ++ Verhagen/X + # toevoegingen uit de Woordenlijst van 30 mei 1996 + a capella + a fortiori @@ -445,25 +453,50 @@ + wishful thinking + à gogo + à propos ++ a.s. + evt. + enz. ++ t,m + bijv. + t.n.v. + m.b.v. + et al. ++ Abraham ++ Anita ++ Boudewijn ++ Bram ++ Edwin ++ Erwin + Gerard ++ Gert + Google ++ Jos ++ Laurens ++ Leon + Luc + Luuk -+ Gert + Marion -+ Jos -+ Boudewijn -+ Abraham ++ Paul ++ Nikon ++ Pentax ++ Minolta ++ Mariëlle ++ Jeroen ++ Wytze ++ Océ ++ Philips ++ Shell ++ KPN ++ FNV ++ CNV ++ NLUUG ++ ICCF ++ aidsvoorlichting + # Woorden uit de Woordenlijst Nederlandse Taal - Officiële Spelling 2005 + # TODO: werkwoord vervoegingen + 's anderendaags + 't is dief en diefjesmaat ++ 11 julifeest + 11 julifeesten + 11 juliviering + 11 julivieringen @@ -2432,6 +2465,8 @@ + a-priorische + a.m. + a.u.b. ++ blz. ++ e.d. + aagje + aagjes + aaibaar @@ -53448,3 +53483,4 @@ + über-ich + übermensch + übermenschen ++ diff --git a/src/buffer.c b/src/buffer.c index 119011791..677215d2d 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1806,10 +1806,11 @@ buflist_getfile(n, lnum, options, forceit) if (buf == curbuf) return OK; -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0) + if (editing_cmdline()) + { + editing_cmdline_msg(); return FAIL; -#endif + } /* altfpos may be changed by getfile(), get it now */ if (lnum == 0) diff --git a/src/ex_docmd.c b/src/ex_docmd.c index e15c6c5d7..fe9cd6bc1 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2026,7 +2026,17 @@ do_one_cmd(cmdlinep, sourcing, } else if (ea.addr_count != 0) { - if (ea.line2 < 0 || ea.line2 > curbuf->b_ml.ml_line_count) + if (ea.line2 > curbuf->b_ml.ml_line_count) + { + /* With '-' in 'cpoptions' a line number past the file is an + * error, otherwise put it at the end of the file. */ + if (vim_strchr(p_cpo, CPO_MINUS) != NULL) + ea.line2 = -1; + else + ea.line2 = curbuf->b_ml.ml_line_count; + } + + if (ea.line2 < 0) errormsg = (char_u *)_(e_invrange); else { @@ -2126,18 +2136,22 @@ do_one_cmd(cmdlinep, sourcing, errormsg = (char_u *)_(e_modifiable); goto doend; } -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0 && !(ea.argt & CMDWIN) + + if (editing_cmdline() && !(ea.argt & CMDWIN) # ifdef FEAT_USR_CMDS && !USER_CMDIDX(ea.cmdidx) # endif ) { - /* Command not allowed in cmdline window. */ - errormsg = (char_u *)_(e_cmdwin); + /* Command not allowed when editing the command line. */ +#ifdef FEAT_CMDWIN + if (cmdwin_type != 0) + errormsg = (char_u *)_(e_cmdwin); + else +#endif + errormsg = (char_u *)_(e_secure); goto doend; } -#endif if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0) { @@ -2977,12 +2991,9 @@ set_one_cmd_context(xp, buff) int forceit = FALSE; int usefilter = FALSE; /* filter instead of file name */ + ExpandInit(xp); xp->xp_pattern = buff; xp->xp_context = EXPAND_COMMANDS; /* Default until we get past command */ - xp->xp_backslash = XP_BS_NONE; -#if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) - xp->xp_arg = NULL; -#endif ea.argt = 0; /* @@ -3254,6 +3265,11 @@ set_one_cmd_context(xp, buff) if (bow != NULL && in_quote) xp->xp_pattern = bow; xp->xp_context = EXPAND_FILES; +#ifndef BACKSLASH_IN_FILENAME + /* For a shell command more chars need to be escaped. */ + if (usefilter || ea.cmdidx == CMD_bang) + xp->xp_shell = TRUE; +#endif /* Check for environment variable */ if (*xp->xp_pattern == '$' @@ -4189,16 +4205,16 @@ expand_filename(eap, cmdlinep, errormsgp) /* For a shell command a '!' must be escaped. */ if ((eap->usefilter || eap->cmdidx == CMD_bang) - && vim_strpbrk(repl, (char_u *)"!&;()") != NULL) + && vim_strpbrk(repl, (char_u *)"!&;()<>") != NULL) { char_u *l; - l = vim_strsave_escaped(repl, (char_u *)"!&;()"); + l = vim_strsave_escaped(repl, (char_u *)"!&;()<>"); if (l != NULL) { vim_free(repl); repl = l; - /* For a sh-like shell escape it another time. */ + /* For a sh-like shell escape "!" another time. */ if (strstr((char *)p_sh, "sh") != NULL) { l = vim_strsave_escaped(repl, (char_u *)"!"); @@ -6017,6 +6033,12 @@ ex_quit(eap) return; } #endif + /* Don't quit while editing the command line. */ + if (editing_cmdline()) + { + editing_cmdline_msg(); + return; + } #ifdef FEAT_NETBEANS_INTG netbeansForcedQuit = eap->forceit; @@ -6079,6 +6101,14 @@ ex_quit_all(eap) return; } # endif + + /* Don't quit while editing the command line. */ + if (editing_cmdline()) + { + editing_cmdline_msg(); + return; + } + exiting = TRUE; if (eap->forceit || !check_changed_any(FALSE)) getout(0); @@ -6098,7 +6128,8 @@ ex_close(eap) cmdwin_result = K_IGNORE; else # endif - ex_win_close(eap, curwin); + if (!editing_cmdline()) + ex_win_close(eap, curwin); } static void @@ -6257,6 +6288,12 @@ ex_exit(eap) return; } #endif + /* Don't quit while editing the command line. */ + if (editing_cmdline()) + { + editing_cmdline_msg(); + return; + } /* * if more files or windows we won't exit @@ -6369,10 +6406,9 @@ handle_drop(filec, filev, split) exarg_T ea; int save_msg_scroll = msg_scroll; -# ifdef FEAT_CMDWIN - if (cmdwin_type != 0) + /* Postpone this while editing the command line. */ + if (editing_cmdline()) return; -# endif /* Check whether the current buffer is changed. If so, we will need * to split the current window or data could be lost. diff --git a/src/normal.c b/src/normal.c index b0262b222..12ede7375 100644 --- a/src/normal.c +++ b/src/normal.c @@ -788,15 +788,14 @@ getcount: clearopbeep(oap); goto normal_end; } -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0 && (nv_cmds[idx].cmd_flags & NV_NCW)) + + if (editing_cmdline() && (nv_cmds[idx].cmd_flags & NV_NCW)) { - /* This command is not allowed in the cmdline window: beep. */ + /* This command is not allowed wile editing a ccmdline: beep. */ clearopbeep(oap); - EMSG(_(e_cmdwin)); + editing_cmdline_msg(); goto normal_end; } -#endif #ifdef FEAT_VISUAL /* @@ -3640,6 +3639,7 @@ add_to_showcmd(c) K_RIGHTMOUSE, K_RIGHTDRAG, K_RIGHTRELEASE, K_MOUSEDOWN, K_MOUSEUP, K_X1MOUSE, K_X1DRAG, K_X1RELEASE, K_X2MOUSE, K_X2DRAG, K_X2RELEASE, + K_CURSORHOLD, 0 }; #endif @@ -5741,13 +5741,12 @@ nv_gotofile(cap) { char_u *ptr; -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0) + if (editing_cmdline()) { clearopbeep(cap->oap); + editing_cmdline_msg(); return; } -#endif ptr = grab_file_name(cap->count1); @@ -7802,13 +7801,13 @@ nv_g_cmd(cap) /* "gQ": improved Ex mode */ case 'Q': -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0) + if (editing_cmdline()) { clearopbeep(cap->oap); + editing_cmdline_msg(); break; } -#endif + if (!checkclearopq(oap)) do_exmode(TRUE); break; diff --git a/src/os_unix.c b/src/os_unix.c index faf2847a6..afc68ff84 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -4852,7 +4852,7 @@ mch_expandpath(gap, path, flags) # define SEEK_END 2 #endif -#define SHELL_SPECIAL (char_u *)"\t \"&';<>[\\]|" +#define SHELL_SPECIAL (char_u *)"\t \"&';<>\\|" /* ARGSUSED */ int diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro index fe2752b8d..3b11a38a7 100644 --- a/src/proto/ex_getln.pro +++ b/src/proto/ex_getln.pro @@ -1,6 +1,8 @@ /* ex_getln.c */ char_u *getcmdline __ARGS((int firstc, long count, int indent)); char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg)); +int editing_cmdline __ARGS((void)); +void editing_cmdline_msg __ARGS((void)); char_u *getexline __ARGS((int c, void *dummy, int indent)); char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent)); int cmdline_overstrike __ARGS((void)); @@ -324,6 +324,7 @@ # else # define PATH_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|") # endif +# define SHELL_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|<>();&!") #endif #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ diff --git a/src/window.c b/src/window.c index 7d5018047..680c32017 100644 --- a/src/window.c +++ b/src/window.c @@ -2717,13 +2717,13 @@ win_alloc_first() win_goto(wp) win_T *wp; { -#ifdef FEAT_CMDWIN - if (cmdwin_type != 0) + if (editing_cmdline()) { beep_flush(); + editing_cmdline_msg(); return; } -#endif + #ifdef FEAT_VISUAL if (wp->w_buffer != curbuf) reset_VIsual_and_resel(); |