diff --git a/7.2.433 b/7.2.433 new file mode 100644 index 0000000..a85bcac --- /dev/null +++ b/7.2.433 @@ -0,0 +1,208 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.433 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.433 +Problem: Can't use cscope with QuickFixCmdPre and QuickFixCmdPost. +Solution: Add cscope support for these autocmd events. (Bryan Venteicher) +Files: runtime/doc/autocmd.txt, src/if_cscope.c + + +*** ../vim-7.2.432/runtime/doc/autocmd.txt 2009-06-24 17:51:01.000000000 +0200 +--- runtime/doc/autocmd.txt 2010-05-14 22:48:43.000000000 +0200 +*************** +*** 678,687 **** + QuickFixCmdPre Before a quickfix command is run (|:make|, + |:lmake|, |:grep|, |:lgrep|, |:grepadd|, + |:lgrepadd|, |:vimgrep|, |:lvimgrep|, +! |:vimgrepadd|, |:lvimgrepadd|). The pattern is +! matched against the command being run. When +! |:grep| is used but 'grepprg' is set to +! "internal" it still matches "grep". + This command cannot be used to set the + 'makeprg' and 'grepprg' variables. + If this command causes an error, the quickfix +--- 678,687 ---- + QuickFixCmdPre Before a quickfix command is run (|:make|, + |:lmake|, |:grep|, |:lgrep|, |:grepadd|, + |:lgrepadd|, |:vimgrep|, |:lvimgrep|, +! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|). +! The pattern is matched against the command +! being run. When |:grep| is used but 'grepprg' +! is set to "internal" it still matches "grep". + This command cannot be used to set the + 'makeprg' and 'grepprg' variables. + If this command causes an error, the quickfix +*** ../vim-7.2.432/src/if_cscope.c 2010-02-24 14:46:58.000000000 +0100 +--- src/if_cscope.c 2010-05-14 23:10:39.000000000 +0200 +*************** +*** 1113,1118 **** +--- 1113,1182 ---- + #ifdef FEAT_QUICKFIX + char cmdletter; + char *qfpos; ++ ++ /* get cmd letter */ ++ switch (opt[0]) ++ { ++ case '0' : ++ cmdletter = 's'; ++ break; ++ case '1' : ++ cmdletter = 'g'; ++ break; ++ case '2' : ++ cmdletter = 'd'; ++ break; ++ case '3' : ++ cmdletter = 'c'; ++ break; ++ case '4' : ++ cmdletter = 't'; ++ break; ++ case '6' : ++ cmdletter = 'e'; ++ break; ++ case '7' : ++ cmdletter = 'f'; ++ break; ++ case '8' : ++ cmdletter = 'i'; ++ break; ++ default : ++ cmdletter = opt[0]; ++ } ++ ++ qfpos = (char *)vim_strchr(p_csqf, cmdletter); ++ if (qfpos != NULL) ++ { ++ qfpos++; ++ /* next symbol must be + or - */ ++ if (strchr(CSQF_FLAGS, *qfpos) == NULL) ++ { ++ char *nf = _("E469: invalid cscopequickfix flag %c for %c"); ++ char *buf = (char *)alloc((unsigned)strlen(nf)); ++ ++ /* strlen will be enough because we use chars */ ++ if (buf != NULL) ++ { ++ sprintf(buf, nf, *qfpos, *(qfpos-1)); ++ (void)EMSG(buf); ++ vim_free(buf); ++ } ++ return FALSE; ++ } ++ ++ # ifdef FEAT_AUTOCMD ++ if (*qfpos != '0') ++ { ++ apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)"cscope", ++ curbuf->b_fname, TRUE, curbuf); ++ # ifdef FEAT_EVAL ++ if (did_throw || force_abort) ++ return FALSE; ++ # endif ++ } ++ # endif ++ } + #endif + + /* create the actual command to send to cscope */ +*************** +*** 1174,1231 **** + } + + #ifdef FEAT_QUICKFIX +- /* get cmd letter */ +- switch (opt[0]) +- { +- case '0' : +- cmdletter = 's'; +- break; +- case '1' : +- cmdletter = 'g'; +- break; +- case '2' : +- cmdletter = 'd'; +- break; +- case '3' : +- cmdletter = 'c'; +- break; +- case '4' : +- cmdletter = 't'; +- break; +- case '6' : +- cmdletter = 'e'; +- break; +- case '7' : +- cmdletter = 'f'; +- break; +- case '8' : +- cmdletter = 'i'; +- break; +- default : +- cmdletter = opt[0]; +- } +- +- qfpos = (char *)vim_strchr(p_csqf, cmdletter); +- if (qfpos != NULL) +- { +- qfpos++; +- /* next symbol must be + or - */ +- if (strchr(CSQF_FLAGS, *qfpos) == NULL) +- { +- char *nf = _("E469: invalid cscopequickfix flag %c for %c"); +- char *buf = (char *)alloc((unsigned)strlen(nf)); +- +- /* strlen will be enough because we use chars */ +- if (buf != NULL) +- { +- sprintf(buf, nf, *qfpos, *(qfpos-1)); +- (void)EMSG(buf); +- vim_free(buf); +- } +- vim_free(nummatches); +- return FALSE; +- } +- } + if (qfpos != NULL && *qfpos != '0' && totmatches > 0) + { + /* fill error list */ +--- 1238,1243 ---- +*************** +*** 1258,1263 **** +--- 1270,1280 ---- + postponed_split = 0; + } + # endif ++ ++ # ifdef FEAT_AUTOCMD ++ apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)"cscope", ++ curbuf->b_fname, TRUE, curbuf); ++ # endif + if (use_ll) + /* + * In the location list window, use the displayed location +*** ../vim-7.2.432/src/version.c 2010-05-14 22:24:31.000000000 +0200 +--- src/version.c 2010-05-14 23:13:27.000000000 +0200 +*************** +*** 683,684 **** +--- 683,686 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 433, + /**/ + +-- +The 50-50-90 rule: Anytime you have a 50-50 chance of getting +something right, there's a 90% probability you'll get it wrong. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/README.patches b/README.patches index 9ead745..a78a88c 100644 --- a/README.patches +++ b/README.patches @@ -459,3 +459,9 @@ Individual patches for Vim 7.2: 1541 7.2.425 some compilers complain about fourth EX() argument 2771 7.2.426 commas in 'langmap' are not always handled correctly 5351 7.2.427 recovery doesn't follow symlinks to find swap file + 1758 7.2.428 setqflist([]) doesn't properly clear the error list + 1900 7.2.429 may get "New file" for file that is not accessible + 4275 7.2.430 ++bad arg is handled wrong, may cause invalid memory access + 2599 7.2.431 ":amenu" moves the cursor when in Insert mode + 12967 7.2.432 translated menus make :emenu difficult to use + 5410 7.2.433 can't use cscope with QuickFixCmdPre and QuickFixCmdPost diff --git a/vim.spec b/vim.spec index 4556bd0..027a70c 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim72%{?beta} -%define patchlevel 427 +%define patchlevel 433 Summary: The VIM editor URL: http://www.vim.org/ @@ -493,6 +493,12 @@ Patch424: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.424 Patch425: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.425 Patch426: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.426 Patch427: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.427 +Patch428: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.428 +Patch429: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.429 +Patch430: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.430 +Patch431: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.431 +Patch432: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.432 +Patch433: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.433 Patch3000: vim-7.0-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1058,6 +1064,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch425 -p0 %patch426 -p0 %patch427 -p0 +%patch428 -p0 +%patch429 -p0 +%patch430 -p0 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 # install spell files @@ -1522,6 +1534,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat May 15 2010 Karsten Hopp 7.2.433-1 +- patchlevel 433 + * Fri May 14 2010 Karsten Hopp 7.2.427-1 - patchlevel 427