diff --git a/runtime/autoload/netrwFileHandlers.vim b/runtime/autoload/netrwFileHandlers.vim index bad6d81c65042560ec5703ba94723b0bba4e68f4..cd6de66c58a2a5dd14cdb16f5058e93790b466b8 100644 --- a/runtime/autoload/netrwFileHandlers.vim +++ b/runtime/autoload/netrwFileHandlers.vim @@ -1,8 +1,8 @@ " netrwFileHandlers: contains various extension-based file handlers for " netrw's browsers' x command ("eXecute launcher") " Author: Charles E. Campbell, Jr. -" Date: Feb 15, 2006 -" Version: 8a ASTRO-ONLY +" Date: Mar 22, 2006 +" Version: 8 " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright @@ -22,7 +22,7 @@ if exists("g:loaded_netrwFileHandlers") || &cp endif let s:keepcpo= &cpo set cpo&vim -let g:loaded_netrwFileHandlers= "v8a" +let g:loaded_netrwFileHandlers= "v8" " --------------------------------------------------------------------- " netrwFileHandlers#Invoke: {{{2 diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim index e8d6bd28b921ddb3cbc0503ea15d3ddaf0830ddd..f51a328200173a002a4d2b3f7c9c5b5632b70c97 100644 --- a/runtime/autoload/netrwSettings.vim +++ b/runtime/autoload/netrwSettings.vim @@ -1,7 +1,7 @@ " netrwSettings.vim: makes netrw settings simpler -" Date: Jan 26, 2006 +" Date: Mar 22, 2006 " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> -" Version: 6a ASTRO-ONLY +" Version: 6 " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright @@ -19,7 +19,7 @@ if exists("g:loaded_netrwSettings") || &cp finish endif -let g:loaded_netrwSettings = "v6a" +let g:loaded_netrwSettings = "v6" " --------------------------------------------------------------------- " NetrwSettings: {{{1 @@ -56,10 +56,10 @@ fun! netrwSettings#NetrwSettings() let g:netrw_ignorenetrc= 0 endif - put ='+ --------------------------------------------' - put ='+ NetrwSettings: by Charles E. Campbell, Jr.' - put ='+ Press ? with cursor atop any line for help ' - put ='+ --------------------------------------------' + put ='+ ---------------------------------------------' + put ='+ NetrwSettings: by Charles E. Campbell, Jr.' + put ='+ Press <F1> with cursor atop any line for help' + put ='+ ---------------------------------------------' let s:netrw_settings_stop= line(".") put ='' @@ -132,7 +132,7 @@ fun! netrwSettings#NetrwSettings() set nomod - map <buffer> <silent> ? :call NetrwSettingHelp()<cr> + map <buffer> <silent> <F1> :call NetrwSettingHelp()<cr> let tmpfile= tempname() exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod' endfun diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim index be39740112e3fb6f00ba726878c73c4b9f30a7ce..2243ea8a389ca53b714b402da036ccdaa1011490 100644 --- a/runtime/autoload/zip.vim +++ b/runtime/autoload/zip.vim @@ -1,7 +1,7 @@ " zip.vim: Handles browsing zipfiles " AUTOLOAD PORTION -" Date: Dec 21, 2005 -" Version: 6 +" Date: Mar 22, 2006 +" Version: 7 " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 @@ -22,7 +22,8 @@ if exists("g:loaded_zip") finish endif -let g:loaded_zip= "v6" +let g:loaded_zip = "v7" +let s:zipfile_escape = ' ?&;\' " ---------------- " Functions: {{{1 @@ -53,6 +54,7 @@ fun! zip#Browse(zipfile) " call Dret("zip#Browse : file<".a:zipfile."> not readable") return endif +" call Decho("passed sanity checks") if &ma != 1 set ma endif @@ -73,7 +75,8 @@ fun! zip#Browse(zipfile) 0d $ - exe "silent r! unzip -l ".a:zipfile + call Decho("exe silent r! unzip -l '".escape(a:zipfile,s:zipfile_escape)."'") + exe "silent r! unzip -l '".escape(a:zipfile,s:zipfile_escape)."'" $d silent 4,$v/^\s\+\d\+\s\{0,5}\d/d silent 4,$s/^\%(.*\)\s\+\(\S\)/\1/ @@ -111,12 +114,15 @@ fun! s:ZipBrowseSelect() " get zipfile to the new-window let zipfile= substitute(w:zipfile,'.zip$','','e') - let curfile= expand("%") + let curfile= escape(expand("%"),s:zipfile_escape) +" call Decho("zipfile<".zipfile.">") +" call Decho("curfile<".curfile.">") new wincmd _ let s:zipfile_{winnr()}= curfile - exe "e zipfile:".zipfile.':'.fname +" call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname) + exe "e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname filetype detect let &report= repkeep @@ -130,11 +136,12 @@ fun! zip#Read(fname,mode) let repkeep= &report set report=10 - let zipfile = substitute(a:fname,'zipfile:\(.\{-}\):.*$','\1','') - let fname = substitute(a:fname,'zipfile:.\{-}:\(.*\)$','\1','') + let zipfile = substitute(a:fname,'zipfile:\(.\{-}\):[^\\].*$','\1','') + let fname = substitute(a:fname,'zipfile:.\{-}:\([^\\].*\)$','\1','') " call Decho("zipfile<".zipfile."> fname<".fname.">") - exe "r! unzip -p ".zipfile." ".fname +" call Decho("exe r! unzip -p '".escape(zipfile,s:zipfile_escape)."' ".fname) + exe "r! unzip -p '".escape(zipfile,s:zipfile_escape)."' ".fname " cleanup 0d diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 18342b89cafdc8983ba9220a03aefabc19d357d4..b25a88e3af52865571a8483a980ede4c91071d3e 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2006 Mar 21 +*eval.txt* For Vim version 7.0aa. Last change: 2006 Mar 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -3591,7 +3591,7 @@ getpos({expr}) Get the position for {expr}. For possible values of {expr} This can be used to save and restore the cursor position: > let save_cursor = getpos(".") MoveTheCursorAround - call setpos(save_cursor) + call setpos('.', save_cursor) < Also see |setpos()|. prevnonblank({lnum}) *prevnonblank()* @@ -4225,6 +4225,7 @@ setpos({expr}, {list}) the current buffer. To set a mark in another buffer you can use the |bufnr()| function to turn a file name into a buffer number. + Does not change the jumplist. "lnum" and "col" are the position in the buffer. The first column is 1. Use a zero "lnum" to delete a mark. @@ -4918,8 +4919,8 @@ winsaveview() Returns a |Dictionary| that contains information to restore This is useful if you have a mapping that jumps around in the buffer and you want to go back to the original view. This does not save fold information. Use the 'foldenable' - option to temporarily switch of folding, so that folds are not - opened when moving around. + option to temporarily switch off folding, so that folds are + not opened when moving around. The return value includes: lnum cursor line number col cursor column diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 3a8b164796c6dcabf80bdb80d4c311ed721e608c..778b639b03db3298cbf692fda20f25ef2f7c44cb 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 7.0aa. Last change: 2006 Mar 09 +*filetype.txt* For Vim version 7.0aa. Last change: 2006 Mar 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -148,6 +148,7 @@ can be used to overrule the filetype used for certain extensions: *.i g:filetype_i |ft-progress-syntax| *.p g:filetype_p |ft-pascal-syntax| *.sh g:bash_is_sh |ft-sh-syntax| + *.tex g:tex_flavor |ft-tex-plugin| *filetype-ignore* To avoid that certain files are being inspected, the g:ft_ignore_pat variable @@ -542,4 +543,16 @@ Since the text for this plugin is rather long it has been put in a separate file: |sql.txt|. +TEX *ft-tex-plugin* + +If the first line of a *.tex file has the form > + %&<format> +then this determined the file type: plaintex (for plain TeX), context (for +ConTeXt), or tex (for LaTeX). Otherwise, the file is searched for keywords to +choose context or tex. If no keywords are found, it defaults to tex. You can +change the default by defining the variable g:tex_flavor to the format (not +the file type) you use most: plain or context or latex. (Currently no other +formats are recognized.) + + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 4814a09d6ca5fcc5455aa4d26ff0c8f43ff26c72..81a38226793049c5ebfb0aa081a4a8c441a4c086 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.0aa. Last change: 2006 Mar 20 +*quickfix.txt* For Vim version 7.0aa. Last change: 2006 Mar 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -189,6 +189,15 @@ command with 'l'. :lb[uffer] [bufnr] Same as ":cbuffer", except the location list for the current window is used instead of the quickfix list. + *:cgetb* *:cgetbuffer* +:cgetb[uffer] [bufnr] Read the error list from the current buffer. Just + like ":cbuffer" but don't jump to the first error. + + *:lgetb* *:lgetbuffer* +:lgetb[uffer] [bufnr] Same as ":cgetbuffer", except the location list for + the current window is used instead of the quickfix + list. + *:caddb* *:caddbuffer* :caddb[uffer] [bufnr] Read the error list from the current buffer and add the errors to the current quickfix list. If a @@ -229,6 +238,14 @@ command with 'l'. < *:lad* *:laddexpr* :lad[dexpr][!] {expr} Same as ":caddexpr", except the location list for the + current window is used instead of the quickfix list. + + *:cgete* *:cgetexpr* +:cgete[xpr][!] {expr} Create a quickfix list using the result of {expr}. + Just like ":cexpr", but don't jump to the first error. + + *:lgete* *:lgetexpr* +:lgete[xpr][!] {expr} Same as ":cgetexpr", except the location list for the current window is used instead of the quickfix list. *:cl* *:clist* diff --git a/runtime/doc/tags b/runtime/doc/tags index 4d6cc6380dda204a5eb9c6fb1b9eefb831bf0127..5a8086f0ce9ac4e485b15e14efcac192d163f5b7 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -1849,6 +1849,10 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :cfir quickfix.txt /*:cfir* :cfirst quickfix.txt /*:cfirst* :cg quickfix.txt /*:cg* +:cgetb quickfix.txt /*:cgetb* +:cgetbuffer quickfix.txt /*:cgetbuffer* +:cgete quickfix.txt /*:cgete* +:cgetexpr quickfix.txt /*:cgetexpr* :cgetfile quickfix.txt /*:cgetfile* :ch change.txt /*:ch* :change change.txt /*:change* @@ -2188,6 +2192,10 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :lfir quickfix.txt /*:lfir* :lfirst quickfix.txt /*:lfirst* :lg quickfix.txt /*:lg* +:lgetb quickfix.txt /*:lgetb* +:lgetbuffer quickfix.txt /*:lgetbuffer* +:lgete quickfix.txt /*:lgete* +:lgetexpr quickfix.txt /*:lgetexpr* :lgetfile quickfix.txt /*:lgetfile* :lgr quickfix.txt /*:lgr* :lgrep quickfix.txt /*:lgrep* @@ -5299,6 +5307,7 @@ ft-sqlinformix-syntax syntax.txt /*ft-sqlinformix-syntax* ft-syntax-omni insert.txt /*ft-syntax-omni* ft-tcsh-syntax syntax.txt /*ft-tcsh-syntax* ft-termcap-syntax syntax.txt /*ft-termcap-syntax* +ft-tex-plugin filetype.txt /*ft-tex-plugin* ft-tex-syntax syntax.txt /*ft-tex-syntax* ft-tf-syntax syntax.txt /*ft-tf-syntax* ft-vb-syntax syntax.txt /*ft-vb-syntax* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index faaf2b2dfd18e940905ff962e567858023fb5f4f..22d0608637a5030235961c9a03e2c7edd7da59cd 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2006 Mar 21 +*todo.txt* For Vim version 7.0aa. Last change: 2006 Mar 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,11 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|. *known-bugs* -------------------- Known bugs and current work ----------------------- -HTML indenting can be slow, find out why. - -Adjust src/main.aap for installing manpages like in Makefile. - And for generating Vim.app for the Mac. - Install spell files with src/main.aap. +Include patch for recognizing TeX flavor. (Benji Fisher) +And new tex.vim and plaintex.vim. Win32: Describe how to do debugging. (George Reilly) @@ -50,6 +47,12 @@ Mac unicode patch (Da Woon Jung, Eckehard Berns): Darren is including the patch in ctags. Test it when it's ready. Change "typename" to "typeref" in C complete code. +HTML indenting can be slow. Caused by using searchpair(). Can search() be +used instead? + +ccomplete: use "signature:" field from tags file when it's present. +Or list all the fields? (Martin Stubenschrott) + Add more tests for all new functionality in Vim 7. Especially new functions. Add text in user manual for using the undo tree. Example with finding the @@ -1129,7 +1132,7 @@ Spell checking: means the compound flags of the word are not used. Instead of "SFX a 0 add/FLAGS ." we could use "SFX a 0 add . /FLAGS" (or support both). -- Support breakpoint character ∑ 0xb7 and ignore it? Makes it possible to +- Support breakpoint character ? 0xb7 and ignore it? Makes it possible to use same wordlist for hyphenation. - Compound word is accepted if nr of words is <= COMPOUNDMAX OR nr of syllables <= COMPOUNDSYLMAX. Specify using AND in the affix file? diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 393054105c419bdcdad9abe315cf1db32d8db779..e3e8655ed0342e57341d526431601968dfc2d4f1 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -756,6 +756,13 @@ It is possible to add translated help files, next to the original English help files. Vim will search for all help in "doc" directories in 'runtimepath'. This is only available when compiled with the |+multi_lang| feature. +At this moment translations are available for: + Chinese - multiple authors + French - translated by David Blanchet + Italian - translated by Antonio Colombo + Russian - translated by Vassily Ragosin +See the Vim website to find them: http://www.vim.org/translations.php + A set of translated help files consists of these files: help.abx diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 05ed7d2a52d8cb3f9cce9e3f957806518511fe6d..777dff0b5904e16f37367b3045d6eafea9e925be 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.0aa. Last change: 2006 Mar 21 +*version7.txt* For Vim version 7.0aa. Last change: 2006 Mar 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -609,24 +609,27 @@ Win32: The ":winpos" command now also works in the console. (Vipin Aravind) |:viusage| Help for Vi commands (Nvi command). -|:cbuffer| Read error lines from a buffer. (partly by Yegappan - Lakshmanan) - |:sort| Sort lines in the buffer without depending on an external command. |:caddfile| Add error messages to an existing quickfix list (Yegappan Lakshmanan). - +|:cbuffer| Read error lines from a buffer. (partly by Yegappan + Lakshmanan) +|:cgetbuffer| Create a quickfix list from a buffer but don't jump to + the first error. +|:caddbuffer| Add errors from the current buffer to the quickfix + list. |:cexpr| Read error messages from a Vim expression (Yegappan Lakshmanan). - |:caddexpr| Add error messages from a Vim expression to an existing quickfix list. (Yegappan Lakshmanan). -|:caddbuffer| Add errors from the current buffer to the quickfix - list. +|:cgetexpr| Create a quickfix list from a Vim expression, but + don't jump to the first error. (Yegappan Lakshmanan). |:lfile| Like |:cfile| but use the location list. +|:lgetbuffer| Like |:cgetbuffer| but use the location list. +|:lgetexpr| Like |:cgetexpr| but use the location list. |:lgetfile| Like |:cgetfile| but use the location list. |:laddfile| Like |:caddfile| but use the location list. |:lbuffer| Like |:cbuffer| but use the location list. diff --git a/runtime/filetype.vim b/runtime/filetype.vim index f245eec3f5cd2d0c05e3c2ce2d7861bf98ec4793..2ab0987050772674ae3a3298381f5ef7874537c5 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2006 Mar 21 +" Last Change: 2006 Mar 23 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -638,7 +638,7 @@ au BufNewFile,BufRead *.t.html setf tilde " HTML (.shtml and .stm for server side) au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call s:FThtml() -" Distinguish between HTML and XHTML +" Distinguish between HTML, XHTML and Django fun! s:FThtml() let n = 1 while n < 10 && n < line("$") @@ -646,6 +646,10 @@ fun! s:FThtml() setf xhtml return endif + if getline(n) =~ '{%\s*\(extends\|block\)\>' + setf htmldjango + return + endif let n = n + 1 endwhile setf html diff --git a/runtime/keymap/greek_cp737.vim b/runtime/keymap/greek_cp737.vim new file mode 100644 index 0000000000000000000000000000000000000000..e41114eb32b67b6f48bb06b629079fc8eb1fc502 --- /dev/null +++ b/runtime/keymap/greek_cp737.vim @@ -0,0 +1,104 @@ +" Vim Keymap file for greek DOS cp737 +" Maintainer: Panagiotis Louridas <louridas@acm.org> +" Last Updated: Thu Mar 23 14:05:45 EET 2006 + +" This keyboard layout allows all Greek symbols to be typed, +" including accented capitals and diaeresis. It does not +" include diaeresis and accent on the same vowel, nor +" the greek quotes, as these were not included in the codepage. +" It includes the Greek semicolon sign. + +" +" accent ";" + letter +" diaeresis ":" + letter +" diaeresis + accent ";" + ":" (or ":" + ";") + letter +" semicolon "q" +" colon "Q" +" greek semicolon "W" +" sigma at end of word "w" + +" Use this short name in the status line. +let b:keymap_name = "greek" + +loadkeymap +" capital +A <char-128> " Ä +B <char-129> " Å +G <char-130> " Ç +D <char-131> " É +E <char-132> " Ñ +Z <char-133> " Ö +H <char-134> " Ü +U <char-135> " á +I <char-136> " à +K <char-137> " â +L <char-138> " ä +M <char-139> " ã +N <char-140> " å +J <char-141> " ç +O <char-142> " é +P <char-143> " è +R <char-144> " ê +S <char-145> " ë +T <char-146> " í +Y <char-147> " ì +F <char-148> " î +X <char-149> " ï +C <char-150> " ñ +V <char-151> " ó + +" small +a <char-152> " ò +b <char-153> " ô +g <char-154> " ö +d <char-155> " õ +e <char-156> " ú +z <char-157> " ù +h <char-158> " û +u <char-159> " ü +i <char-160> " † +k <char-161> " ° +l <char-162> " ¢ +m <char-163> " £ +n <char-164> " § +j <char-165> " • +o <char-166> " ¶ +p <char-167> " ß +r <char-168> " ® +s <char-169> " © +w <char-170> " ™ +t <char-171> " ´ +y <char-172> " ¨ +f <char-173> " ≠ +x <char-174> " Æ +c <char-175> " Ø +v <char-224> " ‡ + +" accented capital +;A <char-234> " Í +;E <char-235> " Î +;H <char-236> " Ï +;I <char-237> " Ì +;O <char-238> " Ó +;Y <char-239> " Ô +;V <char-240> " +" +:I <char-244> " Ù +:Y <char-245> " ı + +" accented small +;a <char-225> " · +;e <char-226> " ‚ +;h <char-227> " „ +;i <char-229> " Â +;o <char-230> " Ê +;y <char-231> " Á +;v <char-233> " È +" +:i <char-228> " ‰ +:y <char-232> " Ë +" +" symbols +q ; " ; +Q : " : +W <char-250> " ˙ diff --git a/runtime/plugin/vimball.vim b/runtime/plugin/vimball.vim deleted file mode 100644 index 89d2ee182cf147a8a4c8ee6edf0481c577d69d52..0000000000000000000000000000000000000000 --- a/runtime/plugin/vimball.vim +++ /dev/null @@ -1,256 +0,0 @@ -" vimball : construct a file containing both paths and files -" Author: Charles E. Campbell, Jr. -" Date: Mar 20, 2006 -" Version: 3 -" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim -" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr. -" The VIM LICENSE applies to Vimball.vim, and Vimball.txt -" (see |copyright|) except use "Vimball" instead of "Vim". -" No warranty, express or implied. -" *** *** Use At-Your-Own-Risk! *** *** - -" --------------------------------------------------------------------- -" Load Once: {{{1 -if &cp || exists("g:loaded_vimball") - finish -endif - -let s:keepcpo = &cpo -let g:loaded_vimball = "v3" -set cpo&vim - -" ------------------------------------------------------------------------------ -" Public Interface: {{{1 -com! -ra -na=+ -bang MkVimball call s:MkVimball(<line1>,<line2>,<bang>0,<f-args>) -com! -na=0 UseVimball call s:Vimball(1) -com! -na=0 VimballList call s:Vimball(0) -au BufReadPost *.vba echohl WarningMsg | echo "Source this file to extract it! (:so %)" | echohl None - -" ===================================================================== -" Functions: {{{1 - -" --------------------------------------------------------------------- -" MkVimball: creates a vimball given a list of paths to files {{{2 -" Vimball Format: -" path -" filesize -" [file] -" path -" filesize -" [file] -fun! s:MkVimball(line1,line2,writelevel,vimballname) range -" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:vimballname.">") - let vbname= substitute(a:vimballname,'\.[^.]*$','','e').'.vba' - if !a:writelevel && filereadable(vbname) - echohl Error | echoerr "(MkVimball) file<".vbname."> exists; use ! to insist" | echohl None -" call Dret("MkVimball : file<".vbname."> already exists; use ! to insist") - return - endif - - " user option bypass - let eikeep= &ei - set ei=all - - let home = substitute(&rtp,',.*$','','') - let curdir = getcwd() - exe "cd ".home - - " record current tab, initialize while loop index - let curtabnr = tabpagenr() - let linenr = a:line1 -" call Decho("curtabnr=".curtabnr) - - while linenr <= a:line2 - let svfile = getline(linenr) -" call Decho("svfile<".svfile.">") - - if !filereadable(svfile) - echohl Error | echo "unable to read file<".svfile.">" | echohl None - let &ei= eikeep - exe "cd ".curdir -" call Dret("MkVimball") - return - endif - - " create/switch to mkvimball tab - if !exists("vbtabnr") - tabnew - silent! file Vimball - let vbtabnr= tabpagenr() - else - exe "tabn ".vbtabnr - endif - - let lastline= line("$") + 1 - if lastline == 2 && getline("$") == "" - call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.') - call setline(2,'UseVimball') - call setline(3,'finish') - let lastline= 4 - endif - call setline(lastline ,svfile) - call setline(lastline+1,0) - exe "$r ".svfile - call setline(lastline+1,line("$") - lastline - 1) -" call Decho("lastline=".lastline." line$=".line("$")) - - " restore to normal tab - exe "tabn ".curtabnr - let linenr= linenr + 1 - endwhile - - " write the vimball - exe "tabn ".vbtabnr - exe "cd ".curdir - if a:really - if a:writelevel - exe "w! ".vbname - else - exe "w ".vbname - endif - endif -" call Decho("Vimball<".vbname."> created") - echo "Vimball<".vbname."> created" - - " remove the evidence - setlocal nomod bh=wipe - exe "tabn ".curtabnr - exe "tabc ".vbtabnr - - " restore options - let &ei= eikeep - -" call Dret("MkVimball") -endfun - -" --------------------------------------------------------------------- -" Vimball: {{{2 -fun! s:Vimball(really) -" call Dfunc("Vimball(really=".a:really.")") - - if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$' - echoerr "(Vimball) The current file does not appear to be a Vimball!" -" call Dret("Vimball") - return - endif - - " initialize - let regakeep = @a - let eikeep = &ei - let vekeep = &ve - let makeep = getpos("'a") - let curtabnr = tabpagenr() - set ei=all ve=all - - " set up vimball tab - tabnew - silent! file Vimball - let vbtabnr= tabpagenr() - let didhelp= "" - - " go to vim plugin home - let home = substitute(&rtp,',.*$','','') - let curdir = getcwd() -" call Decho("exe cd ".home) - exe "cd ".home - let linenr = 4 - let filecnt = 0 - - " give title to listing of (extracted) files from Vimball Archive - if a:really - echohl Title | echomsg "Vimball Archive" | echohl None - else - echohl Title | echomsg "Vimball Archive Listing" | echohl None - endif - - " apportion vimball contents to various files -" call Decho("exe tabn ".curtabnr) - exe "tabn ".curtabnr -" call Decho("linenr=".linenr." line$=".line("$")) - while 1 < linenr && linenr < line("$") - let fname = getline(linenr) - let fsize = getline(linenr+1) - let filecnt = filecnt + 1 - if a:really - echomsg "extracted <".fname.">: ".fsize." lines" - else - echomsg "would extract <".fname.">: ".fsize." lines" - endif -" call Decho(linenr.": will extract file<".fname.">") -" call Decho((linenr+1).": fsize=".fsize) - - " make directories if they don't exist yet - let fnamebuf= fname - while fnamebuf =~ '/' - let dirname = substitute(fnamebuf,'/.*$','','e') - let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','e') - if !isdirectory(dirname) -" call Decho("making <".dirname.">") - call mkdir(dirname) - endif - exe "cd ".dirname - endwhile - exe "cd ".home - - " grab specified qty of lines and place into "a" buffer - exe linenr - norm! jjma - exe (linenr + fsize + 1) - silent norm! "ay'a -" call Decho("yanked ".fsize." lines into register-a") - -" call Decho("didhelp<".didhelp."> fname<".fname.">") - if didhelp == "" && fname =~ 'doc/[^/]\+\.txt$' - let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','e') -" call Decho("didhelp<".didhelp.">") - endif - - " copy "a" buffer into tab -" call Decho('copy "a buffer into tab#'.vbtabnr) - exe "tabn ".vbtabnr - silent! %d - silent norm! "aPGdd1G -" call Decho("rega<".@a.">") - - " write tab to file -" call Decho("exe w! ".fname) - exe "silent w! ".fname - -" call Decho("exe tabn ".curtabnr) - exe "tabn ".curtabnr -" let oldlinenr = linenr " Decho - let linenr = linenr + fsize + 2 -" call Decho("update linenr= [linenr=".oldlinenr."] + [fsize=".fsize."] + 2 = ".linenr) - endwhile - - " set up help -" call Decho("about to set up help: didhelp<".didhelp.">") - if didhelp != "" -" call Decho("exe helptags ".home."/".didhelp) - exe "helptags ".home."/".didhelp - echomsg "did helptags" - endif - - " make sure a "Press ENTER..." prompt appears to keep the messages showing! - while filecnt < &ch - echomsg " " - let filecnt= filecnt + 1 - endwhile - - " restore events, delete tab and buffer - exe "tabn ".vbtabnr - setlocal nomod bh=wipe - exe "tabn ".curtabnr - exe "tabc ".vbtabnr - let &ei= eikeep - let @a = regakeep - if makeep[0] != 0 - " restore mark a -" call Decho("restore mark-a: makeep=".string(makeep)) - call setpos("'a",makeep) - ka - endif - exe "cd ".curdir - -" call Dret("Vimball") -endfun diff --git a/runtime/syntax/django.vim b/runtime/syntax/django.vim new file mode 100644 index 0000000000000000000000000000000000000000..fc48d2608c68da3728c436814cda549c639b1128 --- /dev/null +++ b/runtime/syntax/django.vim @@ -0,0 +1,72 @@ +" Vim syntax file +" Language: Django template +" Maintainer: Dave Hodder <dmh@dmh.org.uk> +" Last Change: 2006 Mar 23 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syntax case match + +" Django template built-in tags and parameters +" 'comment' doesn't appear here because it gets special treatment +syn keyword djangoStatement contained as block endblock by cycle debug else +syn keyword djangoStatement contained extends filter endfilter firstof for +syn keyword djangoStatement contained endfor if endif ifchanged endifchanged +syn keyword djangoStatement contained ifequal endifequal ifnotequal +syn keyword djangoStatement contained endifnotequal in include load not now or +syn keyword djangoStatement contained parsed regroup reversed spaceless +syn keyword djangoStatement contained endspaceless ssi templatetag openblock +syn keyword djangoStatement contained closeblock openvariable closevariable +syn keyword djangoStatement contained widthratio with + +" Django templete built-in filters +syn keyword djangoFilter contained add addslashes capfirst center cut date +syn keyword djangoFilter contained default default_if_none dictsort +syn keyword djangoFilter contained dictsortreversed divisibleby escape +syn keyword djangoFilter contained filesizeformat first fix_ampersands +syn keyword djangoFilter contained floatformat get_digit join length length_is +syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust +syn keyword djangoFilter contained lower make_list phone2numeric pluralize +syn keyword djangoFilter contained pprint random removetags rjust slice slugify +syn keyword djangoFilter contained stringformat striptags time timesince title +syn keyword djangoFilter contained truncatewords unordered_list upper urlencode +syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno + +" Django template constants (always surrounded by double quotes) +syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/ + +" Django template tag and variable blocks +syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument display +syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument display + +" Django template 'comment' tag +syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_django_syn_inits") + if version < 508 + let did_django_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink djangoTagBlock PreProc + HiLink djangoVarBlock PreProc + HiLink djangoStatement Statement + HiLink djangoFilter Identifier + HiLink djangoArgument Constant + HiLink djangoComment Comment + + delcommand HiLink +endif + +let b:current_syntax = "django" diff --git a/runtime/syntax/htmldjango.vim b/runtime/syntax/htmldjango.vim new file mode 100644 index 0000000000000000000000000000000000000000..a3c65fd4755bc89e80213db84d979cebda5d11f0 --- /dev/null +++ b/runtime/syntax/htmldjango.vim @@ -0,0 +1,30 @@ +" Vim syntax file +" Language: Django HTML template +" Maintainer: Dave Hodder <dmh@dmh.org.uk> +" Last Change: 2006 Mar 06 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'html' +endif + +if version < 600 + so <sfile>:p:h/django.vim + so <sfile>:p:h/html.vim +else + runtime! syntax/django.vim + runtime! syntax/html.vim + unlet b:current_syntax +endif + +syntax cluster htmlPreproc add=djangoPlaceHolder +syntax cluster htmlString add=djangoPlaceHolder + +let b:current_syntax = "htmldjango" diff --git a/src/Makefile b/src/Makefile index ecf7bf8ff1f9c15041f3f36297721f2414d25267..4c415cb10ba28f84b06b01724df22155fa0a6a34 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1857,8 +1857,8 @@ installtutor: $(DEST_RT) $(DEST_TUTOR) # spell file is there. installspell: $(DEST_VIM) $(DEST_RT) $(DEST_SPELL) if test -f $(SPELLSOURCE)/en.latin1.spl; then \ - $(INSTALL_DATA) $(SPELLSOURCE)/*.spl $(SPELLSOURCE)/*.vim $(DEST_SPELL); \ - chmod $(HELPMOD) $(DEST_SPELL)/*.spl $(DEST_SPELL)/*.vim; \ + $(INSTALL_DATA) $(SPELLSOURCE)/*.spl $(SPELLSOURCE)/*.sug $(SPELLSOURCE)/*.vim $(DEST_SPELL); \ + chmod $(HELPMOD) $(DEST_SPELL)/*.spl $(DEST_SPELL)/*.sug $(DEST_SPELL)/*.vim; \ fi # install helper program xxd @@ -2029,7 +2029,7 @@ $(DEST_BIN)/$(EVIMTARGET): $(DEST_BIN)/$(EVIEWTARGET): cd $(DEST_BIN); ln -s $(VIMTARGET) $(EVIEWTARGET) -# create links for the manual pages with various names to vim. This is only +# Create links for the manual pages with various names to vim. This is only # done when the links (or manpages with the same name) don't exist yet. INSTALLMLARGS = $(VIMNAME) $(VIMDIFFNAME) $(EVIMNAME) \ @@ -2520,6 +2520,8 @@ install_macosx: gui_bundle # Remove the link to the runtime dir, don't want to copy all of that. -rm $(RESDIR)/vim/runtime $(INSTALL_DATA_R) $(APPDIR) $(DESTDIR)$(prefix) +# Generate the help tags file now, it won't work with "make installruntime". + -@srcdir=`pwd`; cd $(HELPSOURCE); $(MAKE) VIMEXE=$$srcdir/$(VIMTARGET) vimtags # Install the runtime files. Recursive! -mkdir -p $(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime # -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin @@ -2538,7 +2540,6 @@ $(RESDIR): mkdir -p $@ bundle-dir: $(APPDIR)/Contents $(VIMTARGET) - -@srcdir=`pwd`; cd $(HELPSOURCE); $(MAKE) VIMEXE=$$srcdir/$(VIMTARGET) vimtags # Make a link to the runtime directory, so that we can try out the executable # without installing it. mkdir -p $(RESDIR)/vim diff --git a/src/config.mk.in b/src/config.mk.in index 4996afdb5c43c9e2b7719fb6d1142bfc9b8a8f19..759559a4e88e52c01b0cf516f173a1e375fbe566 100644 --- a/src/config.mk.in +++ b/src/config.mk.in @@ -135,8 +135,6 @@ NARROW_PROTO = @NARROW_PROTO@ GUI_X_LIBS = @GUI_X_LIBS@ MOTIF_LIBNAME = @MOTIF_LIBNAME@ GTK_LIBNAME = @GTK_LIBNAME@ -KDE_PREFIX = @KDE_PREFIX@ -MOC = @MOC@ ### Any OS dependent extra source and object file OS_EXTRA_SRC = @OS_EXTRA_SRC@ diff --git a/src/configure.in b/src/configure.in index 90eb33b8a61a1259d9531ccc889f39fd25bb6ca8..aae20b9150b94ace660020a2136900bf7de01d9d 100644 --- a/src/configure.in +++ b/src/configure.in @@ -169,9 +169,9 @@ if test "`(uname) 2>/dev/null`" = Darwin; then fi fi - dnl Avoid a bug with -O2 with gcc 4.0. Symptom: malloc() reports double + dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double dnl free. This happens in expand_filename(), because the optimizer swaps - dnl two blocks of code that use "repl" that can't be swapped. + dnl two blocks of code, both using "repl", that can't be swapped. if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'` fi diff --git a/src/eval.c b/src/eval.c index f47f16e475e9ef44af46e3108645ea9b37b2ad3f..efa04be1ac002470d3c2d9d48f1463ea32bb37eb 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1661,11 +1661,12 @@ ex_let(eap) int var_count = 0; int semicolon = 0; char_u op[2]; + char_u *argend; - expr = skip_var_list(arg, &var_count, &semicolon); - if (expr == NULL) + argend = skip_var_list(arg, &var_count, &semicolon); + if (argend == NULL) return; - expr = vim_strchr(expr, '='); + expr = vim_strchr(argend, '='); if (expr == NULL) { /* @@ -1692,7 +1693,7 @@ ex_let(eap) { op[0] = '='; op[1] = NUL; - if (expr > arg) + if (expr > argend) { if (vim_strchr((char_u *)"+-.", expr[-1]) != NULL) op[0] = expr[-1]; /* +=, -= or .= */ @@ -12664,7 +12665,8 @@ list2proftime(arg, tm) n1 = list_find_nr(arg->vval.v_list, 0L, &error); n2 = list_find_nr(arg->vval.v_list, 1L, &error); # ifdef WIN3264 - tm->QuadPart = (n1 << 32) + n2; + tm->HighPart = n1; + tm->LowPart = n2; # else tm->tv_sec = n1; tm->tv_usec = n2; @@ -12710,8 +12712,8 @@ f_reltime(argvars, rettv) long n1, n2; # ifdef WIN3264 - n1 = res.QuadPart >> 32; - n2 = res.QuadPart & 0xffffffff; + n1 = res.HighPart; + n2 = res.LowPart; # else n1 = res.tv_sec; n2 = res.tv_usec; diff --git a/src/ex_cmds.h b/src/ex_cmds.h index fa8f4ef7599fde994b6823abe958183d3842753d..dd1622a803d2fa034b09111935a8a968dd5fed83 100644 --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -213,8 +213,12 @@ EX(CMD_cfile, "cfile", ex_cfile, TRLBAR|FILE1|BANG), EX(CMD_cfirst, "cfirst", ex_cc, RANGE|NOTADR|COUNT|TRLBAR|BANG), +EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer, + RANGE|NOTADR|WORD1|TRLBAR), EX(CMD_cgetfile, "cgetfile", ex_cfile, TRLBAR|FILE1|BANG), +EX(CMD_cgetexpr, "cgetexpr", ex_cexpr, + NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), EX(CMD_chdir, "chdir", ex_cd, BANG|FILE1|TRLBAR|CMDWIN), EX(CMD_changes, "changes", ex_changes, @@ -517,6 +521,10 @@ EX(CMD_lfirst, "lfirst", ex_cc, RANGE|NOTADR|COUNT|TRLBAR|BANG), EX(CMD_lgetfile, "lgetfile", ex_cfile, TRLBAR|FILE1|BANG), +EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer, + RANGE|NOTADR|WORD1|TRLBAR), +EX(CMD_lgetexpr, "lgetexpr", ex_cexpr, + NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), EX(CMD_lgrep, "lgrep", ex_make, RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), EX(CMD_lgrepadd, "lgrepadd", ex_make, diff --git a/src/ex_getln.c b/src/ex_getln.c index 58cfec8439d805f8fbdbc29faadc4c742883d373..ec6ee567a3d3a85134616cad403eed1072568946 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1749,6 +1749,8 @@ cmdline_changed: end_pos = curwin->w_cursor; curwin->w_cursor = save_pos; } + else + end_pos = curwin->w_cursor; /* shutup gcc 4 */ validate_cursor(); diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index f1661b4fcd90c44e9d8d91e9bb1f3e31763c40a7..35e18c97794ba0c8e2cca0aeba3cfccff91e94c7 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -41,6 +41,10 @@ # endif # include <gnome.h> # include "version.h" +# ifdef HAVE_GTK2 +/* missing prototype in bonobo-dock-item.h */ +extern void bonobo_dock_item_set_behavior(BonoboDockItem *dock_item, BonoboDockItemBehavior beh); +# endif #endif #if !defined(FEAT_GUI_GTK) && defined(PROTO) @@ -3541,8 +3545,10 @@ gui_mch_init(void) gnome_app_set_menus(GNOME_APP(gui.mainwin), GTK_MENU_BAR(gui.menubar)); dockitem = gnome_app_get_dock_item_by_name(GNOME_APP(gui.mainwin), GNOME_APP_MENUBAR_NAME); - // bonobo_dock_item_set_behavior(dockitem, - // BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING); + /* We don't want the menu to float. */ + bonobo_dock_item_set_behavior(dockitem, + bonobo_dock_item_get_behavior(dockitem) + | BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING); gui.menubar_h = GTK_WIDGET(dockitem); # else gui.menubar_h = gnome_dock_item_new("VimMainMenu", @@ -3600,9 +3606,10 @@ gui_mch_init(void) GNOME_APP_TOOLBAR_NAME); gui.toolbar_h = GTK_WIDGET(dockitem); /* When the toolbar is floating it gets stuck. So long as that isn't - * fixed let's disallow floating. Also changes it appearance... */ + * fixed let's disallow floating. */ bonobo_dock_item_set_behavior(dockitem, - BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING); + bonobo_dock_item_get_behavior(dockitem) + | BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING); gtk_container_set_border_width(GTK_CONTAINER(gui.toolbar), 0); # else GtkWidget *dockitem; diff --git a/src/option.c b/src/option.c index 73933b4dd10ec4ab3ddf7a39f83d386d8ab0ada8..ff33e0f421b3f88ac7651322d7138249a2c84907 100644 --- a/src/option.c +++ b/src/option.c @@ -6053,7 +6053,7 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf, #if defined(FEAT_GUI_TABLINE) /* 'guitablabel' */ else if (varp == &p_gtl) - gui_update_tabline(); + gui_init_which_components(NULL); #endif #if defined(FEAT_MOUSE_TTY) && (defined(UNIX) || defined(VMS)) diff --git a/src/quickfix.c b/src/quickfix.c index 7d4a00654fedad107a6d39206360a399d77dec20..f22c860c7cadbb58ac8513e9f5c93b194d116d43 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -3497,8 +3497,10 @@ set_errorlist(wp, list, action) /* * ":[range]cbuffer [bufnr]" command. * ":[range]caddbuffer [bufnr]" command. + * ":[range]cgetbuffer [bufnr]" command. * ":[range]lbuffer [bufnr]" command. * ":[range]laddbuffer [bufnr]" command. + * ":[range]lgetbuffer [bufnr]" command. */ void ex_cbuffer(eap) @@ -3507,7 +3509,8 @@ ex_cbuffer(eap) buf_T *buf = NULL; qf_info_T *qi = &ql_info; - if (eap->cmdidx == CMD_lbuffer || eap->cmdidx == CMD_laddbuffer) + if (eap->cmdidx == CMD_lbuffer || eap->cmdidx == CMD_lgetbuffer + || eap->cmdidx == CMD_laddbuffer) { qi = ll_get_or_alloc_list(curwin); if (qi == NULL) @@ -3534,12 +3537,12 @@ ex_cbuffer(eap) EMSG(_(e_invrange)); else { - int buffer_cmd = (eap->cmdidx == CMD_cbuffer - || eap->cmdidx == CMD_lbuffer); - - if (qf_init_ext(qi, NULL, buf, NULL, p_efm, buffer_cmd, + if (qf_init_ext(qi, NULL, buf, NULL, p_efm, + (eap->cmdidx != CMD_caddbuffer + && eap->cmdidx != CMD_laddbuffer), eap->line1, eap->line2) > 0 - && buffer_cmd) + && (eap->cmdidx == CMD_cbuffer + || eap->cmdidx == CMD_lbuffer)) qf_jump(qi, 0, 0, eap->forceit); /* display first error */ } } @@ -3547,8 +3550,8 @@ ex_cbuffer(eap) #if defined(FEAT_EVAL) || defined(PROTO) /* - * ":cexpr {expr}" and ":caddexpr {expr}" command. - * ":lexpr {expr}" and ":laddexpr {expr}" command. + * ":cexpr {expr}", ":cgetexpr {expr}", ":caddexpr {expr}" command. + * ":lexpr {expr}", ":lgetexpr {expr}", ":laddexpr {expr}" command. */ void ex_cexpr(eap) @@ -3557,7 +3560,8 @@ ex_cexpr(eap) typval_T *tv; qf_info_T *qi = &ql_info; - if (eap->cmdidx == CMD_lexpr || eap->cmdidx == CMD_laddexpr) + if (eap->cmdidx == CMD_lexpr || eap->cmdidx == CMD_lgetexpr + || eap->cmdidx == CMD_laddexpr) { qi = ll_get_or_alloc_list(curwin); if (qi == NULL) @@ -3572,11 +3576,12 @@ ex_cexpr(eap) if ((tv->v_type == VAR_STRING && tv->vval.v_string != NULL) || (tv->v_type == VAR_LIST && tv->vval.v_list != NULL)) { - int expr_cmd = (eap->cmdidx == CMD_cexpr - || eap->cmdidx == CMD_lexpr); - if (qf_init_ext(qi, NULL, NULL, tv, p_efm, expr_cmd, + if (qf_init_ext(qi, NULL, NULL, tv, p_efm, + (eap->cmdidx != CMD_caddexpr + && eap->cmdidx != CMD_laddexpr), (linenr_T)0, (linenr_T)0) > 0 - && expr_cmd) + && (eap->cmdidx == CMD_cexpr + || eap->cmdidx == CMD_lexpr)) qf_jump(qi, 0, 0, eap->forceit); /* display first error */ } else diff --git a/src/regexp.c b/src/regexp.c index dd07ea734db1bb1fdc1f04dde115afb3498910a3..e0bfb030587beac24ec408202b8c7b1b6f9647f3 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -6854,6 +6854,23 @@ vim_regsub_both(source, dest, copy, magic, backslash) } if (no < 0) /* Ordinary character. */ { + if (c == K_SPECIAL && src[0] != NUL && src[1] != NUL) + { + /* Copy a specialy key as-is. */ + if (copy) + { + *dst++ = c; + *dst++ = *src++; + *dst++ = *src++; + } + else + { + dst += 3; + src += 2; + } + continue; + } + if (c == '\\' && *src != NUL) { /* Check for abbreviations -- webb */ @@ -6877,13 +6894,12 @@ vim_regsub_both(source, dest, copy, magic, backslash) c = *src++; } } - - /* Write to buffer, if copy is set. */ #ifdef FEAT_MBYTE - if (has_mbyte) + else if (has_mbyte) c = mb_ptr2char(src - 1); #endif + /* Write to buffer, if copy is set. */ if (func == (fptr_T)NULL) /* just copy */ cc = c; else diff --git a/src/screen.c b/src/screen.c index fbc3fee5169ce8ba570fdbe7094d2fa72378a7c1..0e8b86778b946db01a26770f9d3de37547e6e2e5 100644 --- a/src/screen.c +++ b/src/screen.c @@ -8791,7 +8791,7 @@ draw_tabline() redraw_tabline = FALSE; #ifdef FEAT_GUI_TABLINE - /* When the GUI has the tabline then this always returns zero. */ + /* Take care of a GUI tabline. */ if (gui_use_tabline()) { gui_update_tabline(); diff --git a/src/undo.c b/src/undo.c index ed106c174350dbb49d759774b7e744eec3349dff..8d23e7702bd2d7013ac148d4d39d72ed689c9493 100644 --- a/src/undo.c +++ b/src/undo.c @@ -88,7 +88,7 @@ static int undo_allowed __ARGS((void)); static int u_savecommon __ARGS((linenr_T, linenr_T, linenr_T)); static void u_doit __ARGS((int count)); static void u_undoredo __ARGS((int undo)); -static void u_undo_end __ARGS((int did_undo)); +static void u_undo_end __ARGS((int did_undo, int absolute)); static void u_add_time __ARGS((char_u *buf, size_t buflen, time_t tt)); static void u_freeheader __ARGS((buf_T *buf, u_header_T *uhp, u_header_T **uhpp)); static void u_freebranch __ARGS((buf_T *buf, u_header_T *uhp, u_header_T **uhpp)); @@ -638,7 +638,7 @@ u_doit(startcount) curbuf->b_u_curhead = curbuf->b_u_curhead->uh_prev; } } - u_undo_end(undo_undoes); + u_undo_end(undo_undoes, FALSE); } static int lastmark = 0; @@ -704,7 +704,7 @@ undo_time(step, sec, absolute) else { if (sec) - closest = time(NULL) - starttime + 1; + closest = (long)(time(NULL) - starttime + 1); else closest = curbuf->b_u_seq_last + 2; if (target >= closest) @@ -739,7 +739,7 @@ undo_time(step, sec, absolute) while (uhp != NULL) { uhp->uh_walk = mark; - val = (dosec ? (uhp->uh_time - starttime) : uhp->uh_seq); + val = (long)(dosec ? (uhp->uh_time - starttime) : uhp->uh_seq); if (round == 1) { @@ -788,7 +788,12 @@ undo_time(step, sec, absolute) else if (uhp->uh_next != NULL && uhp->uh_alt_prev == NULL && uhp->uh_next->uh_walk != nomark && uhp->uh_next->uh_walk != mark) + { + /* If still at the start we don't go through this change. */ + if (uhp == curbuf->b_u_curhead) + uhp->uh_walk = nomark; uhp = uhp->uh_next; + } else { @@ -880,7 +885,10 @@ undo_time(step, sec, absolute) /* Stop when going backwards in time and didn't find the exact * header we were looking for. */ if (uhp->uh_seq == target && above) + { + curbuf->b_u_seq_cur = target - 1; break; + } u_undoredo(FALSE); @@ -903,7 +911,7 @@ undo_time(step, sec, absolute) } } } - u_undo_end(did_undo); + u_undo_end(did_undo, absolute); } /* @@ -1176,8 +1184,9 @@ u_undoredo(undo) * in some cases, but it's better than nothing). */ static void -u_undo_end(did_undo) +u_undo_end(did_undo, absolute) int did_undo; /* just did an undo */ + int absolute; /* used ":undo N" */ { char *msg; u_header_T *uhp; @@ -1215,7 +1224,13 @@ u_undo_end(did_undo) if (curbuf->b_u_curhead != NULL) { - if (did_undo) + /* For ":undo N" we prefer a "after #N" message. */ + if (absolute && curbuf->b_u_curhead->uh_next != NULL) + { + uhp = curbuf->b_u_curhead->uh_next; + did_undo = FALSE; + } + else if (did_undo) uhp = curbuf->b_u_curhead; else uhp = curbuf->b_u_curhead->uh_next; diff --git a/src/version.h b/src/version.h index 6ba548ba14ca2de58410d5216fe0bc78318bc845..f3a87f7729cc4a09d4900689aff0bc7895dc2dbc 100644 --- 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 (2006 Mar 21)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 21, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 23)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 23, compiled "