This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, master has been updated via bb09267f55f5404153cac90b73ebd318af8643d8 (commit) from 3a13d0270de51c7055cff8a8c6a0f99b82e47a10 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit bb09267f55f5404153cac90b73ebd318af8643d8 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Dec 7 14:29:12 2010 +0100
vim: Update to 7.2.
-----------------------------------------------------------------------
Summary of changes: config/rootfiles/common/vim | 2285 +++++---- lfs/vim | 13 +- src/patches/vim-7.0-fixes-7.patch | 1473 ------ src/patches/vim-7.0-spellfile-1.patch | 29 - src/patches/vim-7.2-fixes-4.patch | 5414 ++++++++++++++++++++ ...m-7.0-mandir-1.patch => vim-7.2-mandir-1.patch} | 0 6 files changed, 6620 insertions(+), 2594 deletions(-) delete mode 100644 src/patches/vim-7.0-fixes-7.patch delete mode 100644 src/patches/vim-7.0-spellfile-1.patch create mode 100644 src/patches/vim-7.2-fixes-4.patch rename src/patches/{vim-7.0-mandir-1.patch => vim-7.2-mandir-1.patch} (100%)
Difference in files: diff --git a/config/rootfiles/common/vim b/config/rootfiles/common/vim index 2c095b2..65667bc 100644 --- a/config/rootfiles/common/vim +++ b/config/rootfiles/common/vim @@ -18,1088 +18,1203 @@ usr/bin/vim #usr/share/man/man1/vimtutor.1 #usr/share/man/man1/xxd.1 #usr/share/vim -#usr/share/vim/vim70 -#usr/share/vim/vim70/autoload -#usr/share/vim/vim70/autoload/README.txt -#usr/share/vim/vim70/autoload/ccomplete.vim -#usr/share/vim/vim70/autoload/csscomplete.vim -#usr/share/vim/vim70/autoload/gzip.vim -#usr/share/vim/vim70/autoload/htmlcomplete.vim -#usr/share/vim/vim70/autoload/javascriptcomplete.vim -#usr/share/vim/vim70/autoload/netrw.vim -#usr/share/vim/vim70/autoload/netrwFileHandlers.vim -#usr/share/vim/vim70/autoload/netrwSettings.vim -#usr/share/vim/vim70/autoload/paste.vim -#usr/share/vim/vim70/autoload/phpcomplete.vim -#usr/share/vim/vim70/autoload/pythoncomplete.vim -#usr/share/vim/vim70/autoload/rubycomplete.vim -#usr/share/vim/vim70/autoload/spellfile.vim -#usr/share/vim/vim70/autoload/sqlcomplete.vim -#usr/share/vim/vim70/autoload/syntaxcomplete.vim -#usr/share/vim/vim70/autoload/tar.vim -#usr/share/vim/vim70/autoload/vimball.vim -#usr/share/vim/vim70/autoload/xml -#usr/share/vim/vim70/autoload/xml/html32.vim -#usr/share/vim/vim70/autoload/xml/html401f.vim -#usr/share/vim/vim70/autoload/xml/html401s.vim -#usr/share/vim/vim70/autoload/xml/html401t.vim -#usr/share/vim/vim70/autoload/xml/html40f.vim -#usr/share/vim/vim70/autoload/xml/html40s.vim -#usr/share/vim/vim70/autoload/xml/html40t.vim -#usr/share/vim/vim70/autoload/xml/xhtml10f.vim -#usr/share/vim/vim70/autoload/xml/xhtml10s.vim -#usr/share/vim/vim70/autoload/xml/xhtml10t.vim -#usr/share/vim/vim70/autoload/xml/xhtml11.vim -#usr/share/vim/vim70/autoload/xml/xsl.vim -#usr/share/vim/vim70/autoload/xmlcomplete.vim -#usr/share/vim/vim70/autoload/zip.vim -#usr/share/vim/vim70/bugreport.vim -#usr/share/vim/vim70/colors -#usr/share/vim/vim70/colors/README.txt -#usr/share/vim/vim70/colors/blue.vim -#usr/share/vim/vim70/colors/darkblue.vim -#usr/share/vim/vim70/colors/default.vim -#usr/share/vim/vim70/colors/delek.vim -#usr/share/vim/vim70/colors/desert.vim -#usr/share/vim/vim70/colors/elflord.vim -#usr/share/vim/vim70/colors/evening.vim -#usr/share/vim/vim70/colors/koehler.vim -#usr/share/vim/vim70/colors/morning.vim -#usr/share/vim/vim70/colors/murphy.vim -#usr/share/vim/vim70/colors/pablo.vim -#usr/share/vim/vim70/colors/peachpuff.vim -#usr/share/vim/vim70/colors/ron.vim -#usr/share/vim/vim70/colors/shine.vim -#usr/share/vim/vim70/colors/slate.vim -#usr/share/vim/vim70/colors/torte.vim -#usr/share/vim/vim70/colors/zellner.vim -#usr/share/vim/vim70/compiler -#usr/share/vim/vim70/compiler/README.txt -#usr/share/vim/vim70/compiler/ant.vim -#usr/share/vim/vim70/compiler/bcc.vim -#usr/share/vim/vim70/compiler/bdf.vim -#usr/share/vim/vim70/compiler/checkstyle.vim -#usr/share/vim/vim70/compiler/cs.vim -#usr/share/vim/vim70/compiler/dot.vim -#usr/share/vim/vim70/compiler/eruby.vim -#usr/share/vim/vim70/compiler/fortran_F.vim -#usr/share/vim/vim70/compiler/fortran_cv.vim -#usr/share/vim/vim70/compiler/fortran_elf90.vim -#usr/share/vim/vim70/compiler/fortran_g77.vim -#usr/share/vim/vim70/compiler/fortran_lf95.vim -#usr/share/vim/vim70/compiler/fpc.vim -#usr/share/vim/vim70/compiler/gcc.vim -#usr/share/vim/vim70/compiler/hp_acc.vim -#usr/share/vim/vim70/compiler/icc.vim -#usr/share/vim/vim70/compiler/intel.vim -#usr/share/vim/vim70/compiler/irix5_c.vim -#usr/share/vim/vim70/compiler/irix5_cpp.vim -#usr/share/vim/vim70/compiler/javac.vim -#usr/share/vim/vim70/compiler/jikes.vim -#usr/share/vim/vim70/compiler/mips_c.vim -#usr/share/vim/vim70/compiler/mipspro_c89.vim -#usr/share/vim/vim70/compiler/mipspro_cpp.vim -#usr/share/vim/vim70/compiler/modelsim_vcom.vim -#usr/share/vim/vim70/compiler/msvc.vim -#usr/share/vim/vim70/compiler/neato.vim -#usr/share/vim/vim70/compiler/onsgmls.vim -#usr/share/vim/vim70/compiler/pbx.vim -#usr/share/vim/vim70/compiler/perl.vim -#usr/share/vim/vim70/compiler/php.vim -#usr/share/vim/vim70/compiler/pyunit.vim -#usr/share/vim/vim70/compiler/rst.vim -#usr/share/vim/vim70/compiler/ruby.vim -#usr/share/vim/vim70/compiler/rubyunit.vim -#usr/share/vim/vim70/compiler/se.vim -#usr/share/vim/vim70/compiler/splint.vim -#usr/share/vim/vim70/compiler/tcl.vim -#usr/share/vim/vim70/compiler/tex.vim -#usr/share/vim/vim70/compiler/tidy.vim -#usr/share/vim/vim70/compiler/xmllint.vim -#usr/share/vim/vim70/compiler/xmlwf.vim -#usr/share/vim/vim70/delmenu.vim -#usr/share/vim/vim70/doc -#usr/share/vim/vim70/doc/arabic.txt -#usr/share/vim/vim70/doc/autocmd.txt -#usr/share/vim/vim70/doc/change.txt -#usr/share/vim/vim70/doc/cmdline.txt -#usr/share/vim/vim70/doc/debug.txt -#usr/share/vim/vim70/doc/debugger.txt -#usr/share/vim/vim70/doc/develop.txt -#usr/share/vim/vim70/doc/diff.txt -#usr/share/vim/vim70/doc/digraph.txt -#usr/share/vim/vim70/doc/editing.txt -#usr/share/vim/vim70/doc/eval.txt -#usr/share/vim/vim70/doc/farsi.txt -#usr/share/vim/vim70/doc/filetype.txt -#usr/share/vim/vim70/doc/fold.txt -#usr/share/vim/vim70/doc/getscript.txt -#usr/share/vim/vim70/doc/gui.txt -#usr/share/vim/vim70/doc/gui_w16.txt -#usr/share/vim/vim70/doc/gui_w32.txt -#usr/share/vim/vim70/doc/gui_x11.txt -#usr/share/vim/vim70/doc/hangulin.txt -#usr/share/vim/vim70/doc/hebrew.txt -#usr/share/vim/vim70/doc/help.txt -#usr/share/vim/vim70/doc/howto.txt -#usr/share/vim/vim70/doc/if_cscop.txt -#usr/share/vim/vim70/doc/if_mzsch.txt -#usr/share/vim/vim70/doc/if_ole.txt -#usr/share/vim/vim70/doc/if_perl.txt -#usr/share/vim/vim70/doc/if_pyth.txt -#usr/share/vim/vim70/doc/if_ruby.txt -#usr/share/vim/vim70/doc/if_sniff.txt -#usr/share/vim/vim70/doc/if_tcl.txt -#usr/share/vim/vim70/doc/indent.txt -#usr/share/vim/vim70/doc/index.txt -#usr/share/vim/vim70/doc/insert.txt -#usr/share/vim/vim70/doc/intro.txt -#usr/share/vim/vim70/doc/map.txt -#usr/share/vim/vim70/doc/mbyte.txt -#usr/share/vim/vim70/doc/message.txt -#usr/share/vim/vim70/doc/mlang.txt -#usr/share/vim/vim70/doc/motion.txt -#usr/share/vim/vim70/doc/netbeans.txt -#usr/share/vim/vim70/doc/options.txt -#usr/share/vim/vim70/doc/os_390.txt -#usr/share/vim/vim70/doc/os_amiga.txt -#usr/share/vim/vim70/doc/os_beos.txt -#usr/share/vim/vim70/doc/os_dos.txt -#usr/share/vim/vim70/doc/os_mac.txt -#usr/share/vim/vim70/doc/os_mint.txt -#usr/share/vim/vim70/doc/os_msdos.txt -#usr/share/vim/vim70/doc/os_os2.txt -#usr/share/vim/vim70/doc/os_qnx.txt -#usr/share/vim/vim70/doc/os_risc.txt -#usr/share/vim/vim70/doc/os_unix.txt -#usr/share/vim/vim70/doc/os_vms.txt -#usr/share/vim/vim70/doc/os_win32.txt -#usr/share/vim/vim70/doc/pattern.txt -#usr/share/vim/vim70/doc/pi_gzip.txt -#usr/share/vim/vim70/doc/pi_netrw.txt -#usr/share/vim/vim70/doc/pi_paren.txt -#usr/share/vim/vim70/doc/pi_spec.txt -#usr/share/vim/vim70/doc/pi_tar.txt -#usr/share/vim/vim70/doc/pi_vimball.txt -#usr/share/vim/vim70/doc/pi_zip.txt -#usr/share/vim/vim70/doc/print.txt -#usr/share/vim/vim70/doc/quickfix.txt -#usr/share/vim/vim70/doc/quickref.txt -#usr/share/vim/vim70/doc/quotes.txt -#usr/share/vim/vim70/doc/recover.txt -#usr/share/vim/vim70/doc/remote.txt -#usr/share/vim/vim70/doc/repeat.txt -#usr/share/vim/vim70/doc/rileft.txt -#usr/share/vim/vim70/doc/russian.txt -#usr/share/vim/vim70/doc/scroll.txt -#usr/share/vim/vim70/doc/sign.txt -#usr/share/vim/vim70/doc/spell.txt -#usr/share/vim/vim70/doc/sponsor.txt -#usr/share/vim/vim70/doc/sql.txt -#usr/share/vim/vim70/doc/starting.txt -#usr/share/vim/vim70/doc/syntax.txt -#usr/share/vim/vim70/doc/tabpage.txt -#usr/share/vim/vim70/doc/tags -#usr/share/vim/vim70/doc/tagsrch.txt -#usr/share/vim/vim70/doc/term.txt -#usr/share/vim/vim70/doc/tips.txt -#usr/share/vim/vim70/doc/todo.txt -#usr/share/vim/vim70/doc/uganda.txt -#usr/share/vim/vim70/doc/undo.txt -#usr/share/vim/vim70/doc/usr_01.txt -#usr/share/vim/vim70/doc/usr_02.txt -#usr/share/vim/vim70/doc/usr_03.txt -#usr/share/vim/vim70/doc/usr_04.txt -#usr/share/vim/vim70/doc/usr_05.txt -#usr/share/vim/vim70/doc/usr_06.txt -#usr/share/vim/vim70/doc/usr_07.txt -#usr/share/vim/vim70/doc/usr_08.txt -#usr/share/vim/vim70/doc/usr_09.txt -#usr/share/vim/vim70/doc/usr_10.txt -#usr/share/vim/vim70/doc/usr_11.txt -#usr/share/vim/vim70/doc/usr_12.txt -#usr/share/vim/vim70/doc/usr_20.txt -#usr/share/vim/vim70/doc/usr_21.txt -#usr/share/vim/vim70/doc/usr_22.txt -#usr/share/vim/vim70/doc/usr_23.txt -#usr/share/vim/vim70/doc/usr_24.txt -#usr/share/vim/vim70/doc/usr_25.txt -#usr/share/vim/vim70/doc/usr_26.txt -#usr/share/vim/vim70/doc/usr_27.txt -#usr/share/vim/vim70/doc/usr_28.txt -#usr/share/vim/vim70/doc/usr_29.txt -#usr/share/vim/vim70/doc/usr_30.txt -#usr/share/vim/vim70/doc/usr_31.txt -#usr/share/vim/vim70/doc/usr_32.txt -#usr/share/vim/vim70/doc/usr_40.txt -#usr/share/vim/vim70/doc/usr_41.txt -#usr/share/vim/vim70/doc/usr_42.txt -#usr/share/vim/vim70/doc/usr_43.txt -#usr/share/vim/vim70/doc/usr_44.txt -#usr/share/vim/vim70/doc/usr_45.txt -#usr/share/vim/vim70/doc/usr_90.txt -#usr/share/vim/vim70/doc/usr_toc.txt -#usr/share/vim/vim70/doc/various.txt -#usr/share/vim/vim70/doc/version4.txt -#usr/share/vim/vim70/doc/version5.txt -#usr/share/vim/vim70/doc/version6.txt -#usr/share/vim/vim70/doc/version7.txt -#usr/share/vim/vim70/doc/vi_diff.txt -#usr/share/vim/vim70/doc/vim2html.pl -#usr/share/vim/vim70/doc/visual.txt -#usr/share/vim/vim70/doc/windows.txt -#usr/share/vim/vim70/doc/workshop.txt -#usr/share/vim/vim70/evim.vim -#usr/share/vim/vim70/filetype.vim -#usr/share/vim/vim70/ftoff.vim -#usr/share/vim/vim70/ftplugin -#usr/share/vim/vim70/ftplugin.vim -#usr/share/vim/vim70/ftplugin/AppendMatchGroup.vim -#usr/share/vim/vim70/ftplugin/README.txt -#usr/share/vim/vim70/ftplugin/a2ps.vim -#usr/share/vim/vim70/ftplugin/aap.vim -#usr/share/vim/vim70/ftplugin/abaqus.vim -#usr/share/vim/vim70/ftplugin/ada.vim -#usr/share/vim/vim70/ftplugin/alsaconf.vim -#usr/share/vim/vim70/ftplugin/ant.vim -#usr/share/vim/vim70/ftplugin/arch.vim -#usr/share/vim/vim70/ftplugin/art.vim -#usr/share/vim/vim70/ftplugin/aspvbs.vim -#usr/share/vim/vim70/ftplugin/automake.vim -#usr/share/vim/vim70/ftplugin/bdf.vim -#usr/share/vim/vim70/ftplugin/btm.vim -#usr/share/vim/vim70/ftplugin/c.vim -#usr/share/vim/vim70/ftplugin/calendar.vim -#usr/share/vim/vim70/ftplugin/ch.vim -#usr/share/vim/vim70/ftplugin/changelog.vim -#usr/share/vim/vim70/ftplugin/conf.vim -#usr/share/vim/vim70/ftplugin/config.vim -#usr/share/vim/vim70/ftplugin/context.vim -#usr/share/vim/vim70/ftplugin/cpp.vim -#usr/share/vim/vim70/ftplugin/crm.vim -#usr/share/vim/vim70/ftplugin/cs.vim -#usr/share/vim/vim70/ftplugin/csc.vim -#usr/share/vim/vim70/ftplugin/csh.vim -#usr/share/vim/vim70/ftplugin/css.vim -#usr/share/vim/vim70/ftplugin/cvsrc.vim -#usr/share/vim/vim70/ftplugin/debchangelog.vim -#usr/share/vim/vim70/ftplugin/dictconf.vim -#usr/share/vim/vim70/ftplugin/dictdconf.vim -#usr/share/vim/vim70/ftplugin/diff.vim -#usr/share/vim/vim70/ftplugin/dircolors.vim -#usr/share/vim/vim70/ftplugin/dosbatch.vim -#usr/share/vim/vim70/ftplugin/dtd.vim -#usr/share/vim/vim70/ftplugin/elinks.vim -#usr/share/vim/vim70/ftplugin/eruby.vim -#usr/share/vim/vim70/ftplugin/eterm.vim -#usr/share/vim/vim70/ftplugin/fetchmail.vim -#usr/share/vim/vim70/ftplugin/flexwiki.vim -#usr/share/vim/vim70/ftplugin/fortran.vim -#usr/share/vim/vim70/ftplugin/gpg.vim -#usr/share/vim/vim70/ftplugin/group.vim -#usr/share/vim/vim70/ftplugin/grub.vim -#usr/share/vim/vim70/ftplugin/haskell.vim -#usr/share/vim/vim70/ftplugin/help.vim -#usr/share/vim/vim70/ftplugin/html.vim -#usr/share/vim/vim70/ftplugin/indent.vim -#usr/share/vim/vim70/ftplugin/initex.vim -#usr/share/vim/vim70/ftplugin/ishd.vim -#usr/share/vim/vim70/ftplugin/java.vim -#usr/share/vim/vim70/ftplugin/javascript.vim -#usr/share/vim/vim70/ftplugin/jsp.vim -#usr/share/vim/vim70/ftplugin/kconfig.vim -#usr/share/vim/vim70/ftplugin/kwt.vim -#usr/share/vim/vim70/ftplugin/ld.vim -#usr/share/vim/vim70/ftplugin/lftp.vim -#usr/share/vim/vim70/ftplugin/libao.vim -#usr/share/vim/vim70/ftplugin/limits.vim -#usr/share/vim/vim70/ftplugin/lisp.vim -#usr/share/vim/vim70/ftplugin/loginaccess.vim -#usr/share/vim/vim70/ftplugin/logindefs.vim -#usr/share/vim/vim70/ftplugin/lprolog.vim -#usr/share/vim/vim70/ftplugin/lua.vim -#usr/share/vim/vim70/ftplugin/m4.vim -#usr/share/vim/vim70/ftplugin/mail.vim -#usr/share/vim/vim70/ftplugin/mailaliases.vim -#usr/share/vim/vim70/ftplugin/mailcap.vim -#usr/share/vim/vim70/ftplugin/make.vim -#usr/share/vim/vim70/ftplugin/man.vim -#usr/share/vim/vim70/ftplugin/manconf.vim -#usr/share/vim/vim70/ftplugin/matlab.vim -#usr/share/vim/vim70/ftplugin/mf.vim -#usr/share/vim/vim70/ftplugin/modconf.vim -#usr/share/vim/vim70/ftplugin/mp.vim -#usr/share/vim/vim70/ftplugin/mplayerconf.vim -#usr/share/vim/vim70/ftplugin/mrxvtrc.vim -#usr/share/vim/vim70/ftplugin/mupad.vim -#usr/share/vim/vim70/ftplugin/muttrc.vim -#usr/share/vim/vim70/ftplugin/nanorc.vim -#usr/share/vim/vim70/ftplugin/netrc.vim -#usr/share/vim/vim70/ftplugin/objc.vim -#usr/share/vim/vim70/ftplugin/ocaml.vim -#usr/share/vim/vim70/ftplugin/occam.vim -#usr/share/vim/vim70/ftplugin/pamconf.vim -#usr/share/vim/vim70/ftplugin/pascal.vim -#usr/share/vim/vim70/ftplugin/passwd.vim -#usr/share/vim/vim70/ftplugin/perl.vim -#usr/share/vim/vim70/ftplugin/php.vim -#usr/share/vim/vim70/ftplugin/pinfo.vim -#usr/share/vim/vim70/ftplugin/plaintex.vim -#usr/share/vim/vim70/ftplugin/postscr.vim -#usr/share/vim/vim70/ftplugin/procmail.vim -#usr/share/vim/vim70/ftplugin/prolog.vim -#usr/share/vim/vim70/ftplugin/protocols.vim -#usr/share/vim/vim70/ftplugin/pyrex.vim -#usr/share/vim/vim70/ftplugin/python.vim -#usr/share/vim/vim70/ftplugin/quake.vim -#usr/share/vim/vim70/ftplugin/racc.vim -#usr/share/vim/vim70/ftplugin/readline.vim -#usr/share/vim/vim70/ftplugin/rnc.vim -#usr/share/vim/vim70/ftplugin/rpl.vim -#usr/share/vim/vim70/ftplugin/rst.vim -#usr/share/vim/vim70/ftplugin/ruby.vim -#usr/share/vim/vim70/ftplugin/scheme.vim -#usr/share/vim/vim70/ftplugin/screen.vim -#usr/share/vim/vim70/ftplugin/sensors.vim -#usr/share/vim/vim70/ftplugin/services.vim -#usr/share/vim/vim70/ftplugin/setserial.vim -#usr/share/vim/vim70/ftplugin/sgml.vim -#usr/share/vim/vim70/ftplugin/sh.vim -#usr/share/vim/vim70/ftplugin/sieve.vim -#usr/share/vim/vim70/ftplugin/slpconf.vim -#usr/share/vim/vim70/ftplugin/slpreg.vim -#usr/share/vim/vim70/ftplugin/slpspi.vim -#usr/share/vim/vim70/ftplugin/spec.vim -#usr/share/vim/vim70/ftplugin/sql.vim -#usr/share/vim/vim70/ftplugin/sshconfig.vim -#usr/share/vim/vim70/ftplugin/sudoers.vim -#usr/share/vim/vim70/ftplugin/svg.vim -#usr/share/vim/vim70/ftplugin/sysctl.vim -#usr/share/vim/vim70/ftplugin/tcsh.vim -#usr/share/vim/vim70/ftplugin/terminfo.vim -#usr/share/vim/vim70/ftplugin/tex.vim -#usr/share/vim/vim70/ftplugin/udevconf.vim -#usr/share/vim/vim70/ftplugin/udevperm.vim -#usr/share/vim/vim70/ftplugin/udevrules.vim -#usr/share/vim/vim70/ftplugin/updatedb.vim -#usr/share/vim/vim70/ftplugin/vb.vim -#usr/share/vim/vim70/ftplugin/verilog.vim -#usr/share/vim/vim70/ftplugin/vhdl.vim -#usr/share/vim/vim70/ftplugin/vim.vim -#usr/share/vim/vim70/ftplugin/xdefaults.vim -#usr/share/vim/vim70/ftplugin/xf86conf.vim -#usr/share/vim/vim70/ftplugin/xhtml.vim -#usr/share/vim/vim70/ftplugin/xinetd.vim -#usr/share/vim/vim70/ftplugin/xml.vim -#usr/share/vim/vim70/ftplugin/xmodmap.vim -#usr/share/vim/vim70/ftplugin/xs.vim -#usr/share/vim/vim70/ftplugin/xsd.vim -#usr/share/vim/vim70/ftplugin/xslt.vim -#usr/share/vim/vim70/ftplugin/yaml.vim -#usr/share/vim/vim70/ftplugin/zsh.vim -#usr/share/vim/vim70/ftplugof.vim -#usr/share/vim/vim70/gvimrc_example.vim -#usr/share/vim/vim70/indent -#usr/share/vim/vim70/indent.vim -#usr/share/vim/vim70/indent/GenericIndent.vim -#usr/share/vim/vim70/indent/README.txt -#usr/share/vim/vim70/indent/aap.vim -#usr/share/vim/vim70/indent/ada.vim -#usr/share/vim/vim70/indent/ant.vim -#usr/share/vim/vim70/indent/automake.vim -#usr/share/vim/vim70/indent/awk.vim -#usr/share/vim/vim70/indent/bib.vim -#usr/share/vim/vim70/indent/c.vim -#usr/share/vim/vim70/indent/cdl.vim -#usr/share/vim/vim70/indent/ch.vim -#usr/share/vim/vim70/indent/changelog.vim -#usr/share/vim/vim70/indent/cmake.vim -#usr/share/vim/vim70/indent/config.vim -#usr/share/vim/vim70/indent/cpp.vim -#usr/share/vim/vim70/indent/cs.vim -#usr/share/vim/vim70/indent/css.vim -#usr/share/vim/vim70/indent/d.vim -#usr/share/vim/vim70/indent/dictconf.vim -#usr/share/vim/vim70/indent/dictdconf.vim -#usr/share/vim/vim70/indent/docbk.vim -#usr/share/vim/vim70/indent/dylan.vim -#usr/share/vim/vim70/indent/eiffel.vim -#usr/share/vim/vim70/indent/eruby.vim -#usr/share/vim/vim70/indent/eterm.vim -#usr/share/vim/vim70/indent/fortran.vim -#usr/share/vim/vim70/indent/html.vim -#usr/share/vim/vim70/indent/idlang.vim -#usr/share/vim/vim70/indent/ishd.vim -#usr/share/vim/vim70/indent/java.vim -#usr/share/vim/vim70/indent/ld.vim -#usr/share/vim/vim70/indent/lisp.vim -#usr/share/vim/vim70/indent/lua.vim -#usr/share/vim/vim70/indent/make.vim -#usr/share/vim/vim70/indent/matlab.vim -#usr/share/vim/vim70/indent/mma.vim -#usr/share/vim/vim70/indent/mp.vim -#usr/share/vim/vim70/indent/mupad.vim -#usr/share/vim/vim70/indent/objc.vim -#usr/share/vim/vim70/indent/ocaml.vim -#usr/share/vim/vim70/indent/occam.vim -#usr/share/vim/vim70/indent/pascal.vim -#usr/share/vim/vim70/indent/perl.vim -#usr/share/vim/vim70/indent/php.vim -#usr/share/vim/vim70/indent/postscr.vim -#usr/share/vim/vim70/indent/pov.vim -#usr/share/vim/vim70/indent/prolog.vim -#usr/share/vim/vim70/indent/pyrex.vim -#usr/share/vim/vim70/indent/python.vim -#usr/share/vim/vim70/indent/readline.vim -#usr/share/vim/vim70/indent/rpl.vim -#usr/share/vim/vim70/indent/rst.vim -#usr/share/vim/vim70/indent/ruby.vim -#usr/share/vim/vim70/indent/scheme.vim -#usr/share/vim/vim70/indent/sdl.vim -#usr/share/vim/vim70/indent/sh.vim -#usr/share/vim/vim70/indent/sml.vim -#usr/share/vim/vim70/indent/sql.vim -#usr/share/vim/vim70/indent/sqlanywhere.vim -#usr/share/vim/vim70/indent/tcl.vim -#usr/share/vim/vim70/indent/tcsh.vim -#usr/share/vim/vim70/indent/tilde.vim -#usr/share/vim/vim70/indent/vb.vim -#usr/share/vim/vim70/indent/verilog.vim -#usr/share/vim/vim70/indent/vhdl.vim -#usr/share/vim/vim70/indent/vim.vim -#usr/share/vim/vim70/indent/xf86conf.vim -#usr/share/vim/vim70/indent/xhtml.vim -#usr/share/vim/vim70/indent/xinetd.vim -#usr/share/vim/vim70/indent/xml.vim -#usr/share/vim/vim70/indent/xsd.vim -#usr/share/vim/vim70/indent/xslt.vim -#usr/share/vim/vim70/indent/yacc.vim -#usr/share/vim/vim70/indent/zsh.vim -#usr/share/vim/vim70/indoff.vim -#usr/share/vim/vim70/macros -#usr/share/vim/vim70/macros/README.txt -#usr/share/vim/vim70/macros/dvorak -#usr/share/vim/vim70/macros/editexisting.vim -#usr/share/vim/vim70/macros/hanoi -#usr/share/vim/vim70/macros/hanoi/click.me -#usr/share/vim/vim70/macros/hanoi/hanoi.vim -#usr/share/vim/vim70/macros/hanoi/poster -#usr/share/vim/vim70/macros/justify.vim -#usr/share/vim/vim70/macros/less.sh -#usr/share/vim/vim70/macros/less.vim -#usr/share/vim/vim70/macros/life -#usr/share/vim/vim70/macros/life/click.me -#usr/share/vim/vim70/macros/life/life.vim -#usr/share/vim/vim70/macros/matchit.txt -#usr/share/vim/vim70/macros/matchit.vim -#usr/share/vim/vim70/macros/maze -#usr/share/vim/vim70/macros/maze/Makefile -#usr/share/vim/vim70/macros/maze/README.txt -#usr/share/vim/vim70/macros/maze/main.aap -#usr/share/vim/vim70/macros/maze/maze.c -#usr/share/vim/vim70/macros/maze/maze_5.78 -#usr/share/vim/vim70/macros/maze/maze_mac -#usr/share/vim/vim70/macros/maze/mazeansi.c -#usr/share/vim/vim70/macros/maze/mazeclean.c -#usr/share/vim/vim70/macros/maze/poster -#usr/share/vim/vim70/macros/shellmenu.vim -#usr/share/vim/vim70/macros/swapmous.vim -#usr/share/vim/vim70/macros/urm -#usr/share/vim/vim70/macros/urm/README.txt -#usr/share/vim/vim70/macros/urm/examples -#usr/share/vim/vim70/macros/urm/urm -#usr/share/vim/vim70/macros/urm/urm.vim -#usr/share/vim/vim70/menu.vim -#usr/share/vim/vim70/mswin.vim -#usr/share/vim/vim70/optwin.vim -#usr/share/vim/vim70/plugin -#usr/share/vim/vim70/plugin/README.txt -#usr/share/vim/vim70/plugin/getscript.vim -#usr/share/vim/vim70/plugin/gzip.vim -#usr/share/vim/vim70/plugin/matchparen.vim -#usr/share/vim/vim70/plugin/netrwPlugin.vim -#usr/share/vim/vim70/plugin/rrhelper.vim -#usr/share/vim/vim70/plugin/spellfile.vim -#usr/share/vim/vim70/plugin/tarPlugin.vim -#usr/share/vim/vim70/plugin/tohtml.vim -#usr/share/vim/vim70/plugin/vimballPlugin.vim -#usr/share/vim/vim70/plugin/zipPlugin.vim -#usr/share/vim/vim70/print -#usr/share/vim/vim70/print/ascii.ps -#usr/share/vim/vim70/print/cidfont.ps -#usr/share/vim/vim70/print/cns_roman.ps -#usr/share/vim/vim70/print/cp1250.ps -#usr/share/vim/vim70/print/cp1251.ps -#usr/share/vim/vim70/print/cp1252.ps -#usr/share/vim/vim70/print/cp1253.ps -#usr/share/vim/vim70/print/cp1254.ps -#usr/share/vim/vim70/print/cp1255.ps -#usr/share/vim/vim70/print/cp1257.ps -#usr/share/vim/vim70/print/dec-mcs.ps -#usr/share/vim/vim70/print/ebcdic-uk.ps -#usr/share/vim/vim70/print/gb_roman.ps -#usr/share/vim/vim70/print/hp-roman8.ps -#usr/share/vim/vim70/print/iso-8859-10.ps -#usr/share/vim/vim70/print/iso-8859-11.ps -#usr/share/vim/vim70/print/iso-8859-13.ps -#usr/share/vim/vim70/print/iso-8859-14.ps -#usr/share/vim/vim70/print/iso-8859-15.ps -#usr/share/vim/vim70/print/iso-8859-2.ps -#usr/share/vim/vim70/print/iso-8859-3.ps -#usr/share/vim/vim70/print/iso-8859-4.ps -#usr/share/vim/vim70/print/iso-8859-5.ps -#usr/share/vim/vim70/print/iso-8859-7.ps -#usr/share/vim/vim70/print/iso-8859-8.ps -#usr/share/vim/vim70/print/iso-8859-9.ps -#usr/share/vim/vim70/print/jis_roman.ps -#usr/share/vim/vim70/print/koi8-r.ps -#usr/share/vim/vim70/print/koi8-u.ps -#usr/share/vim/vim70/print/ks_roman.ps -#usr/share/vim/vim70/print/latin1.ps -#usr/share/vim/vim70/print/mac-roman.ps -#usr/share/vim/vim70/print/prolog.ps -#usr/share/vim/vim70/scripts.vim -#usr/share/vim/vim70/spell -#usr/share/vim/vim70/spell/cleanadd.vim -#usr/share/vim/vim70/spell/en.ascii.spl -#usr/share/vim/vim70/spell/en.ascii.sug -#usr/share/vim/vim70/spell/en.latin1.spl -#usr/share/vim/vim70/spell/en.latin1.sug -#usr/share/vim/vim70/spell/en.utf-8.spl -#usr/share/vim/vim70/spell/en.utf-8.sug -#usr/share/vim/vim70/spell/he.vim -#usr/share/vim/vim70/spell/yi.vim -#usr/share/vim/vim70/synmenu.vim -#usr/share/vim/vim70/syntax -#usr/share/vim/vim70/syntax/2html.vim -#usr/share/vim/vim70/syntax/README.txt -#usr/share/vim/vim70/syntax/a2ps.vim -#usr/share/vim/vim70/syntax/a65.vim -#usr/share/vim/vim70/syntax/aap.vim -#usr/share/vim/vim70/syntax/abap.vim -#usr/share/vim/vim70/syntax/abaqus.vim -#usr/share/vim/vim70/syntax/abc.vim -#usr/share/vim/vim70/syntax/abel.vim -#usr/share/vim/vim70/syntax/acedb.vim -#usr/share/vim/vim70/syntax/ada.vim -#usr/share/vim/vim70/syntax/aflex.vim -#usr/share/vim/vim70/syntax/ahdl.vim -#usr/share/vim/vim70/syntax/alsaconf.vim -#usr/share/vim/vim70/syntax/amiga.vim -#usr/share/vim/vim70/syntax/aml.vim -#usr/share/vim/vim70/syntax/ampl.vim -#usr/share/vim/vim70/syntax/ant.vim -#usr/share/vim/vim70/syntax/antlr.vim -#usr/share/vim/vim70/syntax/apache.vim -#usr/share/vim/vim70/syntax/apachestyle.vim -#usr/share/vim/vim70/syntax/arch.vim -#usr/share/vim/vim70/syntax/art.vim -#usr/share/vim/vim70/syntax/asm.vim -#usr/share/vim/vim70/syntax/asm68k.vim -#usr/share/vim/vim70/syntax/asmh8300.vim -#usr/share/vim/vim70/syntax/asn.vim -#usr/share/vim/vim70/syntax/aspperl.vim -#usr/share/vim/vim70/syntax/aspvbs.vim -#usr/share/vim/vim70/syntax/asterisk.vim -#usr/share/vim/vim70/syntax/asteriskvm.vim -#usr/share/vim/vim70/syntax/atlas.vim -#usr/share/vim/vim70/syntax/automake.vim -#usr/share/vim/vim70/syntax/ave.vim -#usr/share/vim/vim70/syntax/awk.vim -#usr/share/vim/vim70/syntax/ayacc.vim -#usr/share/vim/vim70/syntax/b.vim -#usr/share/vim/vim70/syntax/baan.vim -#usr/share/vim/vim70/syntax/basic.vim -#usr/share/vim/vim70/syntax/bc.vim -#usr/share/vim/vim70/syntax/bdf.vim -#usr/share/vim/vim70/syntax/bib.vim -#usr/share/vim/vim70/syntax/bindzone.vim -#usr/share/vim/vim70/syntax/blank.vim -#usr/share/vim/vim70/syntax/bst.vim -#usr/share/vim/vim70/syntax/btm.vim -usr/share/vim/vim70/syntax/c.vim -#usr/share/vim/vim70/syntax/calendar.vim -#usr/share/vim/vim70/syntax/catalog.vim -#usr/share/vim/vim70/syntax/cdl.vim -#usr/share/vim/vim70/syntax/cf.vim -#usr/share/vim/vim70/syntax/cfg.vim -#usr/share/vim/vim70/syntax/ch.vim -#usr/share/vim/vim70/syntax/change.vim -#usr/share/vim/vim70/syntax/changelog.vim -#usr/share/vim/vim70/syntax/chaskell.vim -#usr/share/vim/vim70/syntax/cheetah.vim -#usr/share/vim/vim70/syntax/chill.vim -#usr/share/vim/vim70/syntax/chordpro.vim -#usr/share/vim/vim70/syntax/cl.vim -#usr/share/vim/vim70/syntax/clean.vim -#usr/share/vim/vim70/syntax/clipper.vim -#usr/share/vim/vim70/syntax/cmake.vim -#usr/share/vim/vim70/syntax/cobol.vim -#usr/share/vim/vim70/syntax/colortest.vim -#usr/share/vim/vim70/syntax/conf.vim -#usr/share/vim/vim70/syntax/config.vim -#usr/share/vim/vim70/syntax/context.vim -#usr/share/vim/vim70/syntax/cpp.vim -#usr/share/vim/vim70/syntax/crm.vim -#usr/share/vim/vim70/syntax/crontab.vim -#usr/share/vim/vim70/syntax/cs.vim -#usr/share/vim/vim70/syntax/csc.vim -#usr/share/vim/vim70/syntax/csh.vim -#usr/share/vim/vim70/syntax/csp.vim -#usr/share/vim/vim70/syntax/css.vim -#usr/share/vim/vim70/syntax/cterm.vim -#usr/share/vim/vim70/syntax/ctrlh.vim -#usr/share/vim/vim70/syntax/cupl.vim -#usr/share/vim/vim70/syntax/cuplsim.vim -#usr/share/vim/vim70/syntax/cvs.vim -#usr/share/vim/vim70/syntax/cvsrc.vim -#usr/share/vim/vim70/syntax/cweb.vim -#usr/share/vim/vim70/syntax/cynlib.vim -#usr/share/vim/vim70/syntax/cynpp.vim -#usr/share/vim/vim70/syntax/d.vim -#usr/share/vim/vim70/syntax/dcd.vim -#usr/share/vim/vim70/syntax/dcl.vim -#usr/share/vim/vim70/syntax/debchangelog.vim -#usr/share/vim/vim70/syntax/debcontrol.vim -#usr/share/vim/vim70/syntax/debsources.vim -#usr/share/vim/vim70/syntax/def.vim -#usr/share/vim/vim70/syntax/desc.vim -#usr/share/vim/vim70/syntax/desktop.vim -#usr/share/vim/vim70/syntax/dictconf.vim -#usr/share/vim/vim70/syntax/dictdconf.vim -usr/share/vim/vim70/syntax/diff.vim -#usr/share/vim/vim70/syntax/dircolors.vim -#usr/share/vim/vim70/syntax/diva.vim -#usr/share/vim/vim70/syntax/django.vim -#usr/share/vim/vim70/syntax/dns.vim -#usr/share/vim/vim70/syntax/docbk.vim -#usr/share/vim/vim70/syntax/docbksgml.vim -#usr/share/vim/vim70/syntax/docbkxml.vim -#usr/share/vim/vim70/syntax/dosbatch.vim -#usr/share/vim/vim70/syntax/dosini.vim -#usr/share/vim/vim70/syntax/dot.vim -#usr/share/vim/vim70/syntax/doxygen.vim -#usr/share/vim/vim70/syntax/dracula.vim -#usr/share/vim/vim70/syntax/dsl.vim -#usr/share/vim/vim70/syntax/dtd.vim -#usr/share/vim/vim70/syntax/dtml.vim -#usr/share/vim/vim70/syntax/dylan.vim -#usr/share/vim/vim70/syntax/dylanintr.vim -#usr/share/vim/vim70/syntax/dylanlid.vim -#usr/share/vim/vim70/syntax/ecd.vim -#usr/share/vim/vim70/syntax/edif.vim -#usr/share/vim/vim70/syntax/eiffel.vim -#usr/share/vim/vim70/syntax/elf.vim -#usr/share/vim/vim70/syntax/elinks.vim -#usr/share/vim/vim70/syntax/elmfilt.vim -#usr/share/vim/vim70/syntax/erlang.vim -#usr/share/vim/vim70/syntax/eruby.vim -#usr/share/vim/vim70/syntax/esmtprc.vim -#usr/share/vim/vim70/syntax/esqlc.vim -#usr/share/vim/vim70/syntax/esterel.vim -#usr/share/vim/vim70/syntax/eterm.vim -#usr/share/vim/vim70/syntax/eviews.vim -#usr/share/vim/vim70/syntax/exim.vim -#usr/share/vim/vim70/syntax/expect.vim -#usr/share/vim/vim70/syntax/exports.vim -#usr/share/vim/vim70/syntax/fasm.vim -#usr/share/vim/vim70/syntax/fdcc.vim -#usr/share/vim/vim70/syntax/fetchmail.vim -#usr/share/vim/vim70/syntax/fgl.vim -#usr/share/vim/vim70/syntax/flexwiki.vim -#usr/share/vim/vim70/syntax/focexec.vim -#usr/share/vim/vim70/syntax/form.vim -#usr/share/vim/vim70/syntax/forth.vim -#usr/share/vim/vim70/syntax/fortran.vim -#usr/share/vim/vim70/syntax/foxpro.vim -usr/share/vim/vim70/syntax/fstab.vim -#usr/share/vim/vim70/syntax/fvwm.vim -#usr/share/vim/vim70/syntax/fvwm2m4.vim -#usr/share/vim/vim70/syntax/gdb.vim -#usr/share/vim/vim70/syntax/gdmo.vim -#usr/share/vim/vim70/syntax/gedcom.vim -#usr/share/vim/vim70/syntax/gkrellmrc.vim -#usr/share/vim/vim70/syntax/gnuplot.vim -#usr/share/vim/vim70/syntax/gp.vim -#usr/share/vim/vim70/syntax/gpg.vim -#usr/share/vim/vim70/syntax/grads.vim -#usr/share/vim/vim70/syntax/gretl.vim -#usr/share/vim/vim70/syntax/groff.vim -#usr/share/vim/vim70/syntax/groovy.vim -#usr/share/vim/vim70/syntax/group.vim -#usr/share/vim/vim70/syntax/grub.vim -#usr/share/vim/vim70/syntax/gsp.vim -#usr/share/vim/vim70/syntax/gtkrc.vim -#usr/share/vim/vim70/syntax/haskell.vim -#usr/share/vim/vim70/syntax/hb.vim -#usr/share/vim/vim70/syntax/help.vim -#usr/share/vim/vim70/syntax/hercules.vim -#usr/share/vim/vim70/syntax/hex.vim -#usr/share/vim/vim70/syntax/hitest.vim -#usr/share/vim/vim70/syntax/hog.vim -#usr/share/vim/vim70/syntax/html.vim -#usr/share/vim/vim70/syntax/htmlcheetah.vim -#usr/share/vim/vim70/syntax/htmldjango.vim -#usr/share/vim/vim70/syntax/htmlm4.vim -#usr/share/vim/vim70/syntax/htmlos.vim -#usr/share/vim/vim70/syntax/ia64.vim -#usr/share/vim/vim70/syntax/icemenu.vim -#usr/share/vim/vim70/syntax/icon.vim -#usr/share/vim/vim70/syntax/idl.vim -#usr/share/vim/vim70/syntax/idlang.vim -#usr/share/vim/vim70/syntax/indent.vim -#usr/share/vim/vim70/syntax/inform.vim -#usr/share/vim/vim70/syntax/initex.vim -#usr/share/vim/vim70/syntax/inittab.vim -#usr/share/vim/vim70/syntax/ipfilter.vim -#usr/share/vim/vim70/syntax/ishd.vim -#usr/share/vim/vim70/syntax/iss.vim -#usr/share/vim/vim70/syntax/ist.vim -#usr/share/vim/vim70/syntax/jal.vim -#usr/share/vim/vim70/syntax/jam.vim -#usr/share/vim/vim70/syntax/jargon.vim -#usr/share/vim/vim70/syntax/java.vim -#usr/share/vim/vim70/syntax/javacc.vim -#usr/share/vim/vim70/syntax/javascript.vim -#usr/share/vim/vim70/syntax/jess.vim -#usr/share/vim/vim70/syntax/jgraph.vim -#usr/share/vim/vim70/syntax/jproperties.vim -#usr/share/vim/vim70/syntax/jsp.vim -#usr/share/vim/vim70/syntax/kconfig.vim -#usr/share/vim/vim70/syntax/kix.vim -#usr/share/vim/vim70/syntax/kscript.vim -#usr/share/vim/vim70/syntax/kwt.vim -#usr/share/vim/vim70/syntax/lace.vim -#usr/share/vim/vim70/syntax/latte.vim -#usr/share/vim/vim70/syntax/ld.vim -#usr/share/vim/vim70/syntax/ldif.vim -#usr/share/vim/vim70/syntax/lex.vim -#usr/share/vim/vim70/syntax/lftp.vim -#usr/share/vim/vim70/syntax/lhaskell.vim -#usr/share/vim/vim70/syntax/libao.vim -#usr/share/vim/vim70/syntax/lifelines.vim -#usr/share/vim/vim70/syntax/lilo.vim -#usr/share/vim/vim70/syntax/limits.vim -#usr/share/vim/vim70/syntax/lisp.vim -#usr/share/vim/vim70/syntax/lite.vim -#usr/share/vim/vim70/syntax/loginaccess.vim -#usr/share/vim/vim70/syntax/logindefs.vim -#usr/share/vim/vim70/syntax/logtalk.vim -#usr/share/vim/vim70/syntax/lotos.vim -#usr/share/vim/vim70/syntax/lout.vim -#usr/share/vim/vim70/syntax/lpc.vim -#usr/share/vim/vim70/syntax/lprolog.vim -#usr/share/vim/vim70/syntax/lscript.vim -#usr/share/vim/vim70/syntax/lss.vim -#usr/share/vim/vim70/syntax/lua.vim -#usr/share/vim/vim70/syntax/lynx.vim -#usr/share/vim/vim70/syntax/m4.vim -#usr/share/vim/vim70/syntax/mail.vim -#usr/share/vim/vim70/syntax/mailaliases.vim -#usr/share/vim/vim70/syntax/mailcap.vim -#usr/share/vim/vim70/syntax/make.vim -#usr/share/vim/vim70/syntax/man.vim -#usr/share/vim/vim70/syntax/manconf.vim -#usr/share/vim/vim70/syntax/manual.vim -#usr/share/vim/vim70/syntax/maple.vim -#usr/share/vim/vim70/syntax/masm.vim -#usr/share/vim/vim70/syntax/mason.vim -#usr/share/vim/vim70/syntax/master.vim -#usr/share/vim/vim70/syntax/matlab.vim -#usr/share/vim/vim70/syntax/maxima.vim -#usr/share/vim/vim70/syntax/mel.vim -#usr/share/vim/vim70/syntax/mf.vim -#usr/share/vim/vim70/syntax/mgl.vim -#usr/share/vim/vim70/syntax/mgp.vim -#usr/share/vim/vim70/syntax/mib.vim -#usr/share/vim/vim70/syntax/mma.vim -#usr/share/vim/vim70/syntax/mmix.vim -#usr/share/vim/vim70/syntax/modconf.vim -#usr/share/vim/vim70/syntax/model.vim -#usr/share/vim/vim70/syntax/modsim3.vim -#usr/share/vim/vim70/syntax/modula2.vim -#usr/share/vim/vim70/syntax/modula3.vim -#usr/share/vim/vim70/syntax/monk.vim -#usr/share/vim/vim70/syntax/moo.vim -#usr/share/vim/vim70/syntax/mp.vim -#usr/share/vim/vim70/syntax/mplayerconf.vim -#usr/share/vim/vim70/syntax/mrxvtrc.vim -#usr/share/vim/vim70/syntax/msidl.vim -#usr/share/vim/vim70/syntax/msql.vim -#usr/share/vim/vim70/syntax/mupad.vim -#usr/share/vim/vim70/syntax/mush.vim -#usr/share/vim/vim70/syntax/muttrc.vim -#usr/share/vim/vim70/syntax/mysql.vim -#usr/share/vim/vim70/syntax/named.vim -#usr/share/vim/vim70/syntax/nanorc.vim -#usr/share/vim/vim70/syntax/nasm.vim -#usr/share/vim/vim70/syntax/nastran.vim -#usr/share/vim/vim70/syntax/natural.vim -#usr/share/vim/vim70/syntax/ncf.vim -#usr/share/vim/vim70/syntax/netrc.vim -#usr/share/vim/vim70/syntax/netrw.vim -usr/share/vim/vim70/syntax/nosyntax.vim -#usr/share/vim/vim70/syntax/nqc.vim -#usr/share/vim/vim70/syntax/nroff.vim -#usr/share/vim/vim70/syntax/nsis.vim -#usr/share/vim/vim70/syntax/objc.vim -#usr/share/vim/vim70/syntax/objcpp.vim -#usr/share/vim/vim70/syntax/ocaml.vim -#usr/share/vim/vim70/syntax/occam.vim -#usr/share/vim/vim70/syntax/omnimark.vim -#usr/share/vim/vim70/syntax/openroad.vim -#usr/share/vim/vim70/syntax/opl.vim -#usr/share/vim/vim70/syntax/ora.vim -#usr/share/vim/vim70/syntax/pamconf.vim -#usr/share/vim/vim70/syntax/papp.vim -#usr/share/vim/vim70/syntax/pascal.vim -#usr/share/vim/vim70/syntax/passwd.vim -#usr/share/vim/vim70/syntax/pcap.vim -#usr/share/vim/vim70/syntax/pccts.vim -usr/share/vim/vim70/syntax/perl.vim -#usr/share/vim/vim70/syntax/pf.vim -#usr/share/vim/vim70/syntax/pfmain.vim -#usr/share/vim/vim70/syntax/php.vim -#usr/share/vim/vim70/syntax/phtml.vim -#usr/share/vim/vim70/syntax/pic.vim -#usr/share/vim/vim70/syntax/pike.vim -#usr/share/vim/vim70/syntax/pilrc.vim -#usr/share/vim/vim70/syntax/pine.vim -#usr/share/vim/vim70/syntax/pinfo.vim -#usr/share/vim/vim70/syntax/plaintex.vim -#usr/share/vim/vim70/syntax/plm.vim -#usr/share/vim/vim70/syntax/plp.vim -#usr/share/vim/vim70/syntax/plsql.vim -#usr/share/vim/vim70/syntax/po.vim -#usr/share/vim/vim70/syntax/pod.vim -#usr/share/vim/vim70/syntax/postscr.vim -#usr/share/vim/vim70/syntax/pov.vim -#usr/share/vim/vim70/syntax/povini.vim -#usr/share/vim/vim70/syntax/ppd.vim -#usr/share/vim/vim70/syntax/ppwiz.vim -#usr/share/vim/vim70/syntax/prescribe.vim -#usr/share/vim/vim70/syntax/procmail.vim -#usr/share/vim/vim70/syntax/progress.vim -#usr/share/vim/vim70/syntax/prolog.vim -#usr/share/vim/vim70/syntax/protocols.vim -#usr/share/vim/vim70/syntax/psf.vim -#usr/share/vim/vim70/syntax/ptcap.vim -#usr/share/vim/vim70/syntax/purifylog.vim -#usr/share/vim/vim70/syntax/pyrex.vim -usr/share/vim/vim70/syntax/python.vim -#usr/share/vim/vim70/syntax/qf.vim -#usr/share/vim/vim70/syntax/quake.vim -#usr/share/vim/vim70/syntax/r.vim -#usr/share/vim/vim70/syntax/racc.vim -#usr/share/vim/vim70/syntax/radiance.vim -#usr/share/vim/vim70/syntax/ratpoison.vim -#usr/share/vim/vim70/syntax/rc.vim -#usr/share/vim/vim70/syntax/rcs.vim -#usr/share/vim/vim70/syntax/rcslog.vim -#usr/share/vim/vim70/syntax/readline.vim -#usr/share/vim/vim70/syntax/rebol.vim -#usr/share/vim/vim70/syntax/registry.vim -#usr/share/vim/vim70/syntax/remind.vim -#usr/share/vim/vim70/syntax/resolv.vim -#usr/share/vim/vim70/syntax/rexx.vim -#usr/share/vim/vim70/syntax/rhelp.vim -#usr/share/vim/vim70/syntax/rib.vim -#usr/share/vim/vim70/syntax/rnc.vim -#usr/share/vim/vim70/syntax/rnoweb.vim -#usr/share/vim/vim70/syntax/robots.vim -#usr/share/vim/vim70/syntax/rpcgen.vim -#usr/share/vim/vim70/syntax/rpl.vim -#usr/share/vim/vim70/syntax/rst.vim -#usr/share/vim/vim70/syntax/rtf.vim -#usr/share/vim/vim70/syntax/ruby.vim -#usr/share/vim/vim70/syntax/samba.vim -#usr/share/vim/vim70/syntax/sas.vim -#usr/share/vim/vim70/syntax/sather.vim -#usr/share/vim/vim70/syntax/scheme.vim -#usr/share/vim/vim70/syntax/scilab.vim -#usr/share/vim/vim70/syntax/screen.vim -#usr/share/vim/vim70/syntax/sdl.vim -#usr/share/vim/vim70/syntax/sed.vim -#usr/share/vim/vim70/syntax/sendpr.vim -#usr/share/vim/vim70/syntax/sensors.vim -#usr/share/vim/vim70/syntax/services.vim -#usr/share/vim/vim70/syntax/setserial.vim -#usr/share/vim/vim70/syntax/sgml.vim -#usr/share/vim/vim70/syntax/sgmldecl.vim -#usr/share/vim/vim70/syntax/sgmllnx.vim -usr/share/vim/vim70/syntax/sh.vim -#usr/share/vim/vim70/syntax/sicad.vim -#usr/share/vim/vim70/syntax/sieve.vim -#usr/share/vim/vim70/syntax/simula.vim -#usr/share/vim/vim70/syntax/sinda.vim -#usr/share/vim/vim70/syntax/sindacmp.vim -#usr/share/vim/vim70/syntax/sindaout.vim -#usr/share/vim/vim70/syntax/sisu.vim -#usr/share/vim/vim70/syntax/skill.vim -#usr/share/vim/vim70/syntax/sl.vim -#usr/share/vim/vim70/syntax/slang.vim -#usr/share/vim/vim70/syntax/slice.vim -#usr/share/vim/vim70/syntax/slpconf.vim -#usr/share/vim/vim70/syntax/slpreg.vim -#usr/share/vim/vim70/syntax/slpspi.vim -#usr/share/vim/vim70/syntax/slrnrc.vim -#usr/share/vim/vim70/syntax/slrnsc.vim -#usr/share/vim/vim70/syntax/sm.vim -#usr/share/vim/vim70/syntax/smarty.vim -#usr/share/vim/vim70/syntax/smcl.vim -#usr/share/vim/vim70/syntax/smil.vim -#usr/share/vim/vim70/syntax/smith.vim -#usr/share/vim/vim70/syntax/sml.vim -#usr/share/vim/vim70/syntax/snnsnet.vim -#usr/share/vim/vim70/syntax/snnspat.vim -#usr/share/vim/vim70/syntax/snnsres.vim -#usr/share/vim/vim70/syntax/snobol4.vim -#usr/share/vim/vim70/syntax/spec.vim -#usr/share/vim/vim70/syntax/specman.vim -#usr/share/vim/vim70/syntax/spice.vim -#usr/share/vim/vim70/syntax/splint.vim -#usr/share/vim/vim70/syntax/spup.vim -#usr/share/vim/vim70/syntax/spyce.vim -#usr/share/vim/vim70/syntax/sql.vim -#usr/share/vim/vim70/syntax/sqlanywhere.vim -#usr/share/vim/vim70/syntax/sqlforms.vim -#usr/share/vim/vim70/syntax/sqlinformix.vim -#usr/share/vim/vim70/syntax/sqlj.vim -#usr/share/vim/vim70/syntax/sqloracle.vim -#usr/share/vim/vim70/syntax/sqr.vim -#usr/share/vim/vim70/syntax/squid.vim -#usr/share/vim/vim70/syntax/sshconfig.vim -#usr/share/vim/vim70/syntax/sshdconfig.vim -#usr/share/vim/vim70/syntax/st.vim -#usr/share/vim/vim70/syntax/stata.vim -#usr/share/vim/vim70/syntax/stp.vim -usr/share/vim/vim70/syntax/strace.vim -#usr/share/vim/vim70/syntax/sudoers.vim -#usr/share/vim/vim70/syntax/svn.vim -#usr/share/vim/vim70/syntax/syncolor.vim -usr/share/vim/vim70/syntax/synload.vim -usr/share/vim/vim70/syntax/syntax.vim -#usr/share/vim/vim70/syntax/sysctl.vim -#usr/share/vim/vim70/syntax/tads.vim -#usr/share/vim/vim70/syntax/tags.vim -#usr/share/vim/vim70/syntax/tak.vim -#usr/share/vim/vim70/syntax/takcmp.vim -#usr/share/vim/vim70/syntax/takout.vim -#usr/share/vim/vim70/syntax/tar.vim -#usr/share/vim/vim70/syntax/tasm.vim -#usr/share/vim/vim70/syntax/tcl.vim -#usr/share/vim/vim70/syntax/tcsh.vim -#usr/share/vim/vim70/syntax/terminfo.vim -#usr/share/vim/vim70/syntax/tex.vim -#usr/share/vim/vim70/syntax/texinfo.vim -#usr/share/vim/vim70/syntax/texmf.vim -#usr/share/vim/vim70/syntax/tf.vim -#usr/share/vim/vim70/syntax/tidy.vim -#usr/share/vim/vim70/syntax/tilde.vim -#usr/share/vim/vim70/syntax/tli.vim -#usr/share/vim/vim70/syntax/tpp.vim -#usr/share/vim/vim70/syntax/trasys.vim -#usr/share/vim/vim70/syntax/trustees.vim -#usr/share/vim/vim70/syntax/tsalt.vim -#usr/share/vim/vim70/syntax/tsscl.vim -#usr/share/vim/vim70/syntax/tssgm.vim -#usr/share/vim/vim70/syntax/tssop.vim -#usr/share/vim/vim70/syntax/uc.vim -#usr/share/vim/vim70/syntax/udevconf.vim -#usr/share/vim/vim70/syntax/udevperm.vim -#usr/share/vim/vim70/syntax/udevrules.vim -#usr/share/vim/vim70/syntax/uil.vim -#usr/share/vim/vim70/syntax/updatedb.vim -#usr/share/vim/vim70/syntax/valgrind.vim -#usr/share/vim/vim70/syntax/vb.vim -#usr/share/vim/vim70/syntax/vera.vim -#usr/share/vim/vim70/syntax/verilog.vim -#usr/share/vim/vim70/syntax/verilogams.vim -#usr/share/vim/vim70/syntax/vgrindefs.vim -#usr/share/vim/vim70/syntax/vhdl.vim -#usr/share/vim/vim70/syntax/vim.vim -#usr/share/vim/vim70/syntax/viminfo.vim -#usr/share/vim/vim70/syntax/virata.vim -#usr/share/vim/vim70/syntax/vmasm.vim -#usr/share/vim/vim70/syntax/vrml.vim -#usr/share/vim/vim70/syntax/vsejcl.vim -#usr/share/vim/vim70/syntax/wdiff.vim -#usr/share/vim/vim70/syntax/web.vim -#usr/share/vim/vim70/syntax/webmacro.vim -#usr/share/vim/vim70/syntax/wget.vim -#usr/share/vim/vim70/syntax/whitespace.vim -#usr/share/vim/vim70/syntax/winbatch.vim -#usr/share/vim/vim70/syntax/wml.vim -#usr/share/vim/vim70/syntax/wsh.vim -#usr/share/vim/vim70/syntax/wsml.vim -#usr/share/vim/vim70/syntax/wvdial.vim -#usr/share/vim/vim70/syntax/xdefaults.vim -#usr/share/vim/vim70/syntax/xf86conf.vim -#usr/share/vim/vim70/syntax/xhtml.vim -#usr/share/vim/vim70/syntax/xinetd.vim -#usr/share/vim/vim70/syntax/xkb.vim -#usr/share/vim/vim70/syntax/xmath.vim -#usr/share/vim/vim70/syntax/xml.vim -#usr/share/vim/vim70/syntax/xmodmap.vim -#usr/share/vim/vim70/syntax/xpm.vim -#usr/share/vim/vim70/syntax/xpm2.vim -#usr/share/vim/vim70/syntax/xquery.vim -#usr/share/vim/vim70/syntax/xs.vim -#usr/share/vim/vim70/syntax/xsd.vim -#usr/share/vim/vim70/syntax/xslt.vim -#usr/share/vim/vim70/syntax/xxd.vim -#usr/share/vim/vim70/syntax/yacc.vim -#usr/share/vim/vim70/syntax/yaml.vim -#usr/share/vim/vim70/syntax/z8a.vim -#usr/share/vim/vim70/syntax/zsh.vim -#usr/share/vim/vim70/tools -#usr/share/vim/vim70/tools/README.txt -#usr/share/vim/vim70/tools/blink.c -#usr/share/vim/vim70/tools/ccfilter.1 -#usr/share/vim/vim70/tools/ccfilter.c -#usr/share/vim/vim70/tools/ccfilter_README.txt -#usr/share/vim/vim70/tools/efm_filter.pl -#usr/share/vim/vim70/tools/efm_filter.txt -#usr/share/vim/vim70/tools/efm_perl.pl -#usr/share/vim/vim70/tools/mve.awk -#usr/share/vim/vim70/tools/mve.txt -#usr/share/vim/vim70/tools/pltags.pl -#usr/share/vim/vim70/tools/ref -#usr/share/vim/vim70/tools/shtags.1 -#usr/share/vim/vim70/tools/shtags.pl -#usr/share/vim/vim70/tools/vim132 -#usr/share/vim/vim70/tools/vim_vs_net.cmd -#usr/share/vim/vim70/tools/vimm -#usr/share/vim/vim70/tools/vimspell.sh -#usr/share/vim/vim70/tools/vimspell.txt -#usr/share/vim/vim70/tools/xcmdsrv_client.c -#usr/share/vim/vim70/tutor -#usr/share/vim/vim70/tutor/README.gr.cp737.txt -#usr/share/vim/vim70/tutor/README.gr.txt -#usr/share/vim/vim70/tutor/README.txt -#usr/share/vim/vim70/tutor/tutor -#usr/share/vim/vim70/tutor/tutor.ca -#usr/share/vim/vim70/tutor/tutor.de -#usr/share/vim/vim70/tutor/tutor.es -#usr/share/vim/vim70/tutor/tutor.fr -#usr/share/vim/vim70/tutor/tutor.gr -#usr/share/vim/vim70/tutor/tutor.gr.cp737 -#usr/share/vim/vim70/tutor/tutor.it -#usr/share/vim/vim70/tutor/tutor.ja.euc -#usr/share/vim/vim70/tutor/tutor.ja.sjis -#usr/share/vim/vim70/tutor/tutor.ja.utf-8 -#usr/share/vim/vim70/tutor/tutor.ko.euc -#usr/share/vim/vim70/tutor/tutor.ko.utf-8 -#usr/share/vim/vim70/tutor/tutor.no -#usr/share/vim/vim70/tutor/tutor.pl -#usr/share/vim/vim70/tutor/tutor.pl.cp1250 -#usr/share/vim/vim70/tutor/tutor.pl.utf-8 -#usr/share/vim/vim70/tutor/tutor.ru -#usr/share/vim/vim70/tutor/tutor.ru.cp1251 -#usr/share/vim/vim70/tutor/tutor.sk -#usr/share/vim/vim70/tutor/tutor.sk.cp1250 -#usr/share/vim/vim70/tutor/tutor.sv -#usr/share/vim/vim70/tutor/tutor.vim -#usr/share/vim/vim70/tutor/tutor.zh.big5 -#usr/share/vim/vim70/tutor/tutor.zh.euc -#usr/share/vim/vim70/vimrc_example.vim +#usr/share/vim/vim72 +#usr/share/vim/vim72/autoload +#usr/share/vim/vim72/autoload/README.txt +#usr/share/vim/vim72/autoload/ada.vim +#usr/share/vim/vim72/autoload/adacomplete.vim +#usr/share/vim/vim72/autoload/ccomplete.vim +#usr/share/vim/vim72/autoload/csscomplete.vim +#usr/share/vim/vim72/autoload/decada.vim +#usr/share/vim/vim72/autoload/getscript.vim +#usr/share/vim/vim72/autoload/gnat.vim +#usr/share/vim/vim72/autoload/gzip.vim +#usr/share/vim/vim72/autoload/htmlcomplete.vim +#usr/share/vim/vim72/autoload/javascriptcomplete.vim +#usr/share/vim/vim72/autoload/netrw.vim +#usr/share/vim/vim72/autoload/netrwFileHandlers.vim +#usr/share/vim/vim72/autoload/netrwSettings.vim +#usr/share/vim/vim72/autoload/paste.vim +#usr/share/vim/vim72/autoload/phpcomplete.vim +#usr/share/vim/vim72/autoload/pythoncomplete.vim +#usr/share/vim/vim72/autoload/rubycomplete.vim +#usr/share/vim/vim72/autoload/spellfile.vim +#usr/share/vim/vim72/autoload/sqlcomplete.vim +#usr/share/vim/vim72/autoload/syntaxcomplete.vim +#usr/share/vim/vim72/autoload/tar.vim +#usr/share/vim/vim72/autoload/vimball.vim +#usr/share/vim/vim72/autoload/xml +#usr/share/vim/vim72/autoload/xml/html32.vim +#usr/share/vim/vim72/autoload/xml/html401f.vim +#usr/share/vim/vim72/autoload/xml/html401s.vim +#usr/share/vim/vim72/autoload/xml/html401t.vim +#usr/share/vim/vim72/autoload/xml/html40f.vim +#usr/share/vim/vim72/autoload/xml/html40s.vim +#usr/share/vim/vim72/autoload/xml/html40t.vim +#usr/share/vim/vim72/autoload/xml/xhtml10f.vim +#usr/share/vim/vim72/autoload/xml/xhtml10s.vim +#usr/share/vim/vim72/autoload/xml/xhtml10t.vim +#usr/share/vim/vim72/autoload/xml/xhtml11.vim +#usr/share/vim/vim72/autoload/xml/xsd.vim +#usr/share/vim/vim72/autoload/xml/xsl.vim +#usr/share/vim/vim72/autoload/xmlcomplete.vim +#usr/share/vim/vim72/autoload/zip.vim +#usr/share/vim/vim72/bugreport.vim +#usr/share/vim/vim72/colors +#usr/share/vim/vim72/colors/README.txt +#usr/share/vim/vim72/colors/blue.vim +#usr/share/vim/vim72/colors/darkblue.vim +#usr/share/vim/vim72/colors/default.vim +#usr/share/vim/vim72/colors/delek.vim +#usr/share/vim/vim72/colors/desert.vim +#usr/share/vim/vim72/colors/elflord.vim +#usr/share/vim/vim72/colors/evening.vim +#usr/share/vim/vim72/colors/koehler.vim +#usr/share/vim/vim72/colors/morning.vim +#usr/share/vim/vim72/colors/murphy.vim +#usr/share/vim/vim72/colors/pablo.vim +#usr/share/vim/vim72/colors/peachpuff.vim +#usr/share/vim/vim72/colors/ron.vim +#usr/share/vim/vim72/colors/shine.vim +#usr/share/vim/vim72/colors/slate.vim +#usr/share/vim/vim72/colors/torte.vim +#usr/share/vim/vim72/colors/zellner.vim +#usr/share/vim/vim72/compiler +#usr/share/vim/vim72/compiler/README.txt +#usr/share/vim/vim72/compiler/ant.vim +#usr/share/vim/vim72/compiler/bcc.vim +#usr/share/vim/vim72/compiler/bdf.vim +#usr/share/vim/vim72/compiler/checkstyle.vim +#usr/share/vim/vim72/compiler/cs.vim +#usr/share/vim/vim72/compiler/decada.vim +#usr/share/vim/vim72/compiler/dot.vim +#usr/share/vim/vim72/compiler/eruby.vim +#usr/share/vim/vim72/compiler/fortran_F.vim +#usr/share/vim/vim72/compiler/fortran_cv.vim +#usr/share/vim/vim72/compiler/fortran_elf90.vim +#usr/share/vim/vim72/compiler/fortran_g77.vim +#usr/share/vim/vim72/compiler/fortran_lf95.vim +#usr/share/vim/vim72/compiler/fpc.vim +#usr/share/vim/vim72/compiler/gcc.vim +#usr/share/vim/vim72/compiler/gnat.vim +#usr/share/vim/vim72/compiler/hp_acc.vim +#usr/share/vim/vim72/compiler/icc.vim +#usr/share/vim/vim72/compiler/intel.vim +#usr/share/vim/vim72/compiler/irix5_c.vim +#usr/share/vim/vim72/compiler/irix5_cpp.vim +#usr/share/vim/vim72/compiler/javac.vim +#usr/share/vim/vim72/compiler/jikes.vim +#usr/share/vim/vim72/compiler/mcs.vim +#usr/share/vim/vim72/compiler/mips_c.vim +#usr/share/vim/vim72/compiler/mipspro_c89.vim +#usr/share/vim/vim72/compiler/mipspro_cpp.vim +#usr/share/vim/vim72/compiler/modelsim_vcom.vim +#usr/share/vim/vim72/compiler/msvc.vim +#usr/share/vim/vim72/compiler/neato.vim +#usr/share/vim/vim72/compiler/onsgmls.vim +#usr/share/vim/vim72/compiler/pbx.vim +#usr/share/vim/vim72/compiler/perl.vim +#usr/share/vim/vim72/compiler/php.vim +#usr/share/vim/vim72/compiler/pyunit.vim +#usr/share/vim/vim72/compiler/rspec.vim +#usr/share/vim/vim72/compiler/rst.vim +#usr/share/vim/vim72/compiler/ruby.vim +#usr/share/vim/vim72/compiler/rubyunit.vim +#usr/share/vim/vim72/compiler/se.vim +#usr/share/vim/vim72/compiler/splint.vim +#usr/share/vim/vim72/compiler/tcl.vim +#usr/share/vim/vim72/compiler/tex.vim +#usr/share/vim/vim72/compiler/tidy.vim +#usr/share/vim/vim72/compiler/xmllint.vim +#usr/share/vim/vim72/compiler/xmlwf.vim +#usr/share/vim/vim72/delmenu.vim +#usr/share/vim/vim72/doc +#usr/share/vim/vim72/doc/arabic.txt +#usr/share/vim/vim72/doc/autocmd.txt +#usr/share/vim/vim72/doc/change.txt +#usr/share/vim/vim72/doc/cmdline.txt +#usr/share/vim/vim72/doc/debug.txt +#usr/share/vim/vim72/doc/debugger.txt +#usr/share/vim/vim72/doc/develop.txt +#usr/share/vim/vim72/doc/diff.txt +#usr/share/vim/vim72/doc/digraph.txt +#usr/share/vim/vim72/doc/editing.txt +#usr/share/vim/vim72/doc/eval.txt +#usr/share/vim/vim72/doc/farsi.txt +#usr/share/vim/vim72/doc/filetype.txt +#usr/share/vim/vim72/doc/fold.txt +#usr/share/vim/vim72/doc/ft_ada.txt +#usr/share/vim/vim72/doc/ft_sql.txt +#usr/share/vim/vim72/doc/gui.txt +#usr/share/vim/vim72/doc/gui_w16.txt +#usr/share/vim/vim72/doc/gui_w32.txt +#usr/share/vim/vim72/doc/gui_x11.txt +#usr/share/vim/vim72/doc/hangulin.txt +#usr/share/vim/vim72/doc/hebrew.txt +#usr/share/vim/vim72/doc/help.txt +#usr/share/vim/vim72/doc/howto.txt +#usr/share/vim/vim72/doc/if_cscop.txt +#usr/share/vim/vim72/doc/if_mzsch.txt +#usr/share/vim/vim72/doc/if_ole.txt +#usr/share/vim/vim72/doc/if_perl.txt +#usr/share/vim/vim72/doc/if_pyth.txt +#usr/share/vim/vim72/doc/if_ruby.txt +#usr/share/vim/vim72/doc/if_sniff.txt +#usr/share/vim/vim72/doc/if_tcl.txt +#usr/share/vim/vim72/doc/indent.txt +#usr/share/vim/vim72/doc/index.txt +#usr/share/vim/vim72/doc/insert.txt +#usr/share/vim/vim72/doc/intro.txt +#usr/share/vim/vim72/doc/map.txt +#usr/share/vim/vim72/doc/mbyte.txt +#usr/share/vim/vim72/doc/message.txt +#usr/share/vim/vim72/doc/mlang.txt +#usr/share/vim/vim72/doc/motion.txt +#usr/share/vim/vim72/doc/netbeans.txt +#usr/share/vim/vim72/doc/options.txt +#usr/share/vim/vim72/doc/os_390.txt +#usr/share/vim/vim72/doc/os_amiga.txt +#usr/share/vim/vim72/doc/os_beos.txt +#usr/share/vim/vim72/doc/os_dos.txt +#usr/share/vim/vim72/doc/os_mac.txt +#usr/share/vim/vim72/doc/os_mint.txt +#usr/share/vim/vim72/doc/os_msdos.txt +#usr/share/vim/vim72/doc/os_os2.txt +#usr/share/vim/vim72/doc/os_qnx.txt +#usr/share/vim/vim72/doc/os_risc.txt +#usr/share/vim/vim72/doc/os_unix.txt +#usr/share/vim/vim72/doc/os_vms.txt +#usr/share/vim/vim72/doc/os_win32.txt +#usr/share/vim/vim72/doc/pattern.txt +#usr/share/vim/vim72/doc/pi_getscript.txt +#usr/share/vim/vim72/doc/pi_gzip.txt +#usr/share/vim/vim72/doc/pi_netrw.txt +#usr/share/vim/vim72/doc/pi_paren.txt +#usr/share/vim/vim72/doc/pi_spec.txt +#usr/share/vim/vim72/doc/pi_tar.txt +#usr/share/vim/vim72/doc/pi_vimball.txt +#usr/share/vim/vim72/doc/pi_zip.txt +#usr/share/vim/vim72/doc/print.txt +#usr/share/vim/vim72/doc/quickfix.txt +#usr/share/vim/vim72/doc/quickref.txt +#usr/share/vim/vim72/doc/quotes.txt +#usr/share/vim/vim72/doc/recover.txt +#usr/share/vim/vim72/doc/remote.txt +#usr/share/vim/vim72/doc/repeat.txt +#usr/share/vim/vim72/doc/rileft.txt +#usr/share/vim/vim72/doc/russian.txt +#usr/share/vim/vim72/doc/scroll.txt +#usr/share/vim/vim72/doc/sign.txt +#usr/share/vim/vim72/doc/spell.txt +#usr/share/vim/vim72/doc/sponsor.txt +#usr/share/vim/vim72/doc/starting.txt +#usr/share/vim/vim72/doc/syntax.txt +#usr/share/vim/vim72/doc/tabpage.txt +#usr/share/vim/vim72/doc/tags +#usr/share/vim/vim72/doc/tagsrch.txt +#usr/share/vim/vim72/doc/term.txt +#usr/share/vim/vim72/doc/tips.txt +#usr/share/vim/vim72/doc/todo.txt +#usr/share/vim/vim72/doc/uganda.txt +#usr/share/vim/vim72/doc/undo.txt +#usr/share/vim/vim72/doc/usr_01.txt +#usr/share/vim/vim72/doc/usr_02.txt +#usr/share/vim/vim72/doc/usr_03.txt +#usr/share/vim/vim72/doc/usr_04.txt +#usr/share/vim/vim72/doc/usr_05.txt +#usr/share/vim/vim72/doc/usr_06.txt +#usr/share/vim/vim72/doc/usr_07.txt +#usr/share/vim/vim72/doc/usr_08.txt +#usr/share/vim/vim72/doc/usr_09.txt +#usr/share/vim/vim72/doc/usr_10.txt +#usr/share/vim/vim72/doc/usr_11.txt +#usr/share/vim/vim72/doc/usr_12.txt +#usr/share/vim/vim72/doc/usr_20.txt +#usr/share/vim/vim72/doc/usr_21.txt +#usr/share/vim/vim72/doc/usr_22.txt +#usr/share/vim/vim72/doc/usr_23.txt +#usr/share/vim/vim72/doc/usr_24.txt +#usr/share/vim/vim72/doc/usr_25.txt +#usr/share/vim/vim72/doc/usr_26.txt +#usr/share/vim/vim72/doc/usr_27.txt +#usr/share/vim/vim72/doc/usr_28.txt +#usr/share/vim/vim72/doc/usr_29.txt +#usr/share/vim/vim72/doc/usr_30.txt +#usr/share/vim/vim72/doc/usr_31.txt +#usr/share/vim/vim72/doc/usr_32.txt +#usr/share/vim/vim72/doc/usr_40.txt +#usr/share/vim/vim72/doc/usr_41.txt +#usr/share/vim/vim72/doc/usr_42.txt +#usr/share/vim/vim72/doc/usr_43.txt +#usr/share/vim/vim72/doc/usr_44.txt +#usr/share/vim/vim72/doc/usr_45.txt +#usr/share/vim/vim72/doc/usr_90.txt +#usr/share/vim/vim72/doc/usr_toc.txt +#usr/share/vim/vim72/doc/various.txt +#usr/share/vim/vim72/doc/version4.txt +#usr/share/vim/vim72/doc/version5.txt +#usr/share/vim/vim72/doc/version6.txt +#usr/share/vim/vim72/doc/version7.txt +#usr/share/vim/vim72/doc/vi_diff.txt +#usr/share/vim/vim72/doc/vim2html.pl +#usr/share/vim/vim72/doc/visual.txt +#usr/share/vim/vim72/doc/windows.txt +#usr/share/vim/vim72/doc/workshop.txt +#usr/share/vim/vim72/evim.vim +#usr/share/vim/vim72/filetype.vim +#usr/share/vim/vim72/ftoff.vim +#usr/share/vim/vim72/ftplugin +#usr/share/vim/vim72/ftplugin.vim +#usr/share/vim/vim72/ftplugin/AppendMatchGroup.vim +#usr/share/vim/vim72/ftplugin/README.txt +#usr/share/vim/vim72/ftplugin/a2ps.vim +#usr/share/vim/vim72/ftplugin/aap.vim +#usr/share/vim/vim72/ftplugin/abaqus.vim +#usr/share/vim/vim72/ftplugin/ada.vim +#usr/share/vim/vim72/ftplugin/alsaconf.vim +#usr/share/vim/vim72/ftplugin/ant.vim +#usr/share/vim/vim72/ftplugin/arch.vim +#usr/share/vim/vim72/ftplugin/art.vim +#usr/share/vim/vim72/ftplugin/aspvbs.vim +#usr/share/vim/vim72/ftplugin/automake.vim +#usr/share/vim/vim72/ftplugin/bdf.vim +#usr/share/vim/vim72/ftplugin/bst.vim +#usr/share/vim/vim72/ftplugin/btm.vim +#usr/share/vim/vim72/ftplugin/c.vim +#usr/share/vim/vim72/ftplugin/calendar.vim +#usr/share/vim/vim72/ftplugin/cdrdaoconf.vim +#usr/share/vim/vim72/ftplugin/ch.vim +#usr/share/vim/vim72/ftplugin/changelog.vim +#usr/share/vim/vim72/ftplugin/cobol.vim +#usr/share/vim/vim72/ftplugin/conf.vim +#usr/share/vim/vim72/ftplugin/config.vim +#usr/share/vim/vim72/ftplugin/context.vim +#usr/share/vim/vim72/ftplugin/cpp.vim +#usr/share/vim/vim72/ftplugin/crm.vim +#usr/share/vim/vim72/ftplugin/cs.vim +#usr/share/vim/vim72/ftplugin/csc.vim +#usr/share/vim/vim72/ftplugin/csh.vim +#usr/share/vim/vim72/ftplugin/css.vim +#usr/share/vim/vim72/ftplugin/cvsrc.vim +#usr/share/vim/vim72/ftplugin/debchangelog.vim +#usr/share/vim/vim72/ftplugin/debcontrol.vim +#usr/share/vim/vim72/ftplugin/denyhosts.vim +#usr/share/vim/vim72/ftplugin/dictconf.vim +#usr/share/vim/vim72/ftplugin/dictdconf.vim +#usr/share/vim/vim72/ftplugin/diff.vim +#usr/share/vim/vim72/ftplugin/dircolors.vim +#usr/share/vim/vim72/ftplugin/dosbatch.vim +#usr/share/vim/vim72/ftplugin/dosini.vim +#usr/share/vim/vim72/ftplugin/dtd.vim +#usr/share/vim/vim72/ftplugin/dtrace.vim +#usr/share/vim/vim72/ftplugin/elinks.vim +#usr/share/vim/vim72/ftplugin/eruby.vim +#usr/share/vim/vim72/ftplugin/eterm.vim +#usr/share/vim/vim72/ftplugin/fetchmail.vim +#usr/share/vim/vim72/ftplugin/flexwiki.vim +#usr/share/vim/vim72/ftplugin/fortran.vim +#usr/share/vim/vim72/ftplugin/framescript.vim +#usr/share/vim/vim72/ftplugin/fvwm.vim +#usr/share/vim/vim72/ftplugin/git.vim +#usr/share/vim/vim72/ftplugin/gitcommit.vim +#usr/share/vim/vim72/ftplugin/gitconfig.vim +#usr/share/vim/vim72/ftplugin/gitrebase.vim +#usr/share/vim/vim72/ftplugin/gitsendemail.vim +#usr/share/vim/vim72/ftplugin/gpg.vim +#usr/share/vim/vim72/ftplugin/group.vim +#usr/share/vim/vim72/ftplugin/grub.vim +#usr/share/vim/vim72/ftplugin/haml.vim +#usr/share/vim/vim72/ftplugin/hamster.vim +#usr/share/vim/vim72/ftplugin/haskell.vim +#usr/share/vim/vim72/ftplugin/help.vim +#usr/share/vim/vim72/ftplugin/hostconf.vim +#usr/share/vim/vim72/ftplugin/hostsaccess.vim +#usr/share/vim/vim72/ftplugin/html.vim +#usr/share/vim/vim72/ftplugin/htmldjango.vim +#usr/share/vim/vim72/ftplugin/indent.vim +#usr/share/vim/vim72/ftplugin/initex.vim +#usr/share/vim/vim72/ftplugin/ishd.vim +#usr/share/vim/vim72/ftplugin/java.vim +#usr/share/vim/vim72/ftplugin/javascript.vim +#usr/share/vim/vim72/ftplugin/jsp.vim +#usr/share/vim/vim72/ftplugin/kconfig.vim +#usr/share/vim/vim72/ftplugin/kwt.vim +#usr/share/vim/vim72/ftplugin/ld.vim +#usr/share/vim/vim72/ftplugin/lftp.vim +#usr/share/vim/vim72/ftplugin/libao.vim +#usr/share/vim/vim72/ftplugin/limits.vim +#usr/share/vim/vim72/ftplugin/lisp.vim +#usr/share/vim/vim72/ftplugin/loginaccess.vim +#usr/share/vim/vim72/ftplugin/logindefs.vim +#usr/share/vim/vim72/ftplugin/logtalk.vim +#usr/share/vim/vim72/ftplugin/lprolog.vim +#usr/share/vim/vim72/ftplugin/lua.vim +#usr/share/vim/vim72/ftplugin/m4.vim +#usr/share/vim/vim72/ftplugin/mail.vim +#usr/share/vim/vim72/ftplugin/mailaliases.vim +#usr/share/vim/vim72/ftplugin/mailcap.vim +#usr/share/vim/vim72/ftplugin/make.vim +#usr/share/vim/vim72/ftplugin/man.vim +#usr/share/vim/vim72/ftplugin/manconf.vim +#usr/share/vim/vim72/ftplugin/matlab.vim +#usr/share/vim/vim72/ftplugin/mf.vim +#usr/share/vim/vim72/ftplugin/modconf.vim +#usr/share/vim/vim72/ftplugin/mp.vim +#usr/share/vim/vim72/ftplugin/mplayerconf.vim +#usr/share/vim/vim72/ftplugin/mrxvtrc.vim +#usr/share/vim/vim72/ftplugin/msmessages.vim +#usr/share/vim/vim72/ftplugin/mupad.vim +#usr/share/vim/vim72/ftplugin/muttrc.vim +#usr/share/vim/vim72/ftplugin/nanorc.vim +#usr/share/vim/vim72/ftplugin/netrc.vim +#usr/share/vim/vim72/ftplugin/nsis.vim +#usr/share/vim/vim72/ftplugin/objc.vim +#usr/share/vim/vim72/ftplugin/ocaml.vim +#usr/share/vim/vim72/ftplugin/occam.vim +#usr/share/vim/vim72/ftplugin/pamconf.vim +#usr/share/vim/vim72/ftplugin/pascal.vim +#usr/share/vim/vim72/ftplugin/passwd.vim +#usr/share/vim/vim72/ftplugin/pdf.vim +#usr/share/vim/vim72/ftplugin/perl.vim +#usr/share/vim/vim72/ftplugin/php.vim +#usr/share/vim/vim72/ftplugin/pinfo.vim +#usr/share/vim/vim72/ftplugin/plaintex.vim +#usr/share/vim/vim72/ftplugin/postscr.vim +#usr/share/vim/vim72/ftplugin/procmail.vim +#usr/share/vim/vim72/ftplugin/prolog.vim +#usr/share/vim/vim72/ftplugin/protocols.vim +#usr/share/vim/vim72/ftplugin/pyrex.vim +#usr/share/vim/vim72/ftplugin/python.vim +#usr/share/vim/vim72/ftplugin/quake.vim +#usr/share/vim/vim72/ftplugin/racc.vim +#usr/share/vim/vim72/ftplugin/readline.vim +#usr/share/vim/vim72/ftplugin/reva.vim +#usr/share/vim/vim72/ftplugin/rnc.vim +#usr/share/vim/vim72/ftplugin/rpl.vim +#usr/share/vim/vim72/ftplugin/rst.vim +#usr/share/vim/vim72/ftplugin/ruby.vim +#usr/share/vim/vim72/ftplugin/sass.vim +#usr/share/vim/vim72/ftplugin/scheme.vim +#usr/share/vim/vim72/ftplugin/screen.vim +#usr/share/vim/vim72/ftplugin/sensors.vim +#usr/share/vim/vim72/ftplugin/services.vim +#usr/share/vim/vim72/ftplugin/setserial.vim +#usr/share/vim/vim72/ftplugin/sgml.vim +#usr/share/vim/vim72/ftplugin/sh.vim +#usr/share/vim/vim72/ftplugin/sieve.vim +#usr/share/vim/vim72/ftplugin/slpconf.vim +#usr/share/vim/vim72/ftplugin/slpreg.vim +#usr/share/vim/vim72/ftplugin/slpspi.vim +#usr/share/vim/vim72/ftplugin/spec.vim +#usr/share/vim/vim72/ftplugin/sql.vim +#usr/share/vim/vim72/ftplugin/sshconfig.vim +#usr/share/vim/vim72/ftplugin/sudoers.vim +#usr/share/vim/vim72/ftplugin/svg.vim +#usr/share/vim/vim72/ftplugin/sysctl.vim +#usr/share/vim/vim72/ftplugin/tcsh.vim +#usr/share/vim/vim72/ftplugin/terminfo.vim +#usr/share/vim/vim72/ftplugin/tex.vim +#usr/share/vim/vim72/ftplugin/udevconf.vim +#usr/share/vim/vim72/ftplugin/udevperm.vim +#usr/share/vim/vim72/ftplugin/udevrules.vim +#usr/share/vim/vim72/ftplugin/updatedb.vim +#usr/share/vim/vim72/ftplugin/vb.vim +#usr/share/vim/vim72/ftplugin/verilog.vim +#usr/share/vim/vim72/ftplugin/vhdl.vim +#usr/share/vim/vim72/ftplugin/vim.vim +#usr/share/vim/vim72/ftplugin/xdefaults.vim +#usr/share/vim/vim72/ftplugin/xf86conf.vim +#usr/share/vim/vim72/ftplugin/xhtml.vim +#usr/share/vim/vim72/ftplugin/xinetd.vim +#usr/share/vim/vim72/ftplugin/xml.vim +#usr/share/vim/vim72/ftplugin/xmodmap.vim +#usr/share/vim/vim72/ftplugin/xs.vim +#usr/share/vim/vim72/ftplugin/xsd.vim +#usr/share/vim/vim72/ftplugin/xslt.vim +#usr/share/vim/vim72/ftplugin/yaml.vim +#usr/share/vim/vim72/ftplugin/zsh.vim +#usr/share/vim/vim72/ftplugof.vim +#usr/share/vim/vim72/gvimrc_example.vim +#usr/share/vim/vim72/indent +#usr/share/vim/vim72/indent.vim +#usr/share/vim/vim72/indent/GenericIndent.vim +#usr/share/vim/vim72/indent/README.txt +#usr/share/vim/vim72/indent/aap.vim +#usr/share/vim/vim72/indent/ada.vim +#usr/share/vim/vim72/indent/ant.vim +#usr/share/vim/vim72/indent/automake.vim +#usr/share/vim/vim72/indent/awk.vim +#usr/share/vim/vim72/indent/bib.vim +#usr/share/vim/vim72/indent/bst.vim +#usr/share/vim/vim72/indent/c.vim +#usr/share/vim/vim72/indent/cdl.vim +#usr/share/vim/vim72/indent/ch.vim +#usr/share/vim/vim72/indent/changelog.vim +#usr/share/vim/vim72/indent/cmake.vim +#usr/share/vim/vim72/indent/cobol.vim +#usr/share/vim/vim72/indent/config.vim +#usr/share/vim/vim72/indent/cpp.vim +#usr/share/vim/vim72/indent/cs.vim +#usr/share/vim/vim72/indent/css.vim +#usr/share/vim/vim72/indent/d.vim +#usr/share/vim/vim72/indent/dictconf.vim +#usr/share/vim/vim72/indent/dictdconf.vim +#usr/share/vim/vim72/indent/docbk.vim +#usr/share/vim/vim72/indent/dtd.vim +#usr/share/vim/vim72/indent/dtrace.vim +#usr/share/vim/vim72/indent/dylan.vim +#usr/share/vim/vim72/indent/eiffel.vim +#usr/share/vim/vim72/indent/erlang.vim +#usr/share/vim/vim72/indent/eruby.vim +#usr/share/vim/vim72/indent/eterm.vim +#usr/share/vim/vim72/indent/fortran.vim +#usr/share/vim/vim72/indent/framescript.vim +#usr/share/vim/vim72/indent/gitconfig.vim +#usr/share/vim/vim72/indent/haml.vim +#usr/share/vim/vim72/indent/hamster.vim +#usr/share/vim/vim72/indent/html.vim +#usr/share/vim/vim72/indent/htmldjango.vim +#usr/share/vim/vim72/indent/idlang.vim +#usr/share/vim/vim72/indent/ishd.vim +#usr/share/vim/vim72/indent/java.vim +#usr/share/vim/vim72/indent/javascript.vim +#usr/share/vim/vim72/indent/jsp.vim +#usr/share/vim/vim72/indent/ld.vim +#usr/share/vim/vim72/indent/lisp.vim +#usr/share/vim/vim72/indent/logtalk.vim +#usr/share/vim/vim72/indent/lua.vim +#usr/share/vim/vim72/indent/make.vim +#usr/share/vim/vim72/indent/matlab.vim +#usr/share/vim/vim72/indent/mma.vim +#usr/share/vim/vim72/indent/mp.vim +#usr/share/vim/vim72/indent/mupad.vim +#usr/share/vim/vim72/indent/objc.vim +#usr/share/vim/vim72/indent/ocaml.vim +#usr/share/vim/vim72/indent/occam.vim +#usr/share/vim/vim72/indent/pascal.vim +#usr/share/vim/vim72/indent/perl.vim +#usr/share/vim/vim72/indent/php.vim +#usr/share/vim/vim72/indent/postscr.vim +#usr/share/vim/vim72/indent/pov.vim +#usr/share/vim/vim72/indent/prolog.vim +#usr/share/vim/vim72/indent/pyrex.vim +#usr/share/vim/vim72/indent/python.vim +#usr/share/vim/vim72/indent/readline.vim +#usr/share/vim/vim72/indent/rpl.vim +#usr/share/vim/vim72/indent/rst.vim +#usr/share/vim/vim72/indent/ruby.vim +#usr/share/vim/vim72/indent/sass.vim +#usr/share/vim/vim72/indent/scheme.vim +#usr/share/vim/vim72/indent/sdl.vim +#usr/share/vim/vim72/indent/sh.vim +#usr/share/vim/vim72/indent/sml.vim +#usr/share/vim/vim72/indent/sql.vim +#usr/share/vim/vim72/indent/sqlanywhere.vim +#usr/share/vim/vim72/indent/tcl.vim +#usr/share/vim/vim72/indent/tcsh.vim +#usr/share/vim/vim72/indent/tf.vim +#usr/share/vim/vim72/indent/tilde.vim +#usr/share/vim/vim72/indent/vb.vim +#usr/share/vim/vim72/indent/verilog.vim +#usr/share/vim/vim72/indent/vhdl.vim +#usr/share/vim/vim72/indent/vim.vim +#usr/share/vim/vim72/indent/xf86conf.vim +#usr/share/vim/vim72/indent/xhtml.vim +#usr/share/vim/vim72/indent/xinetd.vim +#usr/share/vim/vim72/indent/xml.vim +#usr/share/vim/vim72/indent/xsd.vim +#usr/share/vim/vim72/indent/xslt.vim +#usr/share/vim/vim72/indent/yacc.vim +#usr/share/vim/vim72/indent/zsh.vim +#usr/share/vim/vim72/indoff.vim +#usr/share/vim/vim72/macros +#usr/share/vim/vim72/macros/README.txt +#usr/share/vim/vim72/macros/dvorak +#usr/share/vim/vim72/macros/editexisting.vim +#usr/share/vim/vim72/macros/hanoi +#usr/share/vim/vim72/macros/hanoi/click.me +#usr/share/vim/vim72/macros/hanoi/hanoi.vim +#usr/share/vim/vim72/macros/hanoi/poster +#usr/share/vim/vim72/macros/justify.vim +#usr/share/vim/vim72/macros/less.sh +#usr/share/vim/vim72/macros/less.vim +#usr/share/vim/vim72/macros/life +#usr/share/vim/vim72/macros/life/click.me +#usr/share/vim/vim72/macros/life/life.vim +#usr/share/vim/vim72/macros/matchit.txt +#usr/share/vim/vim72/macros/matchit.vim +#usr/share/vim/vim72/macros/maze +#usr/share/vim/vim72/macros/maze/Makefile +#usr/share/vim/vim72/macros/maze/README.txt +#usr/share/vim/vim72/macros/maze/main.aap +#usr/share/vim/vim72/macros/maze/maze.c +#usr/share/vim/vim72/macros/maze/maze_5.78 +#usr/share/vim/vim72/macros/maze/maze_mac +#usr/share/vim/vim72/macros/maze/mazeansi.c +#usr/share/vim/vim72/macros/maze/mazeclean.c +#usr/share/vim/vim72/macros/maze/poster +#usr/share/vim/vim72/macros/shellmenu.vim +#usr/share/vim/vim72/macros/swapmous.vim +#usr/share/vim/vim72/macros/urm +#usr/share/vim/vim72/macros/urm/README.txt +#usr/share/vim/vim72/macros/urm/examples +#usr/share/vim/vim72/macros/urm/urm +#usr/share/vim/vim72/macros/urm/urm.vim +#usr/share/vim/vim72/menu.vim +#usr/share/vim/vim72/mswin.vim +#usr/share/vim/vim72/optwin.vim +#usr/share/vim/vim72/plugin +#usr/share/vim/vim72/plugin/README.txt +#usr/share/vim/vim72/plugin/getscriptPlugin.vim +#usr/share/vim/vim72/plugin/gzip.vim +#usr/share/vim/vim72/plugin/matchparen.vim +#usr/share/vim/vim72/plugin/netrwPlugin.vim +#usr/share/vim/vim72/plugin/rrhelper.vim +#usr/share/vim/vim72/plugin/spellfile.vim +#usr/share/vim/vim72/plugin/tarPlugin.vim +#usr/share/vim/vim72/plugin/tohtml.vim +#usr/share/vim/vim72/plugin/vimballPlugin.vim +#usr/share/vim/vim72/plugin/zipPlugin.vim +#usr/share/vim/vim72/print +#usr/share/vim/vim72/print/ascii.ps +#usr/share/vim/vim72/print/cidfont.ps +#usr/share/vim/vim72/print/cns_roman.ps +#usr/share/vim/vim72/print/cp1250.ps +#usr/share/vim/vim72/print/cp1251.ps +#usr/share/vim/vim72/print/cp1252.ps +#usr/share/vim/vim72/print/cp1253.ps +#usr/share/vim/vim72/print/cp1254.ps +#usr/share/vim/vim72/print/cp1255.ps +#usr/share/vim/vim72/print/cp1257.ps +#usr/share/vim/vim72/print/dec-mcs.ps +#usr/share/vim/vim72/print/ebcdic-uk.ps +#usr/share/vim/vim72/print/gb_roman.ps +#usr/share/vim/vim72/print/hp-roman8.ps +#usr/share/vim/vim72/print/iso-8859-10.ps +#usr/share/vim/vim72/print/iso-8859-11.ps +#usr/share/vim/vim72/print/iso-8859-13.ps +#usr/share/vim/vim72/print/iso-8859-14.ps +#usr/share/vim/vim72/print/iso-8859-15.ps +#usr/share/vim/vim72/print/iso-8859-2.ps +#usr/share/vim/vim72/print/iso-8859-3.ps +#usr/share/vim/vim72/print/iso-8859-4.ps +#usr/share/vim/vim72/print/iso-8859-5.ps +#usr/share/vim/vim72/print/iso-8859-7.ps +#usr/share/vim/vim72/print/iso-8859-8.ps +#usr/share/vim/vim72/print/iso-8859-9.ps +#usr/share/vim/vim72/print/jis_roman.ps +#usr/share/vim/vim72/print/koi8-r.ps +#usr/share/vim/vim72/print/koi8-u.ps +#usr/share/vim/vim72/print/ks_roman.ps +#usr/share/vim/vim72/print/latin1.ps +#usr/share/vim/vim72/print/mac-roman.ps +#usr/share/vim/vim72/print/prolog.ps +#usr/share/vim/vim72/scripts.vim +#usr/share/vim/vim72/spell +#usr/share/vim/vim72/spell/cleanadd.vim +#usr/share/vim/vim72/spell/en.ascii.spl +#usr/share/vim/vim72/spell/en.ascii.sug +#usr/share/vim/vim72/spell/en.latin1.spl +#usr/share/vim/vim72/spell/en.latin1.sug +#usr/share/vim/vim72/spell/en.utf-8.spl +#usr/share/vim/vim72/spell/en.utf-8.sug +#usr/share/vim/vim72/spell/he.vim +#usr/share/vim/vim72/spell/yi.vim +#usr/share/vim/vim72/synmenu.vim +#usr/share/vim/vim72/syntax +#usr/share/vim/vim72/syntax/2html.vim +#usr/share/vim/vim72/syntax/README.txt +#usr/share/vim/vim72/syntax/a2ps.vim +#usr/share/vim/vim72/syntax/a65.vim +#usr/share/vim/vim72/syntax/aap.vim +#usr/share/vim/vim72/syntax/abap.vim +#usr/share/vim/vim72/syntax/abaqus.vim +#usr/share/vim/vim72/syntax/abc.vim +#usr/share/vim/vim72/syntax/abel.vim +#usr/share/vim/vim72/syntax/acedb.vim +#usr/share/vim/vim72/syntax/ada.vim +#usr/share/vim/vim72/syntax/aflex.vim +#usr/share/vim/vim72/syntax/ahdl.vim +#usr/share/vim/vim72/syntax/alsaconf.vim +#usr/share/vim/vim72/syntax/amiga.vim +#usr/share/vim/vim72/syntax/aml.vim +#usr/share/vim/vim72/syntax/ampl.vim +#usr/share/vim/vim72/syntax/ant.vim +#usr/share/vim/vim72/syntax/antlr.vim +#usr/share/vim/vim72/syntax/apache.vim +#usr/share/vim/vim72/syntax/apachestyle.vim +#usr/share/vim/vim72/syntax/arch.vim +#usr/share/vim/vim72/syntax/art.vim +#usr/share/vim/vim72/syntax/asm.vim +#usr/share/vim/vim72/syntax/asm68k.vim +#usr/share/vim/vim72/syntax/asmh8300.vim +#usr/share/vim/vim72/syntax/asn.vim +#usr/share/vim/vim72/syntax/aspperl.vim +#usr/share/vim/vim72/syntax/aspvbs.vim +#usr/share/vim/vim72/syntax/asterisk.vim +#usr/share/vim/vim72/syntax/asteriskvm.vim +#usr/share/vim/vim72/syntax/atlas.vim +#usr/share/vim/vim72/syntax/autohotkey.vim +#usr/share/vim/vim72/syntax/autoit.vim +#usr/share/vim/vim72/syntax/automake.vim +#usr/share/vim/vim72/syntax/ave.vim +#usr/share/vim/vim72/syntax/awk.vim +#usr/share/vim/vim72/syntax/ayacc.vim +#usr/share/vim/vim72/syntax/b.vim +#usr/share/vim/vim72/syntax/baan.vim +#usr/share/vim/vim72/syntax/basic.vim +#usr/share/vim/vim72/syntax/bc.vim +#usr/share/vim/vim72/syntax/bdf.vim +#usr/share/vim/vim72/syntax/bib.vim +#usr/share/vim/vim72/syntax/bindzone.vim +#usr/share/vim/vim72/syntax/blank.vim +#usr/share/vim/vim72/syntax/bst.vim +#usr/share/vim/vim72/syntax/btm.vim +#usr/share/vim/vim72/syntax/bzr.vim +#usr/share/vim/vim72/syntax/c.vim +#usr/share/vim/vim72/syntax/calendar.vim +#usr/share/vim/vim72/syntax/catalog.vim +#usr/share/vim/vim72/syntax/cdl.vim +#usr/share/vim/vim72/syntax/cdrdaoconf.vim +#usr/share/vim/vim72/syntax/cdrtoc.vim +#usr/share/vim/vim72/syntax/cf.vim +#usr/share/vim/vim72/syntax/cfg.vim +#usr/share/vim/vim72/syntax/ch.vim +#usr/share/vim/vim72/syntax/change.vim +#usr/share/vim/vim72/syntax/changelog.vim +#usr/share/vim/vim72/syntax/chaskell.vim +#usr/share/vim/vim72/syntax/cheetah.vim +#usr/share/vim/vim72/syntax/chill.vim +#usr/share/vim/vim72/syntax/chordpro.vim +#usr/share/vim/vim72/syntax/cl.vim +#usr/share/vim/vim72/syntax/clean.vim +#usr/share/vim/vim72/syntax/clipper.vim +#usr/share/vim/vim72/syntax/cmake.vim +#usr/share/vim/vim72/syntax/cmusrc.vim +#usr/share/vim/vim72/syntax/cobol.vim +#usr/share/vim/vim72/syntax/coco.vim +#usr/share/vim/vim72/syntax/colortest.vim +#usr/share/vim/vim72/syntax/conaryrecipe.vim +#usr/share/vim/vim72/syntax/conf.vim +#usr/share/vim/vim72/syntax/config.vim +#usr/share/vim/vim72/syntax/context.vim +#usr/share/vim/vim72/syntax/cpp.vim +#usr/share/vim/vim72/syntax/crm.vim +#usr/share/vim/vim72/syntax/crontab.vim +#usr/share/vim/vim72/syntax/cs.vim +#usr/share/vim/vim72/syntax/csc.vim +#usr/share/vim/vim72/syntax/csh.vim +#usr/share/vim/vim72/syntax/csp.vim +#usr/share/vim/vim72/syntax/css.vim +#usr/share/vim/vim72/syntax/cterm.vim +#usr/share/vim/vim72/syntax/ctrlh.vim +#usr/share/vim/vim72/syntax/cuda.vim +#usr/share/vim/vim72/syntax/cupl.vim +#usr/share/vim/vim72/syntax/cuplsim.vim +#usr/share/vim/vim72/syntax/cvs.vim +#usr/share/vim/vim72/syntax/cvsrc.vim +#usr/share/vim/vim72/syntax/cweb.vim +#usr/share/vim/vim72/syntax/cynlib.vim +#usr/share/vim/vim72/syntax/cynpp.vim +#usr/share/vim/vim72/syntax/d.vim +#usr/share/vim/vim72/syntax/dcd.vim +#usr/share/vim/vim72/syntax/dcl.vim +#usr/share/vim/vim72/syntax/debchangelog.vim +#usr/share/vim/vim72/syntax/debcontrol.vim +#usr/share/vim/vim72/syntax/debsources.vim +#usr/share/vim/vim72/syntax/def.vim +#usr/share/vim/vim72/syntax/denyhosts.vim +#usr/share/vim/vim72/syntax/desc.vim +#usr/share/vim/vim72/syntax/desktop.vim +#usr/share/vim/vim72/syntax/dictconf.vim +#usr/share/vim/vim72/syntax/dictdconf.vim +#usr/share/vim/vim72/syntax/diff.vim +#usr/share/vim/vim72/syntax/dircolors.vim +#usr/share/vim/vim72/syntax/diva.vim +#usr/share/vim/vim72/syntax/django.vim +#usr/share/vim/vim72/syntax/dns.vim +#usr/share/vim/vim72/syntax/docbk.vim +#usr/share/vim/vim72/syntax/docbksgml.vim +#usr/share/vim/vim72/syntax/docbkxml.vim +#usr/share/vim/vim72/syntax/dosbatch.vim +#usr/share/vim/vim72/syntax/dosini.vim +#usr/share/vim/vim72/syntax/dot.vim +#usr/share/vim/vim72/syntax/doxygen.vim +#usr/share/vim/vim72/syntax/dracula.vim +#usr/share/vim/vim72/syntax/dsl.vim +#usr/share/vim/vim72/syntax/dtd.vim +#usr/share/vim/vim72/syntax/dtml.vim +#usr/share/vim/vim72/syntax/dtrace.vim +#usr/share/vim/vim72/syntax/dylan.vim +#usr/share/vim/vim72/syntax/dylanintr.vim +#usr/share/vim/vim72/syntax/dylanlid.vim +#usr/share/vim/vim72/syntax/ecd.vim +#usr/share/vim/vim72/syntax/edif.vim +#usr/share/vim/vim72/syntax/eiffel.vim +#usr/share/vim/vim72/syntax/elf.vim +#usr/share/vim/vim72/syntax/elinks.vim +#usr/share/vim/vim72/syntax/elmfilt.vim +#usr/share/vim/vim72/syntax/erlang.vim +#usr/share/vim/vim72/syntax/eruby.vim +#usr/share/vim/vim72/syntax/esmtprc.vim +#usr/share/vim/vim72/syntax/esqlc.vim +#usr/share/vim/vim72/syntax/esterel.vim +#usr/share/vim/vim72/syntax/eterm.vim +#usr/share/vim/vim72/syntax/eviews.vim +#usr/share/vim/vim72/syntax/exim.vim +#usr/share/vim/vim72/syntax/expect.vim +#usr/share/vim/vim72/syntax/exports.vim +#usr/share/vim/vim72/syntax/fasm.vim +#usr/share/vim/vim72/syntax/fdcc.vim +#usr/share/vim/vim72/syntax/fetchmail.vim +#usr/share/vim/vim72/syntax/fgl.vim +#usr/share/vim/vim72/syntax/flexwiki.vim +#usr/share/vim/vim72/syntax/focexec.vim +#usr/share/vim/vim72/syntax/form.vim +#usr/share/vim/vim72/syntax/forth.vim +#usr/share/vim/vim72/syntax/fortran.vim +#usr/share/vim/vim72/syntax/foxpro.vim +#usr/share/vim/vim72/syntax/framescript.vim +#usr/share/vim/vim72/syntax/freebasic.vim +#usr/share/vim/vim72/syntax/fstab.vim +#usr/share/vim/vim72/syntax/fvwm.vim +#usr/share/vim/vim72/syntax/fvwm2m4.vim +#usr/share/vim/vim72/syntax/gdb.vim +#usr/share/vim/vim72/syntax/gdmo.vim +#usr/share/vim/vim72/syntax/gedcom.vim +#usr/share/vim/vim72/syntax/git.vim +#usr/share/vim/vim72/syntax/gitcommit.vim +#usr/share/vim/vim72/syntax/gitconfig.vim +#usr/share/vim/vim72/syntax/gitrebase.vim +#usr/share/vim/vim72/syntax/gitsendemail.vim +#usr/share/vim/vim72/syntax/gkrellmrc.vim +#usr/share/vim/vim72/syntax/gnuplot.vim +#usr/share/vim/vim72/syntax/gp.vim +#usr/share/vim/vim72/syntax/gpg.vim +#usr/share/vim/vim72/syntax/grads.vim +#usr/share/vim/vim72/syntax/gretl.vim +#usr/share/vim/vim72/syntax/groff.vim +#usr/share/vim/vim72/syntax/groovy.vim +#usr/share/vim/vim72/syntax/group.vim +#usr/share/vim/vim72/syntax/grub.vim +#usr/share/vim/vim72/syntax/gsp.vim +#usr/share/vim/vim72/syntax/gtkrc.vim +#usr/share/vim/vim72/syntax/haml.vim +#usr/share/vim/vim72/syntax/hamster.vim +#usr/share/vim/vim72/syntax/haskell.vim +#usr/share/vim/vim72/syntax/haste.vim +#usr/share/vim/vim72/syntax/hastepreproc.vim +#usr/share/vim/vim72/syntax/hb.vim +#usr/share/vim/vim72/syntax/help.vim +#usr/share/vim/vim72/syntax/hercules.vim +#usr/share/vim/vim72/syntax/hex.vim +#usr/share/vim/vim72/syntax/hitest.vim +#usr/share/vim/vim72/syntax/hog.vim +#usr/share/vim/vim72/syntax/hostconf.vim +#usr/share/vim/vim72/syntax/html.vim +#usr/share/vim/vim72/syntax/htmlcheetah.vim +#usr/share/vim/vim72/syntax/htmldjango.vim +#usr/share/vim/vim72/syntax/htmlm4.vim +#usr/share/vim/vim72/syntax/htmlos.vim +#usr/share/vim/vim72/syntax/ia64.vim +#usr/share/vim/vim72/syntax/ibasic.vim +#usr/share/vim/vim72/syntax/icemenu.vim +#usr/share/vim/vim72/syntax/icon.vim +#usr/share/vim/vim72/syntax/idl.vim +#usr/share/vim/vim72/syntax/idlang.vim +#usr/share/vim/vim72/syntax/indent.vim +#usr/share/vim/vim72/syntax/inform.vim +#usr/share/vim/vim72/syntax/initex.vim +#usr/share/vim/vim72/syntax/initng.vim +#usr/share/vim/vim72/syntax/inittab.vim +#usr/share/vim/vim72/syntax/ipfilter.vim +#usr/share/vim/vim72/syntax/ishd.vim +#usr/share/vim/vim72/syntax/iss.vim +#usr/share/vim/vim72/syntax/ist.vim +#usr/share/vim/vim72/syntax/jal.vim +#usr/share/vim/vim72/syntax/jam.vim +#usr/share/vim/vim72/syntax/jargon.vim +#usr/share/vim/vim72/syntax/java.vim +#usr/share/vim/vim72/syntax/javacc.vim +#usr/share/vim/vim72/syntax/javascript.vim +#usr/share/vim/vim72/syntax/jess.vim +#usr/share/vim/vim72/syntax/jgraph.vim +#usr/share/vim/vim72/syntax/jproperties.vim +#usr/share/vim/vim72/syntax/jsp.vim +#usr/share/vim/vim72/syntax/kconfig.vim +#usr/share/vim/vim72/syntax/kix.vim +#usr/share/vim/vim72/syntax/kscript.vim +#usr/share/vim/vim72/syntax/kwt.vim +#usr/share/vim/vim72/syntax/lace.vim +#usr/share/vim/vim72/syntax/latte.vim +#usr/share/vim/vim72/syntax/ld.vim +#usr/share/vim/vim72/syntax/ldapconf.vim +#usr/share/vim/vim72/syntax/ldif.vim +#usr/share/vim/vim72/syntax/lex.vim +#usr/share/vim/vim72/syntax/lftp.vim +#usr/share/vim/vim72/syntax/lhaskell.vim +#usr/share/vim/vim72/syntax/libao.vim +#usr/share/vim/vim72/syntax/lifelines.vim +#usr/share/vim/vim72/syntax/lilo.vim +#usr/share/vim/vim72/syntax/limits.vim +#usr/share/vim/vim72/syntax/lisp.vim +#usr/share/vim/vim72/syntax/lite.vim +#usr/share/vim/vim72/syntax/litestep.vim +#usr/share/vim/vim72/syntax/loginaccess.vim +#usr/share/vim/vim72/syntax/logindefs.vim +#usr/share/vim/vim72/syntax/logtalk.vim +#usr/share/vim/vim72/syntax/lotos.vim +#usr/share/vim/vim72/syntax/lout.vim +#usr/share/vim/vim72/syntax/lpc.vim +#usr/share/vim/vim72/syntax/lprolog.vim +#usr/share/vim/vim72/syntax/lscript.vim +#usr/share/vim/vim72/syntax/lsl.vim +#usr/share/vim/vim72/syntax/lss.vim +#usr/share/vim/vim72/syntax/lua.vim +#usr/share/vim/vim72/syntax/lynx.vim +#usr/share/vim/vim72/syntax/m4.vim +#usr/share/vim/vim72/syntax/mail.vim +#usr/share/vim/vim72/syntax/mailaliases.vim +#usr/share/vim/vim72/syntax/mailcap.vim +#usr/share/vim/vim72/syntax/make.vim +#usr/share/vim/vim72/syntax/man.vim +#usr/share/vim/vim72/syntax/manconf.vim +#usr/share/vim/vim72/syntax/manual.vim +#usr/share/vim/vim72/syntax/maple.vim +#usr/share/vim/vim72/syntax/masm.vim +#usr/share/vim/vim72/syntax/mason.vim +#usr/share/vim/vim72/syntax/master.vim +#usr/share/vim/vim72/syntax/matlab.vim +#usr/share/vim/vim72/syntax/maxima.vim +#usr/share/vim/vim72/syntax/mel.vim +#usr/share/vim/vim72/syntax/messages.vim +#usr/share/vim/vim72/syntax/mf.vim +#usr/share/vim/vim72/syntax/mgl.vim +#usr/share/vim/vim72/syntax/mgp.vim +#usr/share/vim/vim72/syntax/mib.vim +#usr/share/vim/vim72/syntax/mma.vim +#usr/share/vim/vim72/syntax/mmix.vim +#usr/share/vim/vim72/syntax/mmp.vim +#usr/share/vim/vim72/syntax/modconf.vim +#usr/share/vim/vim72/syntax/model.vim +#usr/share/vim/vim72/syntax/modsim3.vim +#usr/share/vim/vim72/syntax/modula2.vim +#usr/share/vim/vim72/syntax/modula3.vim +#usr/share/vim/vim72/syntax/monk.vim +#usr/share/vim/vim72/syntax/moo.vim +#usr/share/vim/vim72/syntax/mp.vim +#usr/share/vim/vim72/syntax/mplayerconf.vim +#usr/share/vim/vim72/syntax/mrxvtrc.vim +#usr/share/vim/vim72/syntax/msidl.vim +#usr/share/vim/vim72/syntax/msmessages.vim +#usr/share/vim/vim72/syntax/msql.vim +#usr/share/vim/vim72/syntax/mupad.vim +#usr/share/vim/vim72/syntax/mush.vim +#usr/share/vim/vim72/syntax/muttrc.vim +#usr/share/vim/vim72/syntax/mysql.vim +#usr/share/vim/vim72/syntax/named.vim +#usr/share/vim/vim72/syntax/nanorc.vim +#usr/share/vim/vim72/syntax/nasm.vim +#usr/share/vim/vim72/syntax/nastran.vim +#usr/share/vim/vim72/syntax/natural.vim +#usr/share/vim/vim72/syntax/ncf.vim +#usr/share/vim/vim72/syntax/netrc.vim +#usr/share/vim/vim72/syntax/netrw.vim +#usr/share/vim/vim72/syntax/nosyntax.vim +#usr/share/vim/vim72/syntax/nqc.vim +#usr/share/vim/vim72/syntax/nroff.vim +#usr/share/vim/vim72/syntax/nsis.vim +#usr/share/vim/vim72/syntax/objc.vim +#usr/share/vim/vim72/syntax/objcpp.vim +#usr/share/vim/vim72/syntax/ocaml.vim +#usr/share/vim/vim72/syntax/occam.vim +#usr/share/vim/vim72/syntax/omnimark.vim +#usr/share/vim/vim72/syntax/openroad.vim +#usr/share/vim/vim72/syntax/opl.vim +#usr/share/vim/vim72/syntax/ora.vim +#usr/share/vim/vim72/syntax/pamconf.vim +#usr/share/vim/vim72/syntax/papp.vim +#usr/share/vim/vim72/syntax/pascal.vim +#usr/share/vim/vim72/syntax/passwd.vim +#usr/share/vim/vim72/syntax/pcap.vim +#usr/share/vim/vim72/syntax/pccts.vim +#usr/share/vim/vim72/syntax/pdf.vim +#usr/share/vim/vim72/syntax/perl.vim +#usr/share/vim/vim72/syntax/pf.vim +#usr/share/vim/vim72/syntax/pfmain.vim +#usr/share/vim/vim72/syntax/php.vim +#usr/share/vim/vim72/syntax/phtml.vim +#usr/share/vim/vim72/syntax/pic.vim +#usr/share/vim/vim72/syntax/pike.vim +#usr/share/vim/vim72/syntax/pilrc.vim +#usr/share/vim/vim72/syntax/pine.vim +#usr/share/vim/vim72/syntax/pinfo.vim +#usr/share/vim/vim72/syntax/plaintex.vim +#usr/share/vim/vim72/syntax/plm.vim +#usr/share/vim/vim72/syntax/plp.vim +#usr/share/vim/vim72/syntax/plsql.vim +#usr/share/vim/vim72/syntax/po.vim +#usr/share/vim/vim72/syntax/pod.vim +#usr/share/vim/vim72/syntax/postscr.vim +#usr/share/vim/vim72/syntax/pov.vim +#usr/share/vim/vim72/syntax/povini.vim +#usr/share/vim/vim72/syntax/ppd.vim +#usr/share/vim/vim72/syntax/ppwiz.vim +#usr/share/vim/vim72/syntax/prescribe.vim +#usr/share/vim/vim72/syntax/privoxy.vim +#usr/share/vim/vim72/syntax/procmail.vim +#usr/share/vim/vim72/syntax/progress.vim +#usr/share/vim/vim72/syntax/prolog.vim +#usr/share/vim/vim72/syntax/promela.vim +#usr/share/vim/vim72/syntax/protocols.vim +#usr/share/vim/vim72/syntax/psf.vim +#usr/share/vim/vim72/syntax/ptcap.vim +#usr/share/vim/vim72/syntax/purifylog.vim +#usr/share/vim/vim72/syntax/pyrex.vim +#usr/share/vim/vim72/syntax/python.vim +#usr/share/vim/vim72/syntax/qf.vim +#usr/share/vim/vim72/syntax/quake.vim +#usr/share/vim/vim72/syntax/r.vim +#usr/share/vim/vim72/syntax/racc.vim +#usr/share/vim/vim72/syntax/radiance.vim +#usr/share/vim/vim72/syntax/ratpoison.vim +#usr/share/vim/vim72/syntax/rc.vim +#usr/share/vim/vim72/syntax/rcs.vim +#usr/share/vim/vim72/syntax/rcslog.vim +#usr/share/vim/vim72/syntax/readline.vim +#usr/share/vim/vim72/syntax/rebol.vim +#usr/share/vim/vim72/syntax/registry.vim +#usr/share/vim/vim72/syntax/remind.vim +#usr/share/vim/vim72/syntax/resolv.vim +#usr/share/vim/vim72/syntax/reva.vim +#usr/share/vim/vim72/syntax/rexx.vim +#usr/share/vim/vim72/syntax/rhelp.vim +#usr/share/vim/vim72/syntax/rib.vim +#usr/share/vim/vim72/syntax/rnc.vim +#usr/share/vim/vim72/syntax/rnoweb.vim +#usr/share/vim/vim72/syntax/robots.vim +#usr/share/vim/vim72/syntax/rpcgen.vim +#usr/share/vim/vim72/syntax/rpl.vim +#usr/share/vim/vim72/syntax/rst.vim +#usr/share/vim/vim72/syntax/rtf.vim +#usr/share/vim/vim72/syntax/ruby.vim +#usr/share/vim/vim72/syntax/samba.vim +#usr/share/vim/vim72/syntax/sas.vim +#usr/share/vim/vim72/syntax/sass.vim +#usr/share/vim/vim72/syntax/sather.vim +#usr/share/vim/vim72/syntax/scheme.vim +#usr/share/vim/vim72/syntax/scilab.vim +#usr/share/vim/vim72/syntax/screen.vim +#usr/share/vim/vim72/syntax/sd.vim +#usr/share/vim/vim72/syntax/sdl.vim +#usr/share/vim/vim72/syntax/sed.vim +#usr/share/vim/vim72/syntax/sendpr.vim +#usr/share/vim/vim72/syntax/sensors.vim +#usr/share/vim/vim72/syntax/services.vim +#usr/share/vim/vim72/syntax/setserial.vim +#usr/share/vim/vim72/syntax/sgml.vim +#usr/share/vim/vim72/syntax/sgmldecl.vim +#usr/share/vim/vim72/syntax/sgmllnx.vim +#usr/share/vim/vim72/syntax/sh.vim +#usr/share/vim/vim72/syntax/sicad.vim +#usr/share/vim/vim72/syntax/sieve.vim +#usr/share/vim/vim72/syntax/simula.vim +#usr/share/vim/vim72/syntax/sinda.vim +#usr/share/vim/vim72/syntax/sindacmp.vim +#usr/share/vim/vim72/syntax/sindaout.vim +#usr/share/vim/vim72/syntax/sisu.vim +#usr/share/vim/vim72/syntax/skill.vim +#usr/share/vim/vim72/syntax/sl.vim +#usr/share/vim/vim72/syntax/slang.vim +#usr/share/vim/vim72/syntax/slice.vim +#usr/share/vim/vim72/syntax/slpconf.vim +#usr/share/vim/vim72/syntax/slpreg.vim +#usr/share/vim/vim72/syntax/slpspi.vim +#usr/share/vim/vim72/syntax/slrnrc.vim +#usr/share/vim/vim72/syntax/slrnsc.vim +#usr/share/vim/vim72/syntax/sm.vim +#usr/share/vim/vim72/syntax/smarty.vim +#usr/share/vim/vim72/syntax/smcl.vim +#usr/share/vim/vim72/syntax/smil.vim +#usr/share/vim/vim72/syntax/smith.vim +#usr/share/vim/vim72/syntax/sml.vim +#usr/share/vim/vim72/syntax/snnsnet.vim +#usr/share/vim/vim72/syntax/snnspat.vim +#usr/share/vim/vim72/syntax/snnsres.vim +#usr/share/vim/vim72/syntax/snobol4.vim +#usr/share/vim/vim72/syntax/spec.vim +#usr/share/vim/vim72/syntax/specman.vim +#usr/share/vim/vim72/syntax/spice.vim +#usr/share/vim/vim72/syntax/splint.vim +#usr/share/vim/vim72/syntax/spup.vim +#usr/share/vim/vim72/syntax/spyce.vim +#usr/share/vim/vim72/syntax/sql.vim +#usr/share/vim/vim72/syntax/sqlanywhere.vim +#usr/share/vim/vim72/syntax/sqlforms.vim +#usr/share/vim/vim72/syntax/sqlinformix.vim +#usr/share/vim/vim72/syntax/sqlj.vim +#usr/share/vim/vim72/syntax/sqloracle.vim +#usr/share/vim/vim72/syntax/sqr.vim +#usr/share/vim/vim72/syntax/squid.vim +#usr/share/vim/vim72/syntax/sshconfig.vim +#usr/share/vim/vim72/syntax/sshdconfig.vim +#usr/share/vim/vim72/syntax/st.vim +#usr/share/vim/vim72/syntax/stata.vim +#usr/share/vim/vim72/syntax/stp.vim +#usr/share/vim/vim72/syntax/strace.vim +#usr/share/vim/vim72/syntax/sudoers.vim +#usr/share/vim/vim72/syntax/svn.vim +#usr/share/vim/vim72/syntax/syncolor.vim +#usr/share/vim/vim72/syntax/synload.vim +#usr/share/vim/vim72/syntax/syntax.vim +#usr/share/vim/vim72/syntax/sysctl.vim +#usr/share/vim/vim72/syntax/tads.vim +#usr/share/vim/vim72/syntax/tags.vim +#usr/share/vim/vim72/syntax/tak.vim +#usr/share/vim/vim72/syntax/takcmp.vim +#usr/share/vim/vim72/syntax/takout.vim +#usr/share/vim/vim72/syntax/tar.vim +#usr/share/vim/vim72/syntax/tasm.vim +#usr/share/vim/vim72/syntax/tcl.vim +#usr/share/vim/vim72/syntax/tcsh.vim +#usr/share/vim/vim72/syntax/terminfo.vim +#usr/share/vim/vim72/syntax/tex.vim +#usr/share/vim/vim72/syntax/texinfo.vim +#usr/share/vim/vim72/syntax/texmf.vim +#usr/share/vim/vim72/syntax/tf.vim +#usr/share/vim/vim72/syntax/tidy.vim +#usr/share/vim/vim72/syntax/tilde.vim +#usr/share/vim/vim72/syntax/tli.vim +#usr/share/vim/vim72/syntax/tpp.vim +#usr/share/vim/vim72/syntax/trasys.vim +#usr/share/vim/vim72/syntax/trustees.vim +#usr/share/vim/vim72/syntax/tsalt.vim +#usr/share/vim/vim72/syntax/tsscl.vim +#usr/share/vim/vim72/syntax/tssgm.vim +#usr/share/vim/vim72/syntax/tssop.vim +#usr/share/vim/vim72/syntax/uc.vim +#usr/share/vim/vim72/syntax/udevconf.vim +#usr/share/vim/vim72/syntax/udevperm.vim +#usr/share/vim/vim72/syntax/udevrules.vim +#usr/share/vim/vim72/syntax/uil.vim +#usr/share/vim/vim72/syntax/updatedb.vim +#usr/share/vim/vim72/syntax/valgrind.vim +#usr/share/vim/vim72/syntax/vb.vim +#usr/share/vim/vim72/syntax/vera.vim +#usr/share/vim/vim72/syntax/verilog.vim +#usr/share/vim/vim72/syntax/verilogams.vim +#usr/share/vim/vim72/syntax/vgrindefs.vim +#usr/share/vim/vim72/syntax/vhdl.vim +#usr/share/vim/vim72/syntax/vim.vim +#usr/share/vim/vim72/syntax/viminfo.vim +#usr/share/vim/vim72/syntax/virata.vim +#usr/share/vim/vim72/syntax/vmasm.vim +#usr/share/vim/vim72/syntax/voscm.vim +#usr/share/vim/vim72/syntax/vrml.vim +#usr/share/vim/vim72/syntax/vsejcl.vim +#usr/share/vim/vim72/syntax/wdiff.vim +#usr/share/vim/vim72/syntax/web.vim +#usr/share/vim/vim72/syntax/webmacro.vim +#usr/share/vim/vim72/syntax/wget.vim +#usr/share/vim/vim72/syntax/whitespace.vim +#usr/share/vim/vim72/syntax/winbatch.vim +#usr/share/vim/vim72/syntax/wml.vim +#usr/share/vim/vim72/syntax/wsh.vim +#usr/share/vim/vim72/syntax/wsml.vim +#usr/share/vim/vim72/syntax/wvdial.vim +#usr/share/vim/vim72/syntax/xbl.vim +#usr/share/vim/vim72/syntax/xdefaults.vim +#usr/share/vim/vim72/syntax/xf86conf.vim +#usr/share/vim/vim72/syntax/xhtml.vim +#usr/share/vim/vim72/syntax/xinetd.vim +#usr/share/vim/vim72/syntax/xkb.vim +#usr/share/vim/vim72/syntax/xmath.vim +#usr/share/vim/vim72/syntax/xml.vim +#usr/share/vim/vim72/syntax/xmodmap.vim +#usr/share/vim/vim72/syntax/xpm.vim +#usr/share/vim/vim72/syntax/xpm2.vim +#usr/share/vim/vim72/syntax/xquery.vim +#usr/share/vim/vim72/syntax/xs.vim +#usr/share/vim/vim72/syntax/xsd.vim +#usr/share/vim/vim72/syntax/xslt.vim +#usr/share/vim/vim72/syntax/xxd.vim +#usr/share/vim/vim72/syntax/yacc.vim +#usr/share/vim/vim72/syntax/yaml.vim +#usr/share/vim/vim72/syntax/z8a.vim +#usr/share/vim/vim72/syntax/zsh.vim +#usr/share/vim/vim72/tools +#usr/share/vim/vim72/tools/README.txt +#usr/share/vim/vim72/tools/blink.c +#usr/share/vim/vim72/tools/ccfilter.1 +#usr/share/vim/vim72/tools/ccfilter.c +#usr/share/vim/vim72/tools/ccfilter_README.txt +#usr/share/vim/vim72/tools/efm_filter.pl +#usr/share/vim/vim72/tools/efm_filter.txt +#usr/share/vim/vim72/tools/efm_perl.pl +#usr/share/vim/vim72/tools/mve.awk +#usr/share/vim/vim72/tools/mve.txt +#usr/share/vim/vim72/tools/pltags.pl +#usr/share/vim/vim72/tools/ref +#usr/share/vim/vim72/tools/shtags.1 +#usr/share/vim/vim72/tools/shtags.pl +#usr/share/vim/vim72/tools/vim132 +#usr/share/vim/vim72/tools/vim_vs_net.cmd +#usr/share/vim/vim72/tools/vimm +#usr/share/vim/vim72/tools/vimspell.sh +#usr/share/vim/vim72/tools/vimspell.txt +#usr/share/vim/vim72/tools/xcmdsrv_client.c +#usr/share/vim/vim72/tutor +#usr/share/vim/vim72/tutor/README.el.cp737.txt +#usr/share/vim/vim72/tutor/README.el.txt +#usr/share/vim/vim72/tutor/README.txt +#usr/share/vim/vim72/tutor/tutor +#usr/share/vim/vim72/tutor/tutor.ca +#usr/share/vim/vim72/tutor/tutor.ca.utf-8 +#usr/share/vim/vim72/tutor/tutor.cs +#usr/share/vim/vim72/tutor/tutor.cs.cp1250 +#usr/share/vim/vim72/tutor/tutor.cs.utf-8 +#usr/share/vim/vim72/tutor/tutor.de +#usr/share/vim/vim72/tutor/tutor.de.utf-8 +#usr/share/vim/vim72/tutor/tutor.el +#usr/share/vim/vim72/tutor/tutor.el.cp737 +#usr/share/vim/vim72/tutor/tutor.el.utf-8 +#usr/share/vim/vim72/tutor/tutor.eo.utf-8 +#usr/share/vim/vim72/tutor/tutor.es +#usr/share/vim/vim72/tutor/tutor.es.utf-8 +#usr/share/vim/vim72/tutor/tutor.fr +#usr/share/vim/vim72/tutor/tutor.fr.utf-8 +#usr/share/vim/vim72/tutor/tutor.hr +#usr/share/vim/vim72/tutor/tutor.hr.cp1250 +#usr/share/vim/vim72/tutor/tutor.hr.utf-8 +#usr/share/vim/vim72/tutor/tutor.hu +#usr/share/vim/vim72/tutor/tutor.hu.cp1250 +#usr/share/vim/vim72/tutor/tutor.hu.utf-8 +#usr/share/vim/vim72/tutor/tutor.it +#usr/share/vim/vim72/tutor/tutor.it.utf-8 +#usr/share/vim/vim72/tutor/tutor.ja.euc +#usr/share/vim/vim72/tutor/tutor.ja.sjis +#usr/share/vim/vim72/tutor/tutor.ja.utf-8 +#usr/share/vim/vim72/tutor/tutor.ko.euc +#usr/share/vim/vim72/tutor/tutor.ko.utf-8 +#usr/share/vim/vim72/tutor/tutor.no +#usr/share/vim/vim72/tutor/tutor.no.utf-8 +#usr/share/vim/vim72/tutor/tutor.pl +#usr/share/vim/vim72/tutor/tutor.pl.cp1250 +#usr/share/vim/vim72/tutor/tutor.pl.utf-8 +#usr/share/vim/vim72/tutor/tutor.ru +#usr/share/vim/vim72/tutor/tutor.ru.cp1251 +#usr/share/vim/vim72/tutor/tutor.ru.utf-8 +#usr/share/vim/vim72/tutor/tutor.sk +#usr/share/vim/vim72/tutor/tutor.sk.cp1250 +#usr/share/vim/vim72/tutor/tutor.sk.utf-8 +#usr/share/vim/vim72/tutor/tutor.sv +#usr/share/vim/vim72/tutor/tutor.sv.utf-8 +#usr/share/vim/vim72/tutor/tutor.tr.iso9 +#usr/share/vim/vim72/tutor/tutor.tr.utf-8 +#usr/share/vim/vim72/tutor/tutor.utf-8 +#usr/share/vim/vim72/tutor/tutor.vi.utf-8 +#usr/share/vim/vim72/tutor/tutor.vim +#usr/share/vim/vim72/tutor/tutor.zh.big5 +#usr/share/vim/vim72/tutor/tutor.zh.euc +#usr/share/vim/vim72/tutor/tutor.zh.utf-8 +#usr/share/vim/vim72/vimrc_example.vim diff --git a/lfs/vim b/lfs/vim index f865add..a018dc1 100644 --- a/lfs/vim +++ b/lfs/vim @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,12 +24,12 @@
include Config
-VER = 7.0 +VER = 7.2
THISAPP = vim-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/vim70 +DIR_APP = $(DIR_SRC)/vim72 TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4ca69757678272f718b1041c810d82d8 +$(DL_FILE)_MD5 = f0901284b338e448bfd79ccca0041254
install : $(TARGET)
@@ -70,9 +70,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.0-fixes-7.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.0-mandir-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.0-spellfile-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-fixes-4.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-mandir-1.patch cd $(DIR_APP) && echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h cd $(DIR_APP) && ./configure --prefix=/usr --enable-multibyte --disable-nls cd $(DIR_APP) && make $(MAKETUNING) diff --git a/src/patches/vim-7.0-fixes-7.patch b/src/patches/vim-7.0-fixes-7.patch deleted file mode 100644 index 026e0bc..0000000 --- a/src/patches/vim-7.0-fixes-7.patch +++ /dev/null @@ -1,1473 +0,0 @@ -Submitted By: Jim Gifford (jim at linuxfromscratch dot org) -Date: 2006-07-14 -Initial Package Version: 7.0 -Origin: Upstream -Upstream Status: Applied -Description: Contains Patch 001-004, 006-026, 028-031, and 033-039 from Upstream - 005, 027, and 032 is for the extras and Windows 32 only - -diff -Naur vim70.orig/runtime/autoload/ccomplete.vim vim70/runtime/autoload/ccomplete.vim ---- vim70.orig/runtime/autoload/ccomplete.vim 2006-05-03 07:35:56.000000000 -0700 -+++ vim70/runtime/autoload/ccomplete.vim 2006-07-14 08:51:21.000000000 -0700 -@@ -1,7 +1,7 @@ - " Vim completion script - " Language: C - " Maintainer: Bram Moolenaar Bram@vim.org --" Last Change: 2006 May 03 -+" Last Change: 2006 May 08 - - - " This function is used for the 'omnifunc' option. -@@ -458,7 +458,7 @@ - " member. - function! s:StructMembers(typename, items, all) - " Todo: What about local structures? -- let fnames = join(map(tagfiles(), 'escape(v:val, " \")')) -+ let fnames = join(map(tagfiles(), 'escape(v:val, " \#%")')) - if fnames == '' - return [] - endif -diff -Naur vim70.orig/runtime/autoload/paste.vim vim70/runtime/autoload/paste.vim ---- vim70.orig/runtime/autoload/paste.vim 2006-04-21 11:31:01.000000000 -0700 -+++ vim70/runtime/autoload/paste.vim 2006-07-14 08:51:21.000000000 -0700 -@@ -1,6 +1,6 @@ - " Vim support file to help with paste mappings and menus - " Maintainer: Bram Moolenaar Bram@vim.org --" Last Change: 2006 Apr 21 -+" Last Change: 2006 Jun 23 - - " Define the string to use for items that are present both in Edit, Popup and - " Toolbar menu. Also used in mswin.vim and macmap.vim. -@@ -12,7 +12,7 @@ - if has("virtualedit") - let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"} - let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n'] -- let paste#paste_cmd['i'] = '<Esc>' . paste#paste_cmd['n'] . 'gi' -+ let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi' - - func! paste#Paste() - let ove = &ve -diff -Naur vim70.orig/runtime/autoload/spellfile.vim vim70/runtime/autoload/spellfile.vim ---- vim70.orig/runtime/autoload/spellfile.vim 2006-02-01 04:12:24.000000000 -0800 -+++ vim70/runtime/autoload/spellfile.vim 2006-07-14 08:51:21.000000000 -0700 -@@ -1,9 +1,9 @@ - " Vim script to download a missing spell file - " Maintainer: Bram Moolenaar Bram@vim.org --" Last Change: 2006 Feb 01 -+" Last Change: 2006 May 10 - - if !exists('g:spellfile_URL') -- let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/unstable/runtime/spell' -+ let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' - endif - let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset. - -@@ -61,13 +61,13 @@ - new - setlocal bin - echo 'Downloading ' . fname . '...' -- exe 'Nread ' g:spellfile_URL . '/' . fname -+ call spellfile#Nread(fname) - if getline(2) !~ 'VIMspell' - " Didn't work, perhaps there is an ASCII one. - g/^/d - let fname = a:lang . '.ascii.spl' - echo 'Could not find it, trying ' . fname . '...' -- exe 'Nread ' g:spellfile_URL . '/' . fname -+ call spellfile#Nread(fname) - if getline(2) !~ 'VIMspell' - echo 'Sorry, downloading failed' - bwipe! -@@ -95,7 +95,7 @@ - g/^/d - let fname = substitute(fname, '.spl$', '.sug', '') - echo 'Downloading ' . fname . '...' -- exe 'Nread ' g:spellfile_URL . '/' . fname -+ call spellfile#Nread(fname) - if getline(2) !~ 'VIMsug' - echo 'Sorry, downloading failed' - else -@@ -109,3 +109,10 @@ - bwipe - endif - endfunc -+ -+" Read "fname" from the ftp server. -+function! spellfile#Nread(fname) -+ let machine = substitute(g:spellfile_URL, 'ftp://([^/]*).*', '\1', '') -+ let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/(.*)', '\1', '') -+ exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' -+endfunc -diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim ---- vim70.orig/runtime/plugin/matchparen.vim 2006-04-27 06:31:26.000000000 -0700 -+++ vim70/runtime/plugin/matchparen.vim 2006-07-14 08:51:21.000000000 -0700 -@@ -1,6 +1,6 @@ - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar Bram@vim.org --" Last Change: 2006 Apr 27 -+" Last Change: 2006 May 11 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) -@@ -90,7 +90,7 @@ - " Find the match. When it was just before the cursor move it there for a - " moment. - if before > 0 -- let save_cursor = getpos('.') -+ let save_cursor = winsaveview() - call cursor(c_lnum, c_col - before) - endif - -@@ -102,7 +102,7 @@ - let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) - - if before > 0 -- call setpos('.', save_cursor) -+ call winrestview(save_cursor) - endif - - " If a match is found setup match highlighting. -diff -Naur vim70.orig/src/edit.c vim70/src/edit.c ---- vim70.orig/src/edit.c 2006-05-07 04:48:51.000000000 -0700 -+++ vim70/src/edit.c 2006-07-14 08:51:21.000000000 -0700 -@@ -719,9 +719,14 @@ - #ifdef FEAT_INS_EXPAND - /* - * Special handling of keys while the popup menu is visible or wanted -- * and the cursor is still in the completed word. -+ * and the cursor is still in the completed word. Only when there is -+ * a match, skip this when no matches were found. - */ -- if (compl_started && pum_wanted() && curwin->w_cursor.col >= compl_col) -+ if (compl_started -+ && pum_wanted() -+ && curwin->w_cursor.col >= compl_col -+ && (compl_shown_match == NULL -+ || compl_shown_match != compl_shown_match->cp_next)) - { - /* BS: Delete one character from "compl_leader". */ - if ((c == K_BS || c == Ctrl_H) -@@ -751,7 +756,7 @@ - continue; - } - -- /* Pressing CTRL-Y selects the current match. Shen -+ /* Pressing CTRL-Y selects the current match. When - * compl_enter_selects is set the Enter key does the same. */ - if (c == Ctrl_Y || (compl_enter_selects - && (c == CAR || c == K_KENTER || c == NL))) -@@ -3015,9 +3020,6 @@ - if ((int)(p - line) - (int)compl_col <= 0) - return K_BS; - -- /* For redo we need to repeat this backspace. */ -- AppendCharToRedobuff(K_BS); -- - /* Deleted more than what was used to find matches or didn't finish - * finding all matches: need to look for matches all over again. */ - if (curwin->w_cursor.col <= compl_col + compl_length -@@ -3046,7 +3048,6 @@ - ins_compl_delete(); - ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); - compl_used_match = FALSE; -- compl_enter_selects = FALSE; - - if (compl_started) - ins_compl_set_original_text(compl_leader); -@@ -3076,6 +3077,7 @@ - compl_restarting = FALSE; - } - -+#if 0 /* disabled, made CTRL-L, BS and typing char jump to original text. */ - if (!compl_used_match) - { - /* Go to the original text, since none of the matches is inserted. */ -@@ -3087,6 +3089,8 @@ - compl_curr_match = compl_shown_match; - compl_shows_dir = compl_direction; - } -+#endif -+ compl_enter_selects = !compl_used_match; - - /* Show the popup menu with a different set of matches. */ - ins_compl_show_pum(); -@@ -3115,10 +3119,6 @@ - #endif - ins_char(c); - -- /* For redo we need to count this character so that the number of -- * backspaces is correct. */ -- AppendCharToRedobuff(c); -- - /* If we didn't complete finding matches we must search again. */ - if (compl_was_interrupted) - ins_compl_restart(); -@@ -3175,10 +3175,32 @@ - char_u *p; - int len = curwin->w_cursor.col - compl_col; - int c; -+ compl_T *cp; - - p = compl_shown_match->cp_str; - if ((int)STRLEN(p) <= len) /* the match is too short */ -- return; -+ { -+ /* When still at the original match use the first entry that matches -+ * the leader. */ -+ if (compl_shown_match->cp_flags & ORIGINAL_TEXT) -+ { -+ p = NULL; -+ for (cp = compl_shown_match->cp_next; cp != NULL -+ && cp != compl_first_match; cp = cp->cp_next) -+ { -+ if (ins_compl_equal(cp, compl_leader, -+ (int)STRLEN(compl_leader))) -+ { -+ p = cp->cp_str; -+ break; -+ } -+ } -+ if (p == NULL || (int)STRLEN(p) <= len) -+ return; -+ } -+ else -+ return; -+ } - p += len; - #ifdef FEAT_MBYTE - c = mb_ptr2char(p); -@@ -3369,16 +3391,21 @@ - ptr = compl_leader; - else - ptr = compl_orig_text; -- p = compl_orig_text; -- for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; ++temp) -- ; -+ if (compl_orig_text != NULL) -+ { -+ p = compl_orig_text; -+ for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; -+ ++temp) -+ ; - #ifdef FEAT_MBYTE -- if (temp > 0) -- temp -= (*mb_head_off)(compl_orig_text, p + temp); -+ if (temp > 0) -+ temp -= (*mb_head_off)(compl_orig_text, p + temp); - #endif -- for (p += temp; *p != NUL; mb_ptr_adv(p)) -- AppendCharToRedobuff(K_BS); -- AppendToRedobuffLit(ptr + temp, -1); -+ for (p += temp; *p != NUL; mb_ptr_adv(p)) -+ AppendCharToRedobuff(K_BS); -+ } -+ if (ptr != NULL) -+ AppendToRedobuffLit(ptr + temp, -1); - } - - #ifdef FEAT_CINDENT -@@ -4100,6 +4127,21 @@ - && compl_shown_match->cp_next != NULL - && compl_shown_match->cp_next != compl_first_match) - compl_shown_match = compl_shown_match->cp_next; -+ -+ /* If we didn't find it searching forward, and compl_shows_dir is -+ * backward, find the last match. */ -+ if (compl_shows_dir == BACKWARD -+ && !ins_compl_equal(compl_shown_match, -+ compl_leader, (int)STRLEN(compl_leader)) -+ && (compl_shown_match->cp_next == NULL -+ || compl_shown_match->cp_next == compl_first_match)) -+ { -+ while (!ins_compl_equal(compl_shown_match, -+ compl_leader, (int)STRLEN(compl_leader)) -+ && compl_shown_match->cp_prev != NULL -+ && compl_shown_match->cp_prev != compl_first_match) -+ compl_shown_match = compl_shown_match->cp_prev; -+ } - } - - if (allow_get_expansion && insert_match -@@ -4124,8 +4166,6 @@ - { - if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL) - { -- if (compl_pending != 0) -- --compl_pending; - compl_shown_match = compl_shown_match->cp_next; - found_end = (compl_first_match != NULL - && (compl_shown_match->cp_next == compl_first_match -@@ -4134,14 +4174,24 @@ - else if (compl_shows_dir == BACKWARD - && compl_shown_match->cp_prev != NULL) - { -- if (compl_pending != 0) -- ++compl_pending; - found_end = (compl_shown_match == compl_first_match); - compl_shown_match = compl_shown_match->cp_prev; - found_end |= (compl_shown_match == compl_first_match); - } - else - { -+ if (!allow_get_expansion) -+ { -+ if (advance) -+ { -+ if (compl_shows_dir == BACKWARD) -+ compl_pending -= todo + 1; -+ else -+ compl_pending += todo + 1; -+ } -+ return -1; -+ } -+ - if (advance) - { - if (compl_shows_dir == BACKWARD) -@@ -4149,14 +4199,27 @@ - else - ++compl_pending; - } -- if (!allow_get_expansion) -- return -1; - - /* Find matches. */ - num_matches = ins_compl_get_exp(&compl_startpos); -- if (compl_pending != 0 && compl_direction == compl_shows_dir -+ -+ /* handle any pending completions */ -+ while (compl_pending != 0 && compl_direction == compl_shows_dir - && advance) -- compl_shown_match = compl_curr_match; -+ { -+ if (compl_pending > 0 && compl_shown_match->cp_next != NULL) -+ { -+ compl_shown_match = compl_shown_match->cp_next; -+ --compl_pending; -+ } -+ if (compl_pending < 0 && compl_shown_match->cp_prev != NULL) -+ { -+ compl_shown_match = compl_shown_match->cp_prev; -+ ++compl_pending; -+ } -+ else -+ break; -+ } - found_end = FALSE; - } - if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 -@@ -4265,9 +4328,9 @@ - return; - count = 0; - -- ++no_mapping; -+ /* Check for a typed key. Do use mappings, otherwise vim_is_ctrl_x_key() -+ * can't do its work correctly. */ - c = vpeekc_any(); -- --no_mapping; - if (c != NUL) - { - if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R) -@@ -4277,12 +4340,27 @@ - (void)ins_compl_next(FALSE, ins_compl_key2count(c), - c != K_UP && c != K_DOWN); - } -- else if (c != Ctrl_R) -- compl_interrupted = TRUE; -+ else -+ { -+ /* Need to get the character to have KeyTyped set. We'll put it -+ * back with vungetc() below. */ -+ c = safe_vgetc(); -+ -+ /* Don't interrupt completion when the character wasn't typed, -+ * e.g., when doing @q to replay keys. */ -+ if (c != Ctrl_R && KeyTyped) -+ compl_interrupted = TRUE; -+ -+ vungetc(c); -+ } - } - if (compl_pending != 0 && !got_int) -- (void)ins_compl_next(FALSE, compl_pending > 0 -- ? compl_pending : -compl_pending, TRUE); -+ { -+ int todo = compl_pending > 0 ? compl_pending : -compl_pending; -+ -+ compl_pending = 0; -+ (void)ins_compl_next(FALSE, todo, TRUE); -+ } - } - - /* -@@ -4611,10 +4689,18 @@ - (int)STRLEN(compl_pattern), curs_col); - if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL - || compl_xp.xp_context == EXPAND_NOTHING) -- return FAIL; -- startcol = (int)(compl_xp.xp_pattern - compl_pattern); -- compl_col = startcol; -- compl_length = curs_col - startcol; -+ { -+ compl_col = curs_col; -+ compl_length = 0; -+ vim_free(compl_pattern); -+ compl_pattern = NULL; -+ } -+ else -+ { -+ startcol = (int)(compl_xp.xp_pattern - compl_pattern); -+ compl_col = startcol; -+ compl_length = curs_col - startcol; -+ } - } - else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) - { -@@ -4668,11 +4754,17 @@ - else - compl_col = spell_word_start(startcol); - if (compl_col >= (colnr_T)startcol) -- return FAIL; -- spell_expand_check_cap(compl_col); -+ { -+ compl_length = 0; -+ compl_col = curs_col; -+ } -+ else -+ { -+ spell_expand_check_cap(compl_col); -+ compl_length = (int)curs_col - compl_col; -+ } - /* Need to obtain "line" again, it may have become invalid. */ - line = ml_get(curwin->w_cursor.lnum); -- compl_length = (int)curs_col - compl_col; - compl_pattern = vim_strnsave(line + compl_col, compl_length); - if (compl_pattern == NULL) - #endif -diff -Naur vim70.orig/src/eval.c vim70/src/eval.c ---- vim70.orig/src/eval.c 2006-05-05 10:15:26.000000000 -0700 -+++ vim70/src/eval.c 2006-07-14 10:51:54.000000000 -0700 -@@ -8252,6 +8252,12 @@ - EMSG(_("E785: complete() can only be used in Insert mode")); - return; - } -+ -+ /* Check for undo allowed here, because if something was already inserted -+ * the line was already saved for undo and this check isn't done. */ -+ if (!undo_allowed()) -+ return; -+ - if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL) - { - EMSG(_(e_invarg)); -@@ -9792,6 +9798,9 @@ - varnumber_T n; - int error = FALSE; - -+ /* Position the cursor. Needed after a message that ends in a space. */ -+ windgoto(msg_row, msg_col); -+ - ++no_mapping; - ++allow_keys; - if (argvars[0].v_type == VAR_UNKNOWN) -@@ -11312,14 +11321,19 @@ - - static int inputsecret_flag = 0; - -+static void get_user_input __ARGS((typval_T *argvars, typval_T *rettv, int inputdialog)); -+ - /* -- * "input()" function -- * Also handles inputsecret() when inputsecret is set. -+ * This function is used by f_input() and f_inputdialog() functions. The third -+ * argument to f_input() specifies the type of completion to use at the -+ * prompt. The third argument to f_inputdialog() specifies the value to return -+ * when the user cancels the prompt. - */ - static void --f_input(argvars, rettv) -+get_user_input(argvars, rettv, inputdialog) - typval_T *argvars; - typval_T *rettv; -+ int inputdialog; - { - char_u *prompt = get_tv_string_chk(&argvars[0]); - char_u *p = NULL; -@@ -11369,10 +11383,10 @@ - if (defstr != NULL) - stuffReadbuffSpec(defstr); - -- if (argvars[2].v_type != VAR_UNKNOWN) -+ if (!inputdialog && argvars[2].v_type != VAR_UNKNOWN) - { - char_u *xp_name; -- int xp_namelen; -+ int xp_namelen; - long argt; - - rettv->vval.v_string = NULL; -@@ -11404,6 +11418,18 @@ - } - - /* -+ * "input()" function -+ * Also handles inputsecret() when inputsecret is set. -+ */ -+ static void -+f_input(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+{ -+ get_user_input(argvars, rettv, FALSE); -+} -+ -+/* - * "inputdialog()" function - */ - static void -@@ -11443,7 +11469,7 @@ - } - else - #endif -- f_input(argvars, rettv); -+ get_user_input(argvars, rettv, TRUE); - } - - /* -@@ -13250,7 +13276,7 @@ - if (argvars[2].v_type != VAR_UNKNOWN) - EMSG2(_(e_toomanyarg), "remove()"); - else if ((d = argvars[0].vval.v_dict) != NULL -- && !tv_check_lock(d->dv_lock, (char_u *)"remove()")) -+ && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument")) - { - key = get_tv_string_chk(&argvars[1]); - if (key != NULL) -@@ -13270,7 +13296,7 @@ - else if (argvars[0].v_type != VAR_LIST) - EMSG2(_(e_listdictarg), "remove()"); - else if ((l = argvars[0].vval.v_list) != NULL -- && !tv_check_lock(l->lv_lock, (char_u *)"remove()")) -+ && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument")) - { - int error = FALSE; - -@@ -17759,6 +17785,13 @@ - } - else /* add a new variable */ - { -+ /* Can't add "v:" variable. */ -+ if (ht == &vimvarht) -+ { -+ EMSG2(_(e_illvar), name); -+ return; -+ } -+ - /* Make sure the variable name is valid. */ - for (p = varname; *p != NUL; ++p) - if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)) -@@ -18963,7 +18996,8 @@ - else if (lead > 0) - { - lead = 3; -- if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp)) -+ if ((lv.ll_exp_name != NULL && eval_fname_sid(lv.ll_exp_name)) -+ || eval_fname_sid(*pp)) - { - /* It's "s:" or "<SID>" */ - if (current_SID <= 0) -@@ -19685,6 +19719,7 @@ - v->di_tv.vval.v_list = &fc.l_varlist; - vim_memset(&fc.l_varlist, 0, sizeof(list_T)); - fc.l_varlist.lv_refcount = 99999; -+ fc.l_varlist.lv_lock = VAR_FIXED; - - /* - * Set a:firstline to "firstline" and a:lastline to "lastline". -diff -Naur vim70.orig/src/ex_cmds.h vim70/src/ex_cmds.h ---- vim70.orig/src/ex_cmds.h 2006-04-07 02:44:46.000000000 -0700 -+++ vim70/src/ex_cmds.h 2006-07-14 08:51:21.000000000 -0700 -@@ -262,7 +262,7 @@ - EX(CMD_comclear, "comclear", ex_comclear, - TRLBAR|CMDWIN), - EX(CMD_compiler, "compiler", ex_compiler, -- BANG|TRLBAR|WORD1), -+ BANG|TRLBAR|WORD1|CMDWIN), - EX(CMD_continue, "continue", ex_continue, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_confirm, "confirm", ex_wrongmodifier, -diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c ---- vim70.orig/src/ex_docmd.c 2006-05-05 09:33:19.000000000 -0700 -+++ vim70/src/ex_docmd.c 2006-07-14 08:51:21.000000000 -0700 -@@ -833,7 +833,7 @@ - * If requested, store and reset the global values controlling the - * exception handling (used when debugging). - */ -- else if (flags & DOCMD_EXCRESET) -+ if (flags & DOCMD_EXCRESET) - save_dbg_stuff(&debug_saved); - - initial_trylevel = trylevel; -diff -Naur vim70.orig/src/gui_at_fs.c vim70/src/gui_at_fs.c ---- vim70.orig/src/gui_at_fs.c 2005-07-09 04:30:17.000000000 -0700 -+++ vim70/src/gui_at_fs.c 2006-07-14 08:51:21.000000000 -0700 -@@ -1861,27 +1861,27 @@ - XtPointer pnew; - { - SFDir *dir; -- int nw; -+ int nw = (int)(long)pnew; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -- if ((int)(long)pnew < 0) -+ if (nw < 0) - { -- if ((int)(long)pnew > -SFvScrollHeight) -- (int)(long)pnew = -1; -+ if (nw > -SFvScrollHeight) -+ nw = -1; - else -- (int)(long)pnew = -SFlistSize; -+ nw = -SFlistSize; - } -- else if ((int)(long)pnew > 0) -+ else if (nw > 0) - { -- if ((int)(long)pnew < SFvScrollHeight) -- (int)(long)pnew = 1; -+ if (nw < SFvScrollHeight) -+ nw = 1; - else -- (int)(long)pnew = SFlistSize; -+ nw = SFlistSize; - } - #endif -- nw = dir->vOrigin + (int)(long)pnew; -+ nw += dir->vOrigin; - - if (nw > dir->nEntries - SFlistSize) - nw = dir->nEntries - SFlistSize; -@@ -1941,27 +1941,27 @@ - XtPointer pnew; - { - SFDir *dir; -- int nw; -+ int nw = (int)(long)pnew; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -- if ((int)(long)pnew < 0) -+ if (nw < 0) - { -- if ((int)(long)pnew > -SFhScrollWidth) -- (int)(long)pnew = -1; -+ if (nw > -SFhScrollWidth) -+ nw = -1; - else -- (int)(long)pnew = -SFcharsPerEntry; -+ nw = -SFcharsPerEntry; - } -- else if ((int)(long)pnew > 0) -+ else if (nw > 0) - { -- if ((int)(long)pnew < SFhScrollWidth) -- (int)(long)pnew = 1; -+ if (nw < SFhScrollWidth) -+ nw = 1; - else -- (int)(long)pnew = SFcharsPerEntry; -+ nw = SFcharsPerEntry; - } - #endif -- nw = dir->hOrigin + (int)(long)pnew; -+ nw += dir->hOrigin; - - if (nw > dir->nChars - SFcharsPerEntry) - nw = dir->nChars - SFcharsPerEntry; -@@ -2038,26 +2038,26 @@ - XtPointer client_data; - XtPointer pnew; - { -- int nw; -+ int nw = (int)(long)pnew; - float f; - - #ifdef FEAT_GUI_NEXTAW -- if ((int)(long)pnew < 0) -+ if (nw < 0) - { -- if ((int)(long)pnew > -SFpathScrollWidth) -- (int)(long)pnew = -1; -+ if (nw > -SFpathScrollWidth) -+ nw = -1; - else -- (int)(long)pnew = -3; -+ nw = -3; - } -- else if ((int)(long)pnew > 0) -+ else if (nw > 0) - { -- if ((int)(long)pnew < SFpathScrollWidth) -- (int)(long)pnew = 1; -+ if (nw < SFpathScrollWidth) -+ nw = 1; - else -- (int)(long)pnew = 3; -+ nw = 3; - } - #endif -- nw = SFdirPtr + (int)(long)pnew; -+ nw += SFdirPtr; - - if (nw > SFdirEnd - 3) - nw = SFdirEnd - 3; -diff -Naur vim70.orig/src/gui.c vim70/src/gui.c ---- vim70.orig/src/gui.c 2006-05-03 04:00:59.000000000 -0700 -+++ vim70/src/gui.c 2006-07-14 08:51:21.000000000 -0700 -@@ -4515,7 +4515,7 @@ - int y; - { - win_T *wp; -- char_u st[6]; -+ char_u st[8]; - - /* Ignore this while still starting up. */ - if (!gui.in_use || gui.starting) -@@ -4603,11 +4603,11 @@ - /* Don't move the mouse when it's left or right of the Vim window */ - if (x < 0 || x > Columns * gui.char_width) - return; -+ if (y >= 0 - # ifdef FEAT_WINDOWS -- if (Y_2_ROW(y) >= tabline_height()) --# else -- if (y >= 0) -+ && Y_2_ROW(y) >= tabline_height() - # endif -+ ) - wp = xy2win(x, y); - if (wp != curwin && wp != NULL) /* If in other than current window */ - { -diff -Naur vim70.orig/src/gui_xmebw.c vim70/src/gui_xmebw.c ---- vim70.orig/src/gui_xmebw.c 2006-04-30 08:32:32.000000000 -0700 -+++ vim70/src/gui_xmebw.c 2006-07-14 08:51:21.000000000 -0700 -@@ -47,13 +47,13 @@ - #include "gui_xmebwp.h" - - /* Provide some missing wrappers, which are missed from the LessTif -- * implementation. -+ * implementation. Also missing in Motif 1.2 and earlier. - * - * We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the - * pixmap will not appear in it's caches properly. We cache the interresting - * values in XmEnhancedButtonPart instead ourself. - */ --#ifdef LESSTIF_VERSION -+#if defined(LESSTIF_VERSION) || (XmVersion <= 1002) - # ifndef Lab_IsMenupane - # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ - Lab_MenuType(w) == (int)XmMENU_PULLDOWN) -@@ -480,7 +480,7 @@ - || (eb->core.height <= 2 * eb->primitive.highlight_thickness)) - return; - --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - { - XmDisplay dpy; - -@@ -641,7 +641,7 @@ - GC tmp_gc = NULL; - Boolean replaceGC = False; - Boolean deadjusted = False; --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -@@ -726,7 +726,7 @@ - if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up) - && _XmGetInDragMode((Widget) eb)) - { --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -@@ -810,7 +810,7 @@ - - if (Lab_IsMenupane(eb)) - { --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -@@ -1150,7 +1150,7 @@ - Redisplay(Widget w, XEvent *event, Region region) - { - XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) w; --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy; - XtEnum default_button_emphasis; - #endif -@@ -1162,7 +1162,7 @@ - if (!XtIsRealized((Widget)eb)) - return; - --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - default_button_emphasis = dpy->display.default_button_emphasis; - #endif -@@ -1241,7 +1241,7 @@ - { - int adjust = 0; - --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* - * NOTE: PushButton has two types of shadows: primitive-shadow and - * default-button-shadow. If pushbutton is in a menu only primitive -@@ -1289,7 +1289,7 @@ - adjust, adjust, rectwidth, rectheight, borderwidth); - } - --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - switch (default_button_emphasis) - { - case XmINTERNAL_HIGHLIGHT: -@@ -1365,7 +1365,7 @@ - default_button_shadow_thickness = - eb->pushbutton.default_button_shadow_thickness; - --#ifndef LESSTIF_VERSION -+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* - * Compute location of bounding box to contain the - * defaultButtonShadow. -diff -Naur vim70.orig/src/if_ruby.c vim70/src/if_ruby.c ---- vim70.orig/src/if_ruby.c 2006-04-30 08:37:52.000000000 -0700 -+++ vim70/src/if_ruby.c 2006-07-14 08:51:21.000000000 -0700 -@@ -643,11 +643,23 @@ - - static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str) - { -- buf_T *savebuf = curbuf; -- char *line = STR2CSTR(str); -+ char *line = STR2CSTR(str); -+#ifdef FEAT_AUTOCMD -+ aco_save_T aco; -+#else -+ buf_T *save_curbuf = curbuf; -+#endif - -- if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) { -+ if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) -+ { -+#ifdef FEAT_AUTOCMD -+ /* set curwin/curbuf for "buf" and save some things */ -+ aucmd_prepbuf(&aco, buf); -+#else - curbuf = buf; -+ curwin->w_buffer = buf; -+#endif -+ - if (u_savesub(n) == OK) { - ml_replace(n, (char_u *)line, TRUE); - changed(); -@@ -655,10 +667,19 @@ - syn_changed(n); /* recompute syntax hl. for this line */ - #endif - } -- curbuf = savebuf; -+ -+#ifdef FEAT_AUTOCMD -+ /* restore curwin/curbuf and a few other things */ -+ aucmd_restbuf(&aco); -+ /* Careful: autocommands may have made "buf" invalid! */ -+#else -+ curwin->w_buffer = save_curbuf; -+ curbuf = save_curbuf; -+#endif - update_curbuf(NOT_VALID); - } -- else { -+ else -+ { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - return Qnil; /* For stop warning */ - } -@@ -676,12 +697,24 @@ - - static VALUE buffer_delete(VALUE self, VALUE num) - { -- buf_T *buf = get_buf(self); -- buf_T *savebuf = curbuf; -- long n = NUM2LONG(num); -+ buf_T *buf = get_buf(self); -+ long n = NUM2LONG(num); -+#ifdef FEAT_AUTOCMD -+ aco_save_T aco; -+#else -+ buf_T *save_curbuf = curbuf; -+#endif - -- if (n > 0 && n <= buf->b_ml.ml_line_count) { -+ if (n > 0 && n <= buf->b_ml.ml_line_count) -+ { -+#ifdef FEAT_AUTOCMD -+ /* set curwin/curbuf for "buf" and save some things */ -+ aucmd_prepbuf(&aco, buf); -+#else - curbuf = buf; -+ curwin->w_buffer = buf; -+#endif -+ - if (u_savedel(n, 1) == OK) { - ml_delete(n, 0); - -@@ -691,10 +724,19 @@ - - changed(); - } -- curbuf = savebuf; -+ -+#ifdef FEAT_AUTOCMD -+ /* restore curwin/curbuf and a few other things */ -+ aucmd_restbuf(&aco); -+ /* Careful: autocommands may have made "buf" invalid! */ -+#else -+ curwin->w_buffer = save_curbuf; -+ curbuf = save_curbuf; -+#endif - update_curbuf(NOT_VALID); - } -- else { -+ else -+ { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - } - return Qnil; -@@ -702,13 +744,25 @@ - - static VALUE buffer_append(VALUE self, VALUE num, VALUE str) - { -- buf_T *buf = get_buf(self); -- buf_T *savebuf = curbuf; -- char *line = STR2CSTR(str); -- long n = NUM2LONG(num); -+ buf_T *buf = get_buf(self); -+ char *line = STR2CSTR(str); -+ long n = NUM2LONG(num); -+#ifdef FEAT_AUTOCMD -+ aco_save_T aco; -+#else -+ buf_T *save_curbuf = curbuf; -+#endif - -- if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) { -+ if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) -+ { -+#ifdef FEAT_AUTOCMD -+ /* set curwin/curbuf for "buf" and save some things */ -+ aucmd_prepbuf(&aco, buf); -+#else - curbuf = buf; -+ curwin->w_buffer = buf; -+#endif -+ - if (u_inssub(n + 1) == OK) { - ml_append(n, (char_u *) line, (colnr_T) 0, FALSE); - -@@ -718,7 +772,15 @@ - - changed(); - } -- curbuf = savebuf; -+ -+#ifdef FEAT_AUTOCMD -+ /* restore curwin/curbuf and a few other things */ -+ aucmd_restbuf(&aco); -+ /* Careful: autocommands may have made "buf" invalid! */ -+#else -+ curwin->w_buffer = save_curbuf; -+ curbuf = save_curbuf; -+#endif - update_curbuf(NOT_VALID); - } - else { -diff -Naur vim70.orig/src/main.c vim70/src/main.c ---- vim70.orig/src/main.c 2006-05-03 10:36:44.000000000 -0700 -+++ vim70/src/main.c 2006-07-14 08:51:21.000000000 -0700 -@@ -564,7 +564,11 @@ - */ - if (p_lpl) - { -+# ifdef VMS /* Somehow VMS doesn't handle the "**". */ -+ source_runtime((char_u *)"plugin/*.vim", TRUE); -+# else - source_runtime((char_u *)"plugin/**/*.vim", TRUE); -+# endif - TIME_MSG("loading plugins"); - } - #endif -diff -Naur vim70.orig/src/Makefile vim70/src/Makefile ---- vim70.orig/src/Makefile 2006-05-07 06:25:27.000000000 -0700 -+++ vim70/src/Makefile 2006-07-14 08:51:21.000000000 -0700 -@@ -2177,6 +2177,7 @@ - cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* . - if test -d $(RSRC_DIR); then \ - cd $(SHADOWDIR); \ -+ ln -s ../infplist.xml .; \ - ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \ - fi - mkdir $(SHADOWDIR)/testdir -diff -Naur vim70.orig/src/mbyte.c vim70/src/mbyte.c ---- vim70.orig/src/mbyte.c 2006-04-30 04:51:01.000000000 -0700 -+++ vim70/src/mbyte.c 2006-07-14 08:51:21.000000000 -0700 -@@ -311,7 +311,11 @@ - - #define IDX_MACROMAN 57 - {"macroman", ENC_8BIT + ENC_MACROMAN, 0}, /* Mac OS */ --#define IDX_COUNT 58 -+#define IDX_DECMCS 58 -+ {"dec-mcs", ENC_8BIT, 0}, /* DEC MCS */ -+#define IDX_HPROMAN8 59 -+ {"hp-roman8", ENC_8BIT, 0}, /* HP Roman8 */ -+#define IDX_COUNT 60 - }; - - /* -@@ -386,6 +390,7 @@ - {"950", IDX_BIG5}, - #endif - {"mac", IDX_MACROMAN}, -+ {"mac-roman", IDX_MACROMAN}, - {NULL, 0} - }; - -diff -Naur vim70.orig/src/message.c vim70/src/message.c ---- vim70.orig/src/message.c 2006-05-06 13:07:37.000000000 -0700 -+++ vim70/src/message.c 2006-07-14 08:51:21.000000000 -0700 -@@ -4175,15 +4175,16 @@ - str_arg_l = 0; - else - { -- /* memchr on HP does not like n > 2^31 !!! */ -- char *q = memchr(str_arg, '\0', -+ /* Don't put the #if inside memchr(), it can be a -+ * macro. */ - #if SIZEOF_INT <= 2 -- precision -+ char *q = memchr(str_arg, '\0', precision); - #else -- precision <= (size_t)0x7fffffffL ? precision -- : (size_t)0x7fffffffL -+ /* memchr on HP does not like n > 2^31 !!! */ -+ char *q = memchr(str_arg, '\0', -+ precision <= (size_t)0x7fffffffL ? precision -+ : (size_t)0x7fffffffL); - #endif -- ); - str_arg_l = (q == NULL) ? precision : q - str_arg; - } - break; -diff -Naur vim70.orig/src/ops.c vim70/src/ops.c ---- vim70.orig/src/ops.c 2006-04-30 08:13:44.000000000 -0700 -+++ vim70/src/ops.c 2006-07-14 08:51:21.000000000 -0700 -@@ -2413,6 +2413,7 @@ - else - { - curwin->w_cursor = oap->end; -+ check_cursor_col(); - - /* Works just like an 'i'nsert on the next character. */ - if (!lineempty(curwin->w_cursor.lnum) -diff -Naur vim70.orig/src/option.c vim70/src/option.c ---- vim70.orig/src/option.c 2006-05-03 10:32:28.000000000 -0700 -+++ vim70/src/option.c 2006-07-14 08:51:21.000000000 -0700 -@@ -2294,7 +2294,7 @@ - {(char_u *)0L, (char_u *)0L} - #endif - }, -- {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE, -+ {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, - #ifdef FEAT_SPELL - (char_u *)&p_sps, PV_NONE, - {(char_u *)"best", (char_u *)0L} -@@ -5227,13 +5227,13 @@ - case PV_STL: return &curwin->w_p_stl_flags; - #endif - #ifdef FEAT_EVAL -+# ifdef FEAT_FOLDING - case PV_FDE: return &curwin->w_p_fde_flags; - case PV_FDT: return &curwin->w_p_fdt_flags; -+# endif - # ifdef FEAT_BEVAL - case PV_BEXPR: return &curbuf->b_p_bexpr_flags; - # endif --#endif --#if defined(FEAT_EVAL) - # if defined(FEAT_CINDENT) - case PV_INDE: return &curbuf->b_p_inde_flags; - # endif -diff -Naur vim70.orig/src/os_unix.c vim70/src/os_unix.c ---- vim70.orig/src/os_unix.c 2006-05-01 01:13:15.000000000 -0700 -+++ vim70/src/os_unix.c 2006-07-14 08:51:21.000000000 -0700 -@@ -4971,7 +4971,8 @@ - if (((*file)[*num_file] = alloc(len + 2)) != NULL) - { - STRCPY((*file)[*num_file], p); -- if (!after_pathsep((*file)[*num_file] + len)) -+ if (!after_pathsep((*file)[*num_file], -+ (*file)[*num_file] + len)) - { - (*file)[*num_file][len] = psepc; - (*file)[*num_file][len + 1] = NUL; -@@ -5757,8 +5758,13 @@ - int retval_int = 0; - int success = FALSE; - -- /* Get a handle to the DLL module. */ -+ /* -+ * Get a handle to the DLL module. -+ */ - # if defined(USE_DLOPEN) -+ /* First clear any error, it's not cleared by the dlopen() call. */ -+ (void)dlerror(); -+ - hinstLib = dlopen((char *)libname, RTLD_LAZY - # ifdef RTLD_LOCAL - | RTLD_LOCAL -diff -Naur vim70.orig/src/proto/undo.pro vim70/src/proto/undo.pro ---- vim70.orig/src/proto/undo.pro 2006-05-07 06:09:11.000000000 -0700 -+++ vim70/src/proto/undo.pro 2006-07-14 10:51:11.000000000 -0700 -@@ -4,6 +4,7 @@ - extern int u_savesub __ARGS((linenr_T lnum)); - extern int u_inssub __ARGS((linenr_T lnum)); - extern int u_savedel __ARGS((linenr_T lnum, long nlines)); -+extern int undo_allowed __ARGS((void)); - extern void u_undo __ARGS((int count)); - extern void u_redo __ARGS((int count)); - extern void undo_time __ARGS((long step, int sec, int absolute)); -diff -Naur vim70.orig/src/quickfix.c vim70/src/quickfix.c ---- vim70.orig/src/quickfix.c 2006-05-03 00:47:42.000000000 -0700 -+++ vim70/src/quickfix.c 2006-07-14 08:51:21.000000000 -0700 -@@ -602,13 +602,19 @@ - else - type = 0; - /* -- * Extract error message data from matched line -+ * Extract error message data from matched line. -+ * We check for an actual submatch, because "[" and "]" in -+ * the 'errorformat' may cause the wrong submatch to be used. - */ - if ((i = (int)fmt_ptr->addr[0]) > 0) /* %f */ - { -- int c = *regmatch.endp[i]; -+ int c; -+ -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - - /* Expand ~/file and $HOME/file to full path. */ -+ c = *regmatch.endp[i]; - *regmatch.endp[i] = NUL; - expand_env(regmatch.startp[i], namebuf, CMDBUFFSIZE); - *regmatch.endp[i] = c; -@@ -618,35 +624,63 @@ - continue; - } - if ((i = (int)fmt_ptr->addr[1]) > 0) /* %n */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - enr = (int)atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[2]) > 0) /* %l */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - lnum = atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[3]) > 0) /* %c */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - col = (int)atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[4]) > 0) /* %t */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - type = *regmatch.startp[i]; -+ } - if (fmt_ptr->flags == '+' && !multiscan) /* %+ */ - STRCPY(errmsg, IObuff); - else if ((i = (int)fmt_ptr->addr[5]) > 0) /* %m */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - len = (int)(regmatch.endp[i] - regmatch.startp[i]); - vim_strncpy(errmsg, regmatch.startp[i], len); - } - if ((i = (int)fmt_ptr->addr[6]) > 0) /* %r */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - tail = regmatch.startp[i]; -+ } - if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1); - if (*((char_u *)regmatch.startp[i]) != TAB) - use_viscol = TRUE; - } - if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */ - { -+ if (regmatch.startp[i] == NULL) -+ continue; - col = (int)atol((char *)regmatch.startp[i]); - use_viscol = TRUE; - } - if ((i = (int)fmt_ptr->addr[9]) > 0) /* %s */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - len = (int)(regmatch.endp[i] - regmatch.startp[i]); - if (len > CMDBUFFSIZE - 5) - len = CMDBUFFSIZE - 5; -diff -Naur vim70.orig/src/screen.c vim70/src/screen.c ---- vim70.orig/src/screen.c 2006-05-05 03:13:55.000000000 -0700 -+++ vim70/src/screen.c 2006-07-14 10:50:30.000000000 -0700 -@@ -2612,7 +2612,8 @@ - #ifdef FEAT_LINEBREAK - int need_showbreak = FALSE; - #endif --#if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) -+#if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) \ -+ || defined(FEAT_SYN_HL) || defined(FEAT_DIFF) - # define LINE_ATTR - int line_attr = 0; /* atrribute for the whole line */ - #endif -@@ -2626,7 +2627,7 @@ - int prev_c = 0; /* previous Arabic character */ - int prev_c1 = 0; /* first composing char for prev_c */ - #endif --#if defined(FEAT_DIFF) || defined(LINE_ATTR) -+#if defined(LINE_ATTR) - int did_line_attr = 0; - #endif - -@@ -4116,17 +4117,12 @@ - --ptr; /* put it back at the NUL */ - } - #endif --#if defined(FEAT_DIFF) || defined(LINE_ATTR) -+#if defined(LINE_ATTR) - else if (( - # ifdef FEAT_DIFF -- diff_hlf != (hlf_T)0 --# ifdef LINE_ATTR -- || --# endif -+ diff_hlf != (hlf_T)0 || - # endif --# ifdef LINE_ATTR - line_attr != 0 --# endif - ) && ( - # ifdef FEAT_RIGHTLEFT - wp->w_p_rl ? (col >= 0) : -@@ -4237,7 +4233,7 @@ - * At end of the text line or just after the last character. - */ - if (c == NUL --#if defined(FEAT_DIFF) || defined(LINE_ATTR) -+#if defined(LINE_ATTR) - || did_line_attr == 1 - #endif - ) -@@ -4258,7 +4254,7 @@ - || prevcol == (long)match_hl[0].startcol - || prevcol == (long)match_hl[1].startcol - || prevcol == (long)match_hl[2].startcol) --# if defined(FEAT_DIFF) || defined(LINE_ATTR) -+# if defined(LINE_ATTR) - && did_line_attr <= 1 - # endif - ) -@@ -7133,6 +7129,12 @@ - return; - entered = TRUE; - -+ /* -+ * Note that the window sizes are updated before reallocating the arrays, -+ * thus we must not redraw here! -+ */ -+ ++RedrawingDisabled; -+ - win_new_shellsize(); /* fit the windows in the new sized shell */ - - comp_col(); /* recompute columns for shown command and ruler */ -@@ -7367,6 +7369,7 @@ - #endif - - entered = FALSE; -+ --RedrawingDisabled; - - #ifdef FEAT_AUTOCMD - if (starting == 0) -diff -Naur vim70.orig/src/spell.c vim70/src/spell.c ---- vim70.orig/src/spell.c 2006-05-05 00:49:58.000000000 -0700 -+++ vim70/src/spell.c 2006-07-14 08:51:21.000000000 -0700 -@@ -2108,7 +2108,8 @@ - * possible. */ - STRCPY(buf, line); - if (lnum < wp->w_buffer->b_ml.ml_line_count) -- spell_cat_line(buf + STRLEN(buf), ml_get(lnum + 1), MAXWLEN); -+ spell_cat_line(buf + STRLEN(buf), -+ ml_get_buf(wp->w_buffer, lnum + 1, FALSE), MAXWLEN); - - p = buf + skip; - endp = buf + len; -diff -Naur vim70.orig/src/undo.c vim70/src/undo.c ---- vim70.orig/src/undo.c 2006-04-21 02:30:59.000000000 -0700 -+++ vim70/src/undo.c 2006-07-14 10:51:11.000000000 -0700 -@@ -84,7 +84,6 @@ - static void u_unch_branch __ARGS((u_header_T *uhp)); - static u_entry_T *u_get_headentry __ARGS((void)); - static void u_getbot __ARGS((void)); --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)); -@@ -196,7 +195,7 @@ - * Return TRUE when undo is allowed. Otherwise give an error message and - * return FALSE. - */ -- static int -+ int - undo_allowed() - { - /* Don't allow changes when 'modifiable' is off. */ -diff -Naur vim70.orig/src/version.c vim70/src/version.c ---- vim70.orig/src/version.c 2006-05-03 00:50:42.000000000 -0700 -+++ vim70/src/version.c 2006-07-14 10:51:54.000000000 -0700 -@@ -667,6 +667,78 @@ - static int included_patches[] = - { /* Add new patch number below this line */ - /**/ -+ 39, -+/**/ -+ 38, -+/**/ -+ 37, -+/**/ -+ 36, -+/**/ -+ 35, -+/**/ -+ 34, -+/**/ -+ 33, -+/**/ -+ 31, -+/**/ -+ 30, -+/**/ -+ 29, -+/**/ -+ 28, -+/**/ -+ 26, -+/**/ -+ 25, -+/**/ -+ 24, -+/**/ -+ 23, -+/**/ -+ 22, -+/**/ -+ 21, -+/**/ -+ 20, -+/**/ -+ 19, -+/**/ -+ 18, -+/**/ -+ 17, -+/**/ -+ 16, -+/**/ -+ 15, -+/**/ -+ 14, -+/**/ -+ 13, -+/**/ -+ 12, -+/**/ -+ 11, -+/**/ -+ 10, -+/**/ -+ 9, -+/**/ -+ 8, -+/**/ -+ 7, -+/**/ -+ 6, -+/**/ -+ 4, -+/**/ -+ 3, -+/**/ -+ 2, -+/**/ -+ 1, -+/**/ - 0 - }; - -diff -Naur vim70.orig/src/vim.h vim70/src/vim.h ---- vim70.orig/src/vim.h 2006-04-30 08:32:38.000000000 -0700 -+++ vim70/src/vim.h 2006-07-14 08:51:21.000000000 -0700 -@@ -585,7 +585,6 @@ - #define INSERT 0x10 /* Insert mode */ - #define LANGMAP 0x20 /* Language mapping, can be combined with - INSERT and CMDLINE */ --#define MAP_ALL_MODES 0x3f /* all mode bits used for mapping */ - - #define REPLACE_FLAG 0x40 /* Replace mode flag */ - #define REPLACE (REPLACE_FLAG + INSERT) -@@ -605,6 +604,9 @@ - #define CONFIRM 0x800 /* ":confirm" prompt */ - #define SELECTMODE 0x1000 /* Select mode, only for mappings */ - -+#define MAP_ALL_MODES (0x3f | SELECTMODE) /* all mode bits used for -+ * mapping */ -+ - /* directions */ - #define FORWARD 1 - #define BACKWARD (-1) -@@ -1983,7 +1985,7 @@ - /* values for vim_handle_signal() that are not a signal */ - #define SIGNAL_BLOCK -1 - #define SIGNAL_UNBLOCK -2 --#if !defined(UNIX) && !defined(VMS) -+#if !defined(UNIX) && !defined(VMS) && !defined(OS2) - # define vim_handle_signal(x) 0 - #endif - diff --git a/src/patches/vim-7.0-mandir-1.patch b/src/patches/vim-7.0-mandir-1.patch deleted file mode 100644 index 4038442..0000000 --- a/src/patches/vim-7.0-mandir-1.patch +++ /dev/null @@ -1,82 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2006-05-27 -Initial Package Version: 7.0 -Upstream status: LFS specific -Description: Adjusts installation of manual pages to meet Man-DB expectations. - - Additional change to explicitly install the man pages into - /usr/share/man instead of /usr/man by Ag Hatzim. - ---- vim70/src/Makefile.orig 2006-05-27 12:49:31.767959808 +0300 -+++ vim70/src/Makefile 2006-05-27 12:49:55.778309680 +0300 -@@ -867,7 +867,7 @@ - # Uncomment the next line to install Vim in "/usr/bin" - #BINDIR = /usr/bin - # Uncomment the next line to install Vim manuals in "/usr/share/man/man1" --#MANDIR = /usr/share/man -+MANDIR = /usr/share/man - # Uncomment the next line to install Vim help files in "/usr/share/vim" - #DATADIR = /usr/share - -@@ -1325,7 +1325,7 @@ - DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR) - DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) - DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR) --DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR) -+DEST_MAN_RU = $(DEST_MAN_TOP)/ru$(MAN1DIR) - DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR) - - # BASIC_SRC: files that are always used -@@ -1905,52 +1905,24 @@ - # install the language specific files for tools, if they were unpacked - install-tool-languages: - -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - - # install the language specific files, if they were unpacked - install-languages: languages $(DEST_LANG) $(DEST_KMAP) - -$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_FR) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_IT) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_PL) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_RU) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_RU_U) $(INSTALLMLARGS) - if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ - cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \ - INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \ diff --git a/src/patches/vim-7.0-spellfile-1.patch b/src/patches/vim-7.0-spellfile-1.patch deleted file mode 100644 index 8de58db..0000000 --- a/src/patches/vim-7.0-spellfile-1.patch +++ /dev/null @@ -1,29 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2006-07-25 -Initial Package Version: 7.0 -Origin: Alexander E. Patrakov -Upstream Status: Sent -Description: Allows downloading spellfiles via HTTP, -thus reverting the negative effect of ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.010 - ---- vim70/runtime/autoload/spellfile.vim.orig 2006-07-25 19:05:38.000000000 +0600 -+++ vim70/runtime/autoload/spellfile.vim 2006-07-25 19:39:32.000000000 +0600 -@@ -110,9 +110,14 @@ - endif - endfunc - --" Read "fname" from the ftp server. -+" Read "fname" from the server. - function! spellfile#Nread(fname) -- let machine = substitute(g:spellfile_URL, 'ftp://([^/]*).*', '\1', '') -- let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/(.*)', '\1', '') -- exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' -+ if strpart(g:spellfile_URL, 0, 6) == 'ftp://' -+ " Avoid the password prompt by providing the default username and password -+ let machine = substitute(g:spellfile_URL, 'ftp://([^/]*).*', '\1', '') -+ let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/(.*)', '\1', '') -+ exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' -+ else -+ exe 'Nread "' . g:spellfile_URL . '/' . a:fname . '"' -+ endif - endfunc diff --git a/src/patches/vim-7.2-fixes-4.patch b/src/patches/vim-7.2-fixes-4.patch new file mode 100644 index 0000000..d6c1bfd --- /dev/null +++ b/src/patches/vim-7.2-fixes-4.patch @@ -0,0 +1,5414 @@ +Submitted By: Matt Burgess <matthew_at_linuxfromscratch_dot_org> +Date: 2008-12-06 +Initial Package Version: 7.2 +Upstream Status: Already in upstream patch repo +Origin: Upstream +Description: This patch is upstream patch numbers 1 thru 65. + +diff -Naur vim72.orig/Filelist vim72/Filelist +--- vim72.orig/Filelist 2008-07-06 19:02:23.000000000 +0100 ++++ vim72/Filelist 2008-12-06 11:37:48.000000000 +0000 +@@ -285,6 +285,7 @@ + src/proto/os_win32.pro \ + src/proto/os_mswin.pro \ + src/testdir/Make_dos.mak \ ++ src/testdir/Make_ming.mak \ + src/testdir/dos.vim \ + src/uninstal.c \ + src/vim.def \ +diff -Naur vim72.orig/runtime/doc/cmdline.txt vim72/runtime/doc/cmdline.txt +--- vim72.orig/runtime/doc/cmdline.txt 2008-08-09 15:22:59.000000000 +0100 ++++ vim72/runtime/doc/cmdline.txt 2008-12-06 11:37:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-*cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29 ++*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 + + + VIM REFERENCE MANUAL by Bram Moolenaar +@@ -157,6 +157,11 @@ + (doesn't work at the expression prompt; some + things such as changing the buffer or current + window are not allowed to avoid side effects) ++ When the result is a |List| the items are used ++ as lines. They can have line breaks inside ++ too. ++ When the result is a Float it's automatically ++ converted to a String. + See |registers| about registers. {not in Vi} + Implementation detail: When using the |expression| register + and invoking setcmdpos(), this sets the position before +@@ -730,19 +735,29 @@ + In Ex commands, at places where a file name can be used, the following + characters have a special meaning. These can also be used in the expression + function expand() |expand()|. +- % is replaced with the current file name *:_%* +- # is replaced with the alternate file name *:_#* ++ % Is replaced with the current file name. *:_%* *c_%* ++ # Is replaced with the alternate file name. *:_#* *c_#* + #n (where n is a number) is replaced with the file name of +- buffer n. "#0" is the same as "#" +- ## is replaced with all names in the argument list *:_##* ++ buffer n. "#0" is the same as "#". ++ ## Is replaced with all names in the argument list *:_##* *c_##* + concatenated, separated by spaces. Each space in a name + is preceded with a backslash. +-Note that these give the file name as it was typed. If an absolute path is +-needed (when using the file name from a different directory), you need to add +-":p". See |filename-modifiers|. ++ #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* ++ file name n. See |:oldfiles| or |v:oldfiles| to get the ++ number. *E809* ++ {only when compiled with the +eval and +viminfo features} ++ ++Note that these, except "#<n", give the file name as it was typed. If an ++absolute path is needed (when using the file name from a different directory), ++you need to add ":p". See |filename-modifiers|. ++ ++The "#<n" item returns an absolute path, but it will start with "~/" for files ++below your home directory. ++ + Note that backslashes are inserted before spaces, so that the command will + correctly interpret the file name. But this doesn't happen for shell +-commands. For those you probably have to use quotes: > ++commands. For those you probably have to use quotes (this fails for files ++that contain a quote and wildcards): > + :!ls "%" + :r !spell "%" + +diff -Naur vim72.orig/runtime/doc/eval.txt vim72/runtime/doc/eval.txt +--- vim72.orig/runtime/doc/eval.txt 2008-08-09 15:22:59.000000000 +0100 ++++ vim72/runtime/doc/eval.txt 2008-12-06 11:37:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-*eval.txt* For Vim version 7.2. Last change: 2008 Aug 09 ++*eval.txt* For Vim version 7.2. Last change: 2008 Nov 27 + + + VIM REFERENCE MANUAL by Bram Moolenaar +@@ -1484,6 +1484,17 @@ + This is the screen column number, like with |virtcol()|. The + value is zero when there was no mouse button click. + ++ *v:oldfiles* *oldfiles-variable* ++v:oldfiles List of file names that is loaded from the |viminfo| file on ++ startup. These are the files that Vim remembers marks for. ++ The length of the List is limited by the ' argument of the ++ 'viminfo' option (default is 100). ++ Also see |:oldfiles| and |c_#<|. ++ The List can be modified, but this has no effect on what is ++ stored in the |viminfo| file later. If you use values other ++ than String this will cause trouble. ++ {only when compiled with the +viminfo feature} ++ + *v:operator* *operator-variable* + v:operator The last operator given in Normal mode. This is a single + character except for commands starting with <g> or <z>, +@@ -1695,7 +1706,7 @@ + exists( {expr}) Number TRUE if {expr} exists + extend({expr1}, {expr2} [, {expr3}]) + List/Dict insert items of {expr2} into {expr1} +-expand( {expr}) String expand special keywords in {expr} ++expand( {expr} [, {flag}]) String expand special keywords in {expr} + feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer + filereadable( {file}) Number TRUE if {file} is a readable file + filewritable( {file}) Number TRUE if {file} is a writable file +@@ -1747,8 +1758,9 @@ + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname}) any variable {varname} in window {nr} +-glob( {expr}) String expand file wildcards in {expr} +-globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} ++glob( {expr} [, {flag}]) String expand file wildcards in {expr} ++globpath( {path}, {expr} [, {flag}]) ++ String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} + haslocaldir() Number TRUE if current window executed |:lcd| +@@ -3275,14 +3287,16 @@ + :let list_is_on = getwinvar(2, '&list') + :echo "myvar = " . getwinvar(1, 'myvar') + < +- *glob()* +-glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the ++glob({expr} [, {flag}]) *glob()* ++ Expand the file wildcards in {expr}. See |wildcards| for the + use of special characters. + The result is a String. + When there are several matches, they are separated by <NL> + characters. +- The 'wildignore' option applies: Names matching one of the +- patterns in 'wildignore' will be skipped. ++ Unless the optional {flag} argument is given and is non-zero, ++ the 'suffixes' and 'wildignore' options apply: Names matching ++ one of the patterns in 'wildignore' will be skipped and ++ 'suffixes' affect the ordering of matches. + If the expansion fails, the result is an empty string. + A name for a non-existing file is not included. + +@@ -3296,20 +3310,22 @@ + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +-globpath({path}, {expr}) *globpath()* ++globpath({path}, {expr} [, {flag}]) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") + < {path} is a comma-separated list of directory names. Each + directory name is prepended to {expr} and expanded like with +- glob(). A path separator is inserted when needed. ++ |glob()|. A path separator is inserted when needed. + To add a comma inside a directory name escape it with a + backslash. Note that on MS-Windows a directory may have a + trailing backslash, remove it if you put a comma after it. + If the expansion fails for one of the directories, there is no + error message. +- The 'wildignore' option applies: Names matching one of the +- patterns in 'wildignore' will be skipped. ++ Unless the optional {flag} argument is given and is non-zero, ++ the 'suffixes' and 'wildignore' options apply: Names matching ++ one of the patterns in 'wildignore' will be skipped and ++ 'suffixes' affect the ordering of matches. + + The "**" item can be used to search in a directory tree. + For example, to find all "README.txt" files in the directories +@@ -5332,10 +5348,12 @@ + "fg" foreground color (GUI: color name used to set + the color, cterm: color number as a string, + term: empty string) +- "bg" background color (like "fg") ++ "bg" background color (as with "fg") ++ "sp" special color (as with "fg") |highlight-guisp| + "fg#" like "fg", but for the GUI and the GUI is + running the name in "#RRGGBB" form + "bg#" like "fg#" for "bg" ++ "sp#" like "fg#" for "sp" + "bold" "1" if bold + "italic" "1" if italic + "reverse" "1" if reverse +diff -Naur vim72.orig/runtime/doc/options.txt vim72/runtime/doc/options.txt +--- vim72.orig/runtime/doc/options.txt 2008-08-09 15:22:59.000000000 +0100 ++++ vim72/runtime/doc/options.txt 2008-12-06 11:37:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-*options.txt* For Vim version 7.2. Last change: 2008 Aug 06 ++*options.txt* For Vim version 7.2. Last change: 2008 Nov 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +@@ -7472,7 +7472,9 @@ + {not available when compiled without the |+wildignore| + feature} + A list of file patterns. A file that matches with one of these +- patterns is ignored when completing file or directory names. ++ patterns is ignored when completing file or directory names, and ++ influences the result of |expand()|, |glob()| and |globpath()| unless ++ a flag is passed to disable this. + The pattern is used like with |:autocmd|, see |autocmd-patterns|. + Also see 'suffixes'. + Example: > +diff -Naur vim72.orig/runtime/doc/os_vms.txt vim72/runtime/doc/os_vms.txt +--- vim72.orig/runtime/doc/os_vms.txt 2008-08-09 15:23:00.000000000 +0100 ++++ vim72/runtime/doc/os_vms.txt 2008-12-06 11:37:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-*os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18 ++*os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19 + + + VIM REFERENCE MANUAL +@@ -312,7 +312,7 @@ + + 8. Useful notes *vms-notes* + +-8.1 backspace/delete ++8.1 Backspace/delete + 8.2 Filters + 8.3 VMS file version numbers + 8.4 Directory conversion +@@ -326,8 +326,10 @@ + 8.12 diff-mode + 8.13 Allow '$' in C keywords + 8.14 VIMTUTOR for beginners ++8.15 Slow start in console mode issue ++8.16 Common VIM directory - different architectures + +-8.1 backspace/delete ++8.1 Backspace/delete + + There are backspace/delete key inconsistencies with VMS. + :fixdel doesn't do the trick, but the solution is: > +@@ -663,12 +665,130 @@ + + (Thomas.R.Wyant III, Vim 6.1) + ++8.14 Slow start in console mode issue ++ ++As GUI/GTK Vim works equally well in console mode, many administartors ++deploy those executables system wide. ++Unfortunately, on a remote slow connections GUI/GTK executables behave rather ++slow when user wants to run Vim just in the console mode - because of X environment detection timeout. ++ ++Luckily, there is a simple solution for that. Administrators need to deploy ++both GUI/GTK build and just console build executables, like below: > ++ ++ |- vim72 ++ |----- doc ++ |----- syntax ++ vimrc (system rc files) ++ gvimrc ++ gvim.exe (the remaned GUI or GTK built vim.exe) ++ vim.exe (the console only executable) ++ ++Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: > ++ ++ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is ++ $ vi*m :== mcr VIM:VIM.EXE ++ $ gvi*m :== mcr VIM:GVIM.EXE ++ $ ! or you can try to spawn with ++ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 ++ ++ ++Like this, users that do not have X environment and want to use Vim just in ++console mode can avoid performance problems. ++ ++(Zoltan Arpadffy, Vim 7.2) ++ ++8.15 Common VIM directory - different architectures ++ ++In a cluster that contains nodes with different architectures like below: ++ ++$show cluster ++View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 +++---------------------------------+ ++Š SYSTEMS Š MEMBERS Š +++-----------------------+---------Š ++Š NODE Š SOFTWARE Š STATUS Š +++--------+--------------+---------Š ++Š TOR Š VMS V7.3-2 Š MEMBER Š ++Š TITAN2 Š VMS V8.3 Š MEMBER Š ++Š ODIN Š VMS V7.3-2 Š MEMBER Š +++---------------------------------+ ++ ++It is convinient to have a common VIM directory but execute different ++executables. ++There are more solutions for this problem: ++ ++solution 1. all executables in the same directory with different names ++This is easily done with the following script that can be added ++to the login.com or sylogin.com: > ++ ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" ++ $ then ++ $ say "VAX platform" ++ $ vi*m:== mcr vim:VIM.EXE_VAX ++ $ endif ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" ++ $ then ++ $ say "ALPHA platform" ++ $ vi*m :== mcr vim:VIM.EXE_AXP ++ $ endif ++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" ++ $ then ++ $ say "IA64 platform" ++ $ vi*m :== mcr vim:VIM.EXE_IA64 ++ $ endif ++ ++solution 2. different directories: > ++ ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" ++ $ then ++ $ say "VAX platform" ++ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables ++ $ endif ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" ++ $ then ++ $ say "ALPHA platform" ++ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables ++ $ endif ++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" ++ $ then ++ $ say "IA64 platform" ++ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables ++ $ endif ++ $! VIMRUNTIME must be defined in order to find runtime files ++ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72] ++ ++A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP ++package downloadable from http://www.polarhome.com/vim/ ++ ++(Zoltan Arpadffy, Vim 7.2) ++ + ============================================================================== + + 9. VMS related changes *vms-changes* + +-Version 7 ++Recent changes ++- The following plugins are included into VMS runtime: ++ genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, ++ bufexplorer 7.1.7, taglist 4.5 ++- minor changes in vimrc (just in VMS runtime) ++- make_vms.mms - HUGE model is the default ++- [TESTDIR]make_vms.mms include as many tests possible ++- modify test30 and test54 for VMS ++- enable FLOAT feature in VMS port ++- os_vms.txt updated ++ ++Version 7.2 (2008 Aug 9) ++- VCF files write corrected ++- CTAGS 5.7 included ++- corrected make_vms.mms (on VAX gave syntax error) ++ ++Version 7.1 (2007 Jun 15) ++- create TAGS file from menu ++ ++Version 7 (2006 May 8) + - Improved low level char input (affects just console mode) ++- Fixed plugin bug ++- CTAGS 5.6 included + + Version 6.4 (2005 Oct 15) + - GTKLIB and Vim build on IA64 +@@ -806,6 +926,7 @@ + + OpenVMS documentation and executables are maintained by: + Zoltan Arpadffy arpadffy@polarhome.com ++OpenVMS Vim page: http://www.polarhome.com/vim/ + + This document uses parts and remarks from earlier authors and contributors + of OS_VMS.TXT: +diff -Naur vim72.orig/runtime/doc/spell.txt vim72/runtime/doc/spell.txt +--- vim72.orig/runtime/doc/spell.txt 2008-08-09 15:23:00.000000000 +0100 ++++ vim72/runtime/doc/spell.txt 2008-12-06 11:37:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-*spell.txt* For Vim version 7.2. Last change: 2008 Jun 21 ++*spell.txt* For Vim version 7.2. Last change: 2008 Nov 30 + + + VIM REFERENCE MANUAL by Bram Moolenaar +@@ -831,8 +831,11 @@ + + # comment line ~ + +-With some items it's also possible to put a comment after it, but this isn't +-supported in general. ++Items with a fixed number of arguments can be followed by a comment. But only ++if none of the arguments can contain white space. The comment must start with ++a "#" character. Example: ++ ++ KEEPCASE = # fix case for words with this flag ~ + + + ENCODING *spell-SET* +@@ -965,6 +968,9 @@ + + Note: When using utf-8 only characters up to 65000 may be used for flags. + ++Note: even when using "num" or "long" the number of flags available to ++compounding and prefixes is limited to about 250. ++ + + AFFIXES + *spell-PFX* *spell-SFX* +@@ -1178,6 +1184,9 @@ + The flag also applies to the word with affixes, thus this can be used to mark + a whole bunch of related words as bad. + ++ *spell-FORBIDDENWORD* ++FORBIDDENWORD can be used just like BAD. For compatibility with Hunspell. ++ + *spell-NEEDAFFIX* + The NEEDAFFIX flag is used to require that a word is used with an affix. The + word itself is not a good word (unless there is an empty affix). Example: +@@ -1268,6 +1277,10 @@ + + NEEDCOMPOUND & ~ + ++ *spell-ONLYINCOMPOUND* ++The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND. Supported for ++compatiblity with Hunspell. ++ + *spell-COMPOUNDMIN* + The minimal character length of a word used for compounding is specified with + COMPOUNDMIN. Example: +@@ -1328,6 +1341,20 @@ + rules. Can also be used for an affix to count the affix as a compounding + word. + ++ *spell-CHECKCOMPOUNDPATTERN* ++CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the ++position where two words are compounded together forbids the compound. ++For example: ++ CHECKCOMPOUNDPATTERN o e ~ ++ ++This forbids compounding if the first word ends in "o" and the second word ++starts with "e". ++ ++The arguments must be plain text, no patterns are actually supported, despite ++the item name. Case is always ignored. ++ ++The Hunspell feature to use three arguments and flags is not supported. ++ + *spell-SYLLABLE* + The SYLLABLE item defines characters or character sequences that are used to + count the number of syllables in a word. Example: +@@ -1496,6 +1523,10 @@ + ACCENT (Hunspell) *spell-ACCENT* + Use MAP instead. |spell-MAP| + ++BREAK (Hunspell) *spell-BREAK* ++ Define break points. Unclear how it works exactly. ++ Not supported. ++ + CHECKCOMPOUNDCASE (Hunspell) *spell-CHECKCOMPOUNDCASE* + Disallow uppercase letters at compound word boundaries. + Not supported. +@@ -1512,9 +1543,6 @@ + Forbid three identical characters when compounding. Not + supported. + +-CHECKCOMPOUNDPATTERN (Hunspell) *spell-CHECKCOMPOUNDPATTERN* +- Forbid compounding when patterns match. Not supported. +- + COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES* + Enables using two prefixes. Not supported. + +@@ -1536,13 +1564,18 @@ + COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* + Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| + ++COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* ++ Number of COMPOUNDRULE lines following. Ignored, but the ++ argument must be a number. ++ + COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE* + Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE| + |spell-COMPOUNDSYLMAX| + +-FORBIDDENWORD (Hunspell) *spell-FORBIDDENWORD* +- Use BAD instead. |spell-BAD| +- ++KEY (Hunspell) *spell-KEY* ++ Define characters that are close together on the keyboard. ++ Used to give better suggestions. Not supported. ++ + LANG (Hunspell) *spell-LANG* + This specifies language-specific behavior. This actually + moves part of the language knowledge into the program, +@@ -1553,10 +1586,7 @@ + Only needed for morphological analysis. + + MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS* +- Not supported. +- +-ONLYINCOMPOUND (Hunspell) *spell-ONLYINCOMPOUND* +- Use NEEDCOMPOUND instead. |spell-NEEDCOMPOUND| ++ Set number of n-gram suggestions. Not supported. + + PSEUDOROOT (Hunspell) *spell-PSEUDOROOT* + Use NEEDAFFIX instead. |spell-NEEDAFFIX| +diff -Naur vim72.orig/runtime/doc/starting.txt vim72/runtime/doc/starting.txt +--- vim72.orig/runtime/doc/starting.txt 2008-08-09 15:23:00.000000000 +0100 ++++ vim72/runtime/doc/starting.txt 2008-12-06 11:37:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-*starting.txt* For Vim version 7.2. Last change: 2008 Jun 21 ++*starting.txt* For Vim version 7.2. Last change: 2008 Nov 09 + + + VIM REFERENCE MANUAL by Bram Moolenaar +@@ -1337,8 +1337,9 @@ + *viminfo-read* + When Vim is started and the 'viminfo' option is non-empty, the contents of + the viminfo file are read and the info can be used in the appropriate places. +-The marks are not read in at startup (but file marks are). See +-|initialization| for how to set the 'viminfo' option upon startup. ++The |v:oldfiles| variable is filled. The marks are not read in at startup ++(but file marks are). See |initialization| for how to set the 'viminfo' ++option upon startup. + + *viminfo-write* + When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo +@@ -1372,6 +1373,8 @@ + that start with any string given with the "r" flag in 'viminfo'. This can be + used to avoid saving marks for files on removable media (for MS-DOS you would + use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:"). ++The |v:oldfiles| variable is filled with the file names that the viminfo file ++has marks for. + + *viminfo-file-marks* + Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The +@@ -1463,8 +1466,8 @@ + *:rv* *:rviminfo* *E195* + :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). + If [!] is given, then any information that is +- already set (registers, marks, etc.) will be +- overwritten. {not in Vi} ++ already set (registers, marks, |v:oldfiles|, etc.) ++ will be overwritten {not in Vi} + + *:wv* *:wviminfo* *E137* *E138* *E574* + :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). +@@ -1479,4 +1482,20 @@ + the .viminfo file. + {not in Vi} + ++ *:ol* *:oldfiles* ++:ol[dfiles] List the files that have marks stored in the viminfo ++ file. This list is read on startup and only changes ++ afterwards with ":rviminfo!". Also see |v:oldfiles|. ++ The number can be used with |c_#<|. ++ {not in Vi, only when compiled with the +eval feature} ++ ++:bro[wse] ol[dfiles][!] ++ List file names as with |:oldfiles|, and then prompt ++ for a number. When the number is valid that file from ++ the list is edited. ++ If you get the |press-enter| prompt you can press "q" ++ and still get the prompt to enter a file number. ++ Use ! to abondon a modified buffer. |abandon| ++ {not when compiled with tiny or small features} ++ + vim:tw=78:ts=8:ft=help:norl: +diff -Naur vim72.orig/runtime/doc/usr_21.txt vim72/runtime/doc/usr_21.txt +--- vim72.orig/runtime/doc/usr_21.txt 2008-08-09 15:23:01.000000000 +0100 ++++ vim72/runtime/doc/usr_21.txt 2008-12-06 11:37:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-*usr_21.txt* For Vim version 7.2. Last change: 2007 May 01 ++*usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09 + + VIM USER MANUAL - by Bram Moolenaar + +@@ -153,7 +153,7 @@ + to be lost. Each item can be remembered only once. + + +-GETTING BACK TO WHERE YOU WERE ++GETTING BACK TO WHERE YOU STOPPED VIM + + You are halfway editing a file and it's time to leave for holidays. You exit + Vim and go enjoy yourselves, forgetting all about your work. After a couple +@@ -168,6 +168,48 @@ + The |:marks| command is useful to find out where '0 to '9 will take you. + + ++GETTING BACK TO SOME FILE ++ ++If you want to go back to a file that you edited recently, but not when ++exiting Vim, there is a slightly more complicated way. You can see a list of ++files by typing the command: > ++ ++ :oldfiles ++< 1: ~/.viminfo ~ ++ 2: ~/text/resume.txt ~ ++ 3: /tmp/draft ~ ++ ++Now you would like to edit the second file, which is in the list preceded by ++"2:". You type: > ++ ++ :e #<2 ++ ++Instead of ":e" you can use any command that has a file name argument, the ++"#<2" item works in the same place as "%" (current file name) and "#" ++(alternate file name). So you can also split the window to edit the third ++file: > ++ ++ :split #<3 ++ ++That #<123 thing is a bit complicated when you just want to edit a file. ++Fortunately there is a simpler way: > ++ ++ :browse oldfiles ++< 1: ~/.viminfo ~ ++ 2: ~/text/resume.txt ~ ++ 3: /tmp/draft ~ ++ -- More -- ++ ++You get the same list of files as with |:oldfiles|. If you want to edit ++"resume.txt" first press "q" to stop the listing. You will get a prompt: ++ ++ Type number and <Enter> (empty cancels): ~ ++ ++Type "2" and press <Enter> to edit the second file. ++ ++More info at |:oldfiles|, |v:oldfiles| and |c_#<|. ++ ++ + MOVE INFO FROM ONE VIM TO ANOTHER + + You can use the ":wviminfo" and ":rviminfo" commands to save and restore the +diff -Naur vim72.orig/runtime/scripts.vim vim72/runtime/scripts.vim +--- vim72.orig/runtime/scripts.vim 2008-08-08 23:27:21.000000000 +0100 ++++ vim72/runtime/scripts.vim 2008-12-06 11:37:48.000000000 +0000 +@@ -234,6 +234,10 @@ + elseif s:line1 =~ '<DTD\s+XHTML\s' + set ft=xhtml + ++ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN") ++ elseif s:line1 =~? '\<DOCTYPE\s\+html\>' ++ set ft=html ++ + " PDF + elseif s:line1 =~ '^%PDF-' + set ft=pdf +diff -Naur vim72.orig/src/auto/configure vim72/src/auto/configure +--- vim72.orig/src/auto/configure 2008-07-24 13:40:36.000000000 +0100 ++++ vim72/src/auto/configure 2008-12-06 11:37:50.000000000 +0000 +@@ -16819,21 +16819,29 @@ + LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" + fi + +-{ $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 +-$as_echo_n "checking for GCC 3 or later... " >&6; } + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then ++ { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 ++$as_echo_n "checking for GCC 3 or later... " >&6; } + gccmajor=`echo "$gccversion" | sed -e 's/^([1-9])..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" +- fi +-fi +-if test "$DEPEND_CFLAGS_FILTER" = ""; then +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } +-else +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ fi ++ { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5 ++$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; } ++ if test "$gccmajor" -gt "3"; then ++ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ fi + fi + + +diff -Naur vim72.orig/src/buffer.c vim72/src/buffer.c +--- vim72.orig/src/buffer.c 2008-08-06 12:00:48.000000000 +0100 ++++ vim72/src/buffer.c 2008-12-06 11:37:50.000000000 +0000 +@@ -33,7 +33,7 @@ + static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); +-static wininfo_T *find_wininfo __ARGS((buf_T *buf)); ++static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); + #ifdef UNIX + static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st)); + static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp)); +@@ -647,6 +647,9 @@ + vim_free(buf->b_start_fenc); + buf->b_start_fenc = NULL; + #endif ++#ifdef FEAT_SPELL ++ ga_clear(&buf->b_langp); ++#endif + } + + /* +@@ -1090,7 +1093,7 @@ + #endif + setpcmark(); + retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, +- forceit ? ECMD_FORCEIT : 0); ++ forceit ? ECMD_FORCEIT : 0, curwin); + + /* + * do_ecmd() may create a new buffer, then we have to delete +@@ -1237,7 +1240,7 @@ + * "buf" if one exists */ + if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf)) + return OK; +- /* If 'switchbuf' contians "usetab": jump to first window in any tab ++ /* If 'switchbuf' contains "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf)) + return OK; +@@ -1313,7 +1316,7 @@ + setpcmark(); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */ +- buflist_altfpos(); /* remember curpos */ ++ buflist_altfpos(curwin); /* remember curpos */ + + #ifdef FEAT_VISUAL + /* Don't restart Select mode after switching to another buffer. */ +@@ -1351,11 +1354,12 @@ + } + } + #ifdef FEAT_AUTOCMD ++ /* An autocommand may have deleted "buf", already entered it (e.g., when ++ * it did ":bunload") or aborted the script processing! */ + # ifdef FEAT_EVAL +- /* An autocommand may have deleted buf or aborted the script processing! */ +- if (buf_valid(buf) && !aborting()) ++ if (buf_valid(buf) && buf != curbuf && !aborting()) + # else +- if (buf_valid(buf)) /* an autocommand may have deleted buf! */ ++ if (buf_valid(buf) && buf != curbuf) + # endif + #endif + enter_buffer(buf); +@@ -1397,6 +1401,9 @@ + curwin->w_cursor.coladd = 0; + #endif + curwin->w_set_curswant = TRUE; ++#ifdef FEAT_AUTOCMD ++ curwin->w_topline_was_set = FALSE; ++#endif + + /* Make sure the buffer is loaded. */ + if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */ +@@ -1436,7 +1443,8 @@ + maketitle(); + #endif + #ifdef FEAT_AUTOCMD +- if (curwin->w_topline == 1) /* when autocmds didn't change it */ ++ /* when autocmds didn't change it */ ++ if (curwin->w_topline == 1 && !curwin->w_topline_was_set) + #endif + scroll_cursor_halfway(FALSE); /* redisplay at correct position */ + +@@ -2400,22 +2408,70 @@ + return; + } + ++#ifdef FEAT_DIFF ++static int wininfo_other_tab_diff __ARGS((wininfo_T *wip)); ++ ++/* ++ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab ++ * page. That's because a diff is local to a tab page. ++ */ ++ static int ++wininfo_other_tab_diff(wip) ++ wininfo_T *wip; ++{ ++ win_T *wp; ++ ++ if (wip->wi_opt.wo_diff) ++ { ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ /* return FALSE when it's a window in the current tab page, thus ++ * the buffer was in diff mode here */ ++ if (wip->wi_win == wp) ++ return FALSE; ++ return TRUE; ++ } ++ return FALSE; ++} ++#endif ++ + /* + * Find info for the current window in buffer "buf". + * If not found, return the info for the most recently used window. ++ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in ++ * another tab page. + * Returns NULL when there isn't any info. + */ ++/*ARGSUSED*/ + static wininfo_T * +-find_wininfo(buf) ++find_wininfo(buf, skip_diff_buffer) + buf_T *buf; ++ int skip_diff_buffer; + { + wininfo_T *wip; + + for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) +- if (wip->wi_win == curwin) ++ if (wip->wi_win == curwin ++#ifdef FEAT_DIFF ++ && (!skip_diff_buffer || !wininfo_other_tab_diff(wip)) ++#endif ++ ) + break; +- if (wip == NULL) /* if no fpos for curwin, use the first in the list */ +- wip = buf->b_wininfo; ++ ++ /* If no wininfo for curwin, use the first in the list (that doesn't have ++ * 'diff' set and is in another tab page). */ ++ if (wip == NULL) ++ { ++#ifdef FEAT_DIFF ++ if (skip_diff_buffer) ++ { ++ for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) ++ if (!wininfo_other_tab_diff(wip)) ++ break; ++ } ++ else ++#endif ++ wip = buf->b_wininfo; ++ } + return wip; + } + +@@ -2436,7 +2492,7 @@ + clearFolding(curwin); + #endif + +- wip = find_wininfo(buf); ++ wip = find_wininfo(buf, TRUE); + if (wip != NULL && wip->wi_optset) + { + copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt); +@@ -2468,7 +2524,7 @@ + wininfo_T *wip; + static pos_T no_position = {1, 0}; + +- wip = find_wininfo(buf); ++ wip = find_wininfo(buf, FALSE); + if (wip != NULL) + return &(wip->wi_fpos); + else +@@ -2789,14 +2845,14 @@ + #endif + + /* +- * Set alternate cursor position for current window. ++ * Set alternate cursor position for the current buffer and window "win". + * Also save the local window option values. + */ + void +-buflist_altfpos() ++buflist_altfpos(win) ++ win_T *win; + { +- buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum, +- curwin->w_cursor.col, TRUE); ++ buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE); + } + + /* +@@ -3963,7 +4019,7 @@ + width = vim_strsize(out); + if (maxwidth > 0 && width > maxwidth) + { +- /* Result is too long, must trunctate somewhere. */ ++ /* Result is too long, must truncate somewhere. */ + l = 0; + if (itemcnt == 0) + s = out; +@@ -4488,7 +4544,7 @@ + ECMD_ONE, + ((P_HID(curwin->w_buffer) + || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0) +- + ECMD_OLDBUF); ++ + ECMD_OLDBUF, curwin); + #ifdef FEAT_AUTOCMD + if (use_firstwin) + ++autocmd_no_leave; +@@ -5062,7 +5118,7 @@ + { + if (buf->b_sfname != NULL) + return (char *)buf->b_sfname; +- return "[Scratch]"; ++ return _("[Scratch]"); + } + #endif + if (buf->b_fname == NULL) +diff -Naur vim72.orig/src/configure.in vim72/src/configure.in +--- vim72.orig/src/configure.in 2008-07-24 13:40:26.000000000 +0100 ++++ vim72/src/configure.in 2008-12-06 11:37:50.000000000 +0000 +@@ -3152,18 +3152,25 @@ + dnl But only when making dependencies, cproto and lint don't take "-isystem". + dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow + dnl the number before the version number. +-AC_MSG_CHECKING(for GCC 3 or later) + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then ++ AC_MSG_CHECKING(for GCC 3 or later) + gccmajor=`echo "$gccversion" | sed -e 's/^([[1-9]])..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" ++ AC_MSG_RESULT(yes) ++ else ++ AC_MSG_RESULT(no) ++ fi ++ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is ++ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0. ++ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1) ++ if test "$gccmajor" -gt "3"; then ++ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" ++ AC_MSG_RESULT(yes) ++ else ++ AC_MSG_RESULT(no) + fi +-fi +-if test "$DEPEND_CFLAGS_FILTER" = ""; then +- AC_MSG_RESULT(no) +-else +- AC_MSG_RESULT(yes) + fi + AC_SUBST(DEPEND_CFLAGS_FILTER) + +diff -Naur vim72.orig/src/diff.c vim72/src/diff.c +--- vim72.orig/src/diff.c 2008-03-05 11:16:56.000000000 +0000 ++++ vim72/src/diff.c 2008-12-06 11:37:50.000000000 +0000 +@@ -73,6 +73,8 @@ + { + tp->tp_diffbuf[i] = NULL; + tp->tp_diff_invalid = TRUE; ++ if (tp == curtab) ++ diff_redraw(TRUE); + } + } + } +@@ -102,6 +104,7 @@ + { + curtab->tp_diffbuf[i] = NULL; + curtab->tp_diff_invalid = TRUE; ++ diff_redraw(TRUE); + } + } + } +@@ -131,6 +134,7 @@ + { + curtab->tp_diffbuf[i] = buf; + curtab->tp_diff_invalid = TRUE; ++ diff_redraw(TRUE); + return; + } + +@@ -661,6 +665,7 @@ + char_u *tmp_diff; + FILE *fd; + int ok; ++ int io_error = FALSE; + + /* Delete all diffblocks. */ + diff_clear(curtab); +@@ -697,18 +702,26 @@ + { + ok = FALSE; + fd = mch_fopen((char *)tmp_orig, "w"); +- if (fd != NULL) ++ if (fd == NULL) ++ io_error = TRUE; ++ else + { +- fwrite("line1\n", (size_t)6, (size_t)1, fd); ++ if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1) ++ io_error = TRUE; + fclose(fd); + fd = mch_fopen((char *)tmp_new, "w"); +- if (fd != NULL) ++ if (fd == NULL) ++ io_error = TRUE; ++ else + { +- fwrite("line2\n", (size_t)6, (size_t)1, fd); ++ if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1) ++ io_error = TRUE; + fclose(fd); + diff_file(tmp_orig, tmp_new, tmp_diff); + fd = mch_fopen((char *)tmp_diff, "r"); +- if (fd != NULL) ++ if (fd == NULL) ++ io_error = TRUE; ++ else + { + char_u linebuf[LBUFLEN]; + +@@ -761,6 +774,8 @@ + } + if (!ok) + { ++ if (io_error) ++ EMSG(_("E810: Cannot read or write temp files")); + EMSG(_("E97: Cannot create diffs")); + diff_a_works = MAYBE; + #if defined(MSWIN) || defined(MSDOS) +@@ -925,10 +940,10 @@ + { + # ifdef TEMPDIRNAMES + if (vim_tempdir != NULL) +- mch_chdir((char *)vim_tempdir); ++ ignored = mch_chdir((char *)vim_tempdir); + else + # endif +- mch_chdir("/tmp"); ++ ignored = mch_chdir("/tmp"); + shorten_fnames(TRUE); + } + #endif +diff -Naur vim72.orig/src/eval.c vim72/src/eval.c +--- vim72.orig/src/eval.c 2008-08-07 20:37:22.000000000 +0100 ++++ vim72/src/eval.c 2008-12-06 11:37:50.000000000 +0000 +@@ -348,6 +348,7 @@ + {VV_NAME("mouse_col", VAR_NUMBER), 0}, + {VV_NAME("operator", VAR_STRING), VV_RO}, + {VV_NAME("searchforward", VAR_NUMBER), 0}, ++ {VV_NAME("oldfiles", VAR_LIST), 0}, + }; + + /* shorthand */ +@@ -355,6 +356,7 @@ + #define vv_nr vv_di.di_tv.vval.v_number + #define vv_float vv_di.di_tv.vval.v_float + #define vv_str vv_di.di_tv.vval.v_string ++#define vv_list vv_di.di_tv.vval.v_list + #define vv_tv vv_di.di_tv + + /* +@@ -426,7 +428,6 @@ + static long list_idx_of_item __ARGS((list_T *l, listitem_T *item)); + static void list_append __ARGS((list_T *l, listitem_T *item)); + static int list_append_tv __ARGS((list_T *l, typval_T *tv)); +-static int list_append_string __ARGS((list_T *l, char_u *str, int len)); + static int list_append_number __ARGS((list_T *l, varnumber_T n)); + static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item)); + static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef)); +@@ -845,11 +846,17 @@ + p = &vimvars[i]; + if (p->vv_di.di_tv.v_type == VAR_STRING) + { +- vim_free(p->vv_di.di_tv.vval.v_string); +- p->vv_di.di_tv.vval.v_string = NULL; ++ vim_free(p->vv_str); ++ p->vv_str = NULL; ++ } ++ else if (p->vv_di.di_tv.v_type == VAR_LIST) ++ { ++ list_unref(p->vv_list); ++ p->vv_list = NULL; + } + } + hash_clear(&vimvarht); ++ hash_init(&vimvarht); /* garbage_collect() will access it */ + hash_clear(&compat_hashtab); + + /* script-local variables */ +@@ -1256,23 +1263,26 @@ + + /* + * Top level evaluation function, returning a string. ++ * When "convert" is TRUE convert a List into a sequence of lines and convert ++ * a Float to a String. + * Return pointer to allocated memory, or NULL for failure. + */ + char_u * +-eval_to_string(arg, nextcmd, dolist) ++eval_to_string(arg, nextcmd, convert) + char_u *arg; + char_u **nextcmd; +- int dolist; /* turn List into sequence of lines */ ++ int convert; + { + typval_T tv; + char_u *retval; + garray_T ga; ++ char_u numbuf[NUMBUFLEN]; + + if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) + retval = NULL; + else + { +- if (dolist && tv.v_type == VAR_LIST) ++ if (convert && tv.v_type == VAR_LIST) + { + ga_init2(&ga, (int)sizeof(char), 80); + if (tv.vval.v_list != NULL) +@@ -1280,6 +1290,13 @@ + ga_append(&ga, NUL); + retval = (char_u *)ga.ga_data; + } ++#ifdef FEAT_FLOAT ++ else if (convert && tv.v_type == VAR_FLOAT) ++ { ++ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float); ++ retval = vim_strsave(numbuf); ++ } ++#endif + else + retval = vim_strsave(get_tv_string(&tv)); + clear_tv(&tv); +@@ -3277,7 +3294,7 @@ + + if (*startarg != '(') + { +- EMSG2(_("E107: Missing braces: %s"), eap->arg); ++ EMSG2(_("E107: Missing parentheses: %s"), eap->arg); + goto end; + } + +@@ -3657,8 +3674,8 @@ + } + + /* +- * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or +- * it refers to a List or Dictionary that is locked. ++ * Return TRUE if typeval "tv" is locked: Either that value is locked itself ++ * or it refers to a List or Dictionary that is locked. + */ + static int + tv_islocked(tv) +@@ -6047,6 +6064,25 @@ + } + + /* ++ * Get list item "l[idx - 1]" as a string. Returns NULL for failure. ++ */ ++ char_u * ++list_find_str(l, idx) ++ list_T *l; ++ long idx; ++{ ++ listitem_T *li; ++ ++ li = list_find(l, idx - 1); ++ if (li == NULL) ++ { ++ EMSGN(_(e_listidx), idx); ++ return NULL; ++ } ++ return get_tv_string(&li->li_tv); ++} ++ ++/* + * Locate "item" list "l" and return its index. + * Returns -1 when "item" is not in the list. + */ +@@ -6137,7 +6173,7 @@ + * When "len" >= 0 use "str[len]". + * Returns FAIL when out of memory. + */ +- static int ++ int + list_append_string(l, str, len) + list_T *l; + char_u *str; +@@ -6497,6 +6533,9 @@ + set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); + } + ++ /* v: vars */ ++ set_ref_in_ht(&vimvarht, copyID); ++ + /* + * 2. Go through the list of dicts and free items without the copyID. + */ +@@ -6587,7 +6626,7 @@ + { + case VAR_DICT: + dd = tv->vval.v_dict; +- if (dd->dv_copyID != copyID) ++ if (dd != NULL && dd->dv_copyID != copyID) + { + /* Didn't see this dict yet. */ + dd->dv_copyID = copyID; +@@ -6597,7 +6636,7 @@ + + case VAR_LIST: + ll = tv->vval.v_list; +- if (ll->lv_copyID != copyID) ++ if (ll != NULL && ll->lv_copyID != copyID) + { + /* Didn't see this list yet. */ + ll->lv_copyID = copyID; +@@ -7525,8 +7564,8 @@ + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 2, f_getwinvar}, +- {"glob", 1, 1, f_glob}, +- {"globpath", 2, 2, f_globpath}, ++ {"glob", 1, 2, f_glob}, ++ {"globpath", 2, 3, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +@@ -9518,7 +9557,7 @@ + else + { + /* When the optional second argument is non-zero, don't remove matches +- * for 'suffixes' and 'wildignore' */ ++ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ + if (argvars[1].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[1], &error)) + flags |= WILD_KEEP_ALL; +@@ -10300,7 +10339,8 @@ + s = get_tv_string(&argvars[0]); + if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) + EMSG2(_(e_invarg2), s); +- else if (!function_exists(s)) ++ /* Don't check an autoload name for existence here. */ ++ else if (vim_strchr(s, AUTOLOAD_CHAR) == NULL && !function_exists(s)) + EMSG2(_("E700: Unknown function: %s"), s); + else + { +@@ -10602,7 +10642,7 @@ + # ifdef FEAT_WINDOWS + win_T *wp; + # endif +- int n = 1; ++ int winnr = 1; + + if (row >= 0 && col >= 0) + { +@@ -10612,9 +10652,9 @@ + (void)mouse_comp_pos(win, &row, &col, &lnum); + # ifdef FEAT_WINDOWS + for (wp = firstwin; wp != win; wp = wp->w_next) +- ++n; ++ ++winnr; + # endif +- vimvars[VV_MOUSE_WIN].vv_nr = n; ++ vimvars[VV_MOUSE_WIN].vv_nr = winnr; + vimvars[VV_MOUSE_LNUM].vv_nr = lnum; + vimvars[VV_MOUSE_COL].vv_nr = col + 1; + } +@@ -11284,13 +11324,25 @@ + typval_T *argvars; + typval_T *rettv; + { ++ int flags = WILD_SILENT|WILD_USE_NL; + expand_T xpc; ++ int error = FALSE; + +- ExpandInit(&xpc); +- xpc.xp_context = EXPAND_FILES; ++ /* When the optional second argument is non-zero, don't remove matches ++ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ ++ if (argvars[1].v_type != VAR_UNKNOWN ++ && get_tv_number_chk(&argvars[1], &error)) ++ flags |= WILD_KEEP_ALL; + rettv->v_type = VAR_STRING; +- rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), +- NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL); ++ if (!error) ++ { ++ ExpandInit(&xpc); ++ xpc.xp_context = EXPAND_FILES; ++ rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), ++ NULL, flags, WILD_ALL); ++ } ++ else ++ rettv->vval.v_string = NULL; + } + + /* +@@ -11301,14 +11353,22 @@ + typval_T *argvars; + typval_T *rettv; + { ++ int flags = 0; + char_u buf1[NUMBUFLEN]; + char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); ++ int error = FALSE; + ++ /* When the optional second argument is non-zero, don't remove matches ++ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ ++ if (argvars[2].v_type != VAR_UNKNOWN ++ && get_tv_number_chk(&argvars[2], &error)) ++ flags |= WILD_KEEP_ALL; + rettv->v_type = VAR_STRING; +- if (file == NULL) ++ if (file == NULL || error) + rettv->vval.v_string = NULL; + else +- rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file); ++ rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file, ++ flags); + } + + /* +@@ -15838,10 +15898,9 @@ + if (res == FAIL) + res = ITEM_COMPARE_FAIL; + else +- /* return value has wrong type */ + res = get_tv_number_chk(&rettv, &item_compare_func_err); + if (item_compare_func_err) +- res = ITEM_COMPARE_FAIL; ++ res = ITEM_COMPARE_FAIL; /* return value has wrong type */ + clear_tv(&rettv); + return res; + } +@@ -16590,8 +16649,11 @@ + p = highlight_has_attr(id, HL_INVERSE, modec); + break; + +- case 's': /* standout */ +- p = highlight_has_attr(id, HL_STANDOUT, modec); ++ case 's': ++ if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */ ++ p = highlight_color(id, what, modec); ++ else /* standout */ ++ p = highlight_has_attr(id, HL_STANDOUT, modec); + break; + + case 'u': +@@ -16658,7 +16720,7 @@ + col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ + + if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count +- && col >= 0 && col < (long)STRLEN(ml_get(lnum)) ++ && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum))) + && rettv_list_alloc(rettv) != FAIL) + { + (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); +@@ -18097,14 +18159,28 @@ + } + + /* +- * Set v:count, v:count1 and v:prevcount. ++ * Get List v: variable value. Caller must take care of reference count when ++ * needed. ++ */ ++ list_T * ++get_vim_var_list(idx) ++ int idx; ++{ ++ return vimvars[idx].vv_list; ++} ++ ++/* ++ * Set v:count to "count" and v:count1 to "count1". ++ * When "set_prevcount" is TRUE first set v:prevcount from v:count. + */ + void +-set_vcount(count, count1) ++set_vcount(count, count1, set_prevcount) + long count; + long count1; ++ int set_prevcount; + { +- vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; ++ if (set_prevcount) ++ vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; + vimvars[VV_COUNT].vv_nr = count; + vimvars[VV_COUNT1].vv_nr = count1; + } +@@ -18132,6 +18208,20 @@ + } + + /* ++ * Set List v: variable to "val". ++ */ ++ void ++set_vim_var_list(idx, val) ++ int idx; ++ list_T *val; ++{ ++ list_unref(vimvars[idx].vv_list); ++ vimvars[idx].vv_list = val; ++ if (val != NULL) ++ ++val->lv_refcount; ++} ++ ++/* + * Set v:register if needed. + */ + void +@@ -20590,6 +20680,9 @@ + int st_len = 0; + + todo = (int)func_hashtab.ht_used; ++ if (todo == 0) ++ return; /* nothing to dump */ ++ + sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo)); + + for (hi = func_hashtab.ht_array; todo > 0; ++hi) +@@ -20638,6 +20731,8 @@ + prof_self_cmp); + prof_sort_list(fd, sorttab, st_len, "SELF", TRUE); + } ++ ++ vim_free(sorttab); + } + + static void +@@ -21082,8 +21177,11 @@ + init_var_dict(&fc.l_avars, &fc.l_avars_var); + add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", + (varnumber_T)(argcount - fp->uf_args.ga_len)); ++ /* Use "name" to avoid a warning from some compiler that checks the ++ * destination size. */ + v = &fc.fixvar[fixvar_idx++].var; +- STRCPY(v->di_key, "000"); ++ name = v->di_key; ++ STRCPY(name, "000"); + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; + hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_LIST; +@@ -21204,7 +21302,7 @@ + if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) + func_do_profile(fp); + if (fp->uf_profiling +- || (fc.caller != NULL && &fc.caller->func->uf_profiling)) ++ || (fc.caller != NULL && fc.caller->func->uf_profiling)) + { + ++fp->uf_tm_count; + profile_start(&call_start); +@@ -21235,13 +21333,13 @@ + + #ifdef FEAT_PROFILE + if (do_profiling == PROF_YES && (fp->uf_profiling +- || (fc.caller != NULL && &fc.caller->func->uf_profiling))) ++ || (fc.caller != NULL && fc.caller->func->uf_profiling))) + { + profile_end(&call_start); + profile_sub_wait(&wait_start, &call_start); + profile_add(&fp->uf_tm_total, &call_start); + profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); +- if (fc.caller != NULL && &fc.caller->func->uf_profiling) ++ if (fc.caller != NULL && fc.caller->func->uf_profiling) + { + profile_add(&fc.caller->func->uf_tm_children, &call_start); + profile_add(&fc.caller->func->uf_tml_children, &call_start); +@@ -21886,6 +21984,62 @@ + } + } + ++/* ++ * List v:oldfiles in a nice way. ++ */ ++/*ARGSUSED*/ ++ void ++ex_oldfiles(eap) ++ exarg_T *eap; ++{ ++ list_T *l = vimvars[VV_OLDFILES].vv_list; ++ listitem_T *li; ++ int nr = 0; ++ ++ if (l == NULL) ++ msg((char_u *)_("No old files")); ++ else ++ { ++ msg_start(); ++ msg_scroll = TRUE; ++ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) ++ { ++ msg_outnum((long)++nr); ++ MSG_PUTS(": "); ++ msg_outtrans(get_tv_string(&li->li_tv)); ++ msg_putchar('\n'); ++ out_flush(); /* output one line at a time */ ++ ui_breakcheck(); ++ } ++ /* Assume "got_int" was set to truncate the listing. */ ++ got_int = FALSE; ++ ++#ifdef FEAT_BROWSE_CMD ++ if (cmdmod.browse) ++ { ++ quit_more = FALSE; ++ nr = prompt_for_number(FALSE); ++ msg_starthere(); ++ if (nr > 0) ++ { ++ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES), ++ (long)nr); ++ ++ if (p != NULL) ++ { ++ p = expand_env_save(p); ++ eap->arg = p; ++ eap->cmdidx = CMD_edit; ++ cmdmod.browse = FALSE; ++ do_exedit(eap, NULL); ++ vim_free(p); ++ } ++ } ++ } ++#endif ++ } ++} ++ + #endif /* FEAT_EVAL */ + + +diff -Naur vim72.orig/src/ex_cmds2.c vim72/src/ex_cmds2.c +--- vim72.orig/src/ex_cmds2.c 2008-07-13 17:18:22.000000000 +0100 ++++ vim72/src/ex_cmds2.c 2008-12-06 11:37:49.000000000 +0000 +@@ -2132,8 +2132,8 @@ + * argument index. */ + if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL, + eap, ECMD_LAST, +- (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) + +- (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL) ++ (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) ++ + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL) + curwin->w_arg_idx = old_arg_idx; + /* like Vi: set the mark where the cursor is in the file. */ + else if (eap->cmdidx != CMD_argdo) +@@ -3145,8 +3145,8 @@ + verbose_leave(); + } + #ifdef STARTUPTIME +- vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname); +- time_msg(IObuff, &tv_start); ++ vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname); ++ time_msg((char *)IObuff, &tv_start); + time_pop(&tv_rel); + #endif + +diff -Naur vim72.orig/src/ex_cmds.c vim72/src/ex_cmds.c +--- vim72.orig/src/ex_cmds.c 2008-08-04 20:15:00.000000000 +0100 ++++ vim72/src/ex_cmds.c 2008-12-06 11:37:50.000000000 +0000 +@@ -24,7 +24,7 @@ + static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); + #ifdef FEAT_VIMINFO + static char_u *viminfo_filename __ARGS((char_u *)); +-static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read)); ++static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags)); + static int viminfo_encoding __ARGS((vir_T *virp)); + static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing)); + #endif +@@ -1676,14 +1676,12 @@ + + /* + * read_viminfo() -- Read the viminfo file. Registers etc. which are already +- * set are not over-written unless force is TRUE. -- webb ++ * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb + */ + int +-read_viminfo(file, want_info, want_marks, forceit) +- char_u *file; +- int want_info; +- int want_marks; +- int forceit; ++read_viminfo(file, flags) ++ char_u *file; /* file name or NULL to use default name */ ++ int flags; /* VIF_WANT_INFO et al. */ + { + FILE *fp; + char_u *fname; +@@ -1691,7 +1689,7 @@ + if (no_viminfo()) + return FAIL; + +- fname = viminfo_filename(file); /* may set to default if NULL */ ++ fname = viminfo_filename(file); /* get file name in allocated buffer */ + if (fname == NULL) + return FAIL; + fp = mch_fopen((char *)fname, READBIN); +@@ -1701,8 +1699,9 @@ + verbose_enter(); + smsg((char_u *)_("Reading viminfo file "%s"%s%s%s"), + fname, +- want_info ? _(" info") : "", +- want_marks ? _(" marks") : "", ++ (flags & VIF_WANT_INFO) ? _(" info") : "", ++ (flags & VIF_WANT_MARKS) ? _(" marks") : "", ++ (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "", + fp == NULL ? _(" FAILED") : ""); + verbose_leave(); + } +@@ -1712,10 +1711,9 @@ + return FAIL; + + viminfo_errcnt = 0; +- do_viminfo(fp, NULL, want_info, want_marks, forceit); ++ do_viminfo(fp, NULL, flags); + + fclose(fp); +- + return OK; + } + +@@ -1943,7 +1941,7 @@ + * root. + */ + if (fp_out != NULL) +- (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); ++ ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); + #endif + } + } +@@ -1968,7 +1966,7 @@ + } + + viminfo_errcnt = 0; +- do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE); ++ do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS)); + + fclose(fp_out); /* errors are ignored !? */ + if (fp_in != NULL) +@@ -2041,12 +2039,10 @@ + * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo(). + */ + static void +-do_viminfo(fp_in, fp_out, want_info, want_marks, force_read) ++do_viminfo(fp_in, fp_out, flags) + FILE *fp_in; + FILE *fp_out; +- int want_info; +- int want_marks; +- int force_read; ++ int flags; + { + int count = 0; + int eof = FALSE; +@@ -2061,8 +2057,9 @@ + + if (fp_in != NULL) + { +- if (want_info) +- eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL); ++ if (flags & VIF_WANT_INFO) ++ eof = read_viminfo_up_to_marks(&vir, ++ flags & VIF_FORCEIT, fp_out != NULL); + else + /* Skip info, find start of marks */ + while (!(eof = viminfo_readline(&vir)) +@@ -2092,8 +2089,9 @@ + write_viminfo_bufferlist(fp_out); + count = write_viminfo_marks(fp_out); + } +- if (fp_in != NULL && want_marks) +- copy_viminfo_marks(&vir, fp_out, count, eof); ++ if (fp_in != NULL ++ && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT))) ++ copy_viminfo_marks(&vir, fp_out, count, eof, flags); + + vim_free(vir.vir_line); + #ifdef FEAT_MBYTE +@@ -3054,7 +3052,8 @@ + retval = 0; /* it's in the same file */ + } + else if (do_ecmd(fnum, ffname, sfname, NULL, lnum, +- (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK) ++ (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0), ++ curwin) == OK) + retval = -1; /* opened another file */ + else + retval = 1; /* error encountered */ +@@ -3087,17 +3086,21 @@ + * ECMD_OLDBUF: use existing buffer if it exists + * ECMD_FORCEIT: ! used for Ex command + * ECMD_ADDBUF: don't edit, just add to buffer list ++ * oldwin: Should be "curwin" when editing a new buffer in the current ++ * window, NULL when splitting the window first. When not NULL info ++ * of the previous buffer for "oldwin" is stored. + * + * return FAIL for failure, OK otherwise + */ + int +-do_ecmd(fnum, ffname, sfname, eap, newlnum, flags) ++do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin) + int fnum; + char_u *ffname; + char_u *sfname; + exarg_T *eap; /* can be NULL! */ + linenr_T newlnum; + int flags; ++ win_T *oldwin; + { + int other_file; /* TRUE if editing another file */ + int oldbuf; /* TRUE if using existing buffer */ +@@ -3269,7 +3272,8 @@ + { + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; +- buflist_altfpos(); ++ if (oldwin != NULL) ++ buflist_altfpos(oldwin); + } + + if (fnum) +@@ -3373,7 +3377,7 @@ + + /* close the link to the current buffer */ + u_sync(FALSE); +- close_buffer(curwin, curbuf, ++ close_buffer(oldwin, curbuf, + (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); + + #ifdef FEAT_AUTOCMD +@@ -5059,6 +5063,7 @@ + + if (did_sub) + ++sub_nlines; ++ vim_free(new_start); /* for when substitute was cancelled */ + vim_free(sub_firstline); /* free the copy of the original line */ + sub_firstline = NULL; + } +@@ -5610,7 +5615,13 @@ + */ + alt_fnum = curbuf->b_fnum; + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL, +- ECMD_HIDE + ECMD_SET_HELP); ++ ECMD_HIDE + ECMD_SET_HELP, ++#ifdef FEAT_WINDOWS ++ NULL /* buffer is still open, don't store info */ ++#else ++ curwin ++#endif ++ ); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = alt_fnum; + empty_fnum = curbuf->b_fnum; +diff -Naur vim72.orig/src/ex_cmds.h vim72/src/ex_cmds.h +--- vim72.orig/src/ex_cmds.h 2008-06-21 19:47:57.000000000 +0100 ++++ vim72/src/ex_cmds.h 2008-12-06 11:37:49.000000000 +0000 +@@ -278,7 +278,7 @@ + EX(CMD_crewind, "crewind", ex_cc, + RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cscope, "cscope", do_cscope, +- EXTRA|NOTRLCOM|SBOXOK|XFILE), ++ EXTRA|NOTRLCOM|XFILE), + EX(CMD_cstag, "cstag", do_cstag, + BANG|TRLBAR|WORD1), + EX(CMD_cunmap, "cunmap", ex_unmap, +@@ -506,7 +506,7 @@ + EX(CMD_lclose, "lclose", ex_cclose, + RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lcscope, "lcscope", do_cscope, +- EXTRA|NOTRLCOM|SBOXOK|XFILE), ++ EXTRA|NOTRLCOM|XFILE), + EX(CMD_left, "left", ex_align, + TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_leftabove, "leftabove", ex_wrongmodifier, +@@ -635,6 +635,8 @@ + RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noremap, "noremap", ex_map, + BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), ++EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, ++ NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, + TRLBAR|SBOXOK|CMDWIN), + EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, +@@ -651,6 +653,8 @@ + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_open, "open", ex_open, + RANGE|EXTRA), ++EX(CMD_oldfiles, "oldfiles", ex_oldfiles, ++ BANG|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_omap, "omap", ex_map, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_omapclear, "omapclear", ex_mapclear, +@@ -802,7 +806,7 @@ + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, + WORD1|TRLBAR|CMDWIN), + EX(CMD_scscope, "scscope", do_scscope, +- EXTRA|NOTRLCOM|SBOXOK), ++ EXTRA|NOTRLCOM), + EX(CMD_set, "set", ex_set, + TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, +diff -Naur vim72.orig/src/ex_docmd.c vim72/src/ex_docmd.c +--- vim72.orig/src/ex_docmd.c 2008-07-26 12:51:05.000000000 +0100 ++++ vim72/src/ex_docmd.c 2008-12-06 11:37:50.000000000 +0000 +@@ -364,6 +364,7 @@ + # define ex_function ex_ni + # define ex_delfunction ex_ni + # define ex_return ex_ni ++# define ex_oldfiles ex_ni + #endif + static char_u *arg_all __ARGS((void)); + #ifdef FEAT_SESSION +@@ -1770,7 +1771,7 @@ + } + if (checkforcmd(&ea.cmd, "browse", 3)) + { +-#ifdef FEAT_BROWSE ++#ifdef FEAT_BROWSE_CMD + cmdmod.browse = TRUE; + #endif + continue; +@@ -2978,6 +2979,7 @@ + {"keepmarks", 3, FALSE}, + {"leftabove", 5, FALSE}, + {"lockmarks", 3, FALSE}, ++ {"noautocmd", 3, FALSE}, + {"rightbelow", 6, FALSE}, + {"sandbox", 3, FALSE}, + {"silent", 3, FALSE}, +@@ -3608,6 +3610,7 @@ + return set_context_in_autocmd(xp, arg, FALSE); + + case CMD_doautocmd: ++ case CMD_doautoall: + return set_context_in_autocmd(xp, arg, TRUE); + #endif + case CMD_set: +@@ -7485,7 +7488,8 @@ + /* ":new" or ":tabnew" without argument: edit an new empty buffer */ + setpcmark(); + (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE, +- ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0)); ++ ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0), ++ old_curwin == NULL ? curwin : NULL); + } + else if ((eap->cmdidx != CMD_split + #ifdef FEAT_VERTSPLIT +@@ -7522,7 +7526,7 @@ + #ifdef FEAT_LISTCMDS + + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 ) + #endif +- ) == FAIL) ++ , old_curwin == NULL ? curwin : NULL) == FAIL) + { + /* Editing the file failed. If the window was split, close it. */ + #ifdef FEAT_WINDOWS +@@ -8749,8 +8753,8 @@ + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +- (void)mch_chdir((char *)globaldir); +- shorten_fnames(TRUE); ++ if (mch_chdir((char *)globaldir) == OK) ++ shorten_fnames(TRUE); + } + + failed |= (makeopens(fd, dirnow) == FAIL); +@@ -9506,24 +9510,50 @@ + break; + } + s = src + 1; ++ if (*s == '<') /* "#<99" uses v:oldfiles */ ++ ++s; + i = (int)getdigits(&s); + *usedlen = (int)(s - src); /* length of what we expand */ + +- buf = buflist_findnr(i); +- if (buf == NULL) ++ if (src[1] == '<') + { +- *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); ++ if (*usedlen < 2) ++ { ++ /* Should we give an error message for #<text? */ ++ *usedlen = 1; ++ return NULL; ++ } ++#ifdef FEAT_EVAL ++ result = list_find_str(get_vim_var_list(VV_OLDFILES), ++ (long)i); ++ if (result == NULL) ++ { ++ *errormsg = (char_u *)""; ++ return NULL; ++ } ++#else ++ *errormsg = (char_u *)_("E809: #< is not available without the +eval feature"); + return NULL; ++#endif + } +- if (lnump != NULL) +- *lnump = ECMD_LAST; +- if (buf->b_fname == NULL) ++ else + { +- result = (char_u *)""; +- valid = 0; /* Must have ":p:h" to be valid */ ++ buf = buflist_findnr(i); ++ if (buf == NULL) ++ { ++ *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); ++ return NULL; ++ } ++ if (lnump != NULL) ++ *lnump = ECMD_LAST; ++ if (buf->b_fname == NULL) ++ { ++ result = (char_u *)""; ++ valid = 0; /* Must have ":p:h" to be valid */ ++ } ++ else ++ result = buf->b_fname; + } +- else +- result = buf->b_fname; + break; + + #ifdef FEAT_SEARCHPATH +@@ -9541,6 +9571,15 @@ + #ifdef FEAT_AUTOCMD + case SPEC_AFILE: /* file name for autocommand */ + result = autocmd_fname; ++ if (result != NULL && !autocmd_fname_full) ++ { ++ /* Still need to turn the fname into a full path. It is ++ * postponed to avoid a delay when <afile> is not used. */ ++ autocmd_fname_full = TRUE; ++ result = FullName_save(autocmd_fname, FALSE); ++ vim_free(autocmd_fname); ++ autocmd_fname = result; ++ } + if (result == NULL) + { + *errormsg = (char_u *)_("E495: no autocommand file name to substitute for "<afile>""); +@@ -10689,7 +10728,8 @@ + p_viminfo = (char_u *)"'100"; + if (eap->cmdidx == CMD_rviminfo) + { +- if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL) ++ if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS ++ | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL) + EMSG(_("E195: Cannot open viminfo file for reading")); + } + else +diff -Naur vim72.orig/src/ex_getln.c vim72/src/ex_getln.c +--- vim72.orig/src/ex_getln.c 2008-08-08 10:31:33.000000000 +0100 ++++ vim72/src/ex_getln.c 2008-12-06 11:37:50.000000000 +0000 +@@ -31,6 +31,8 @@ + int cmdattr; /* attributes for prompt */ + int overstrike; /* Typing mode on the command line. Shared by + getcmdline() and put_on_cmdline(). */ ++ expand_T *xpc; /* struct being used for expansion, xp_pattern ++ may point into cmdbuff */ + int xp_context; /* type of expansion */ + # ifdef FEAT_EVAL + char_u *xp_arg; /* user-defined expansion arg */ +@@ -38,7 +40,11 @@ + # endif + }; + +-static struct cmdline_info ccline; /* current cmdline_info */ ++/* The current cmdline_info. It is initialized in getcmdline() and after that ++ * used by other functions. When invoking getcmdline() recursively it needs ++ * to be saved with save_cmdline() and restored with restore_cmdline(). ++ * TODO: make it local to getcmdline() and pass it around. */ ++static struct cmdline_info ccline; + + static int cmd_showtail; /* Only show path tail in lists ? */ + +@@ -238,6 +244,7 @@ + } + + ExpandInit(&xpc); ++ ccline.xpc = &xpc; + + #ifdef FEAT_RIGHTLEFT + if (curwin->w_p_rl && *curwin->w_p_rlc == 's' +@@ -408,9 +415,10 @@ + #endif + + /* +- * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>). ++ * When there are matching completions to select <S-Tab> works like ++ * CTRL-P (unless 'wc' is <S-Tab>). + */ +- if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1) ++ if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0) + c = Ctrl_P; + + #ifdef FEAT_WILDMENU +@@ -1513,6 +1521,7 @@ + int old_firstc; + + vim_free(ccline.cmdbuff); ++ xpc.xp_context = EXPAND_NOTHING; + if (hiscnt == hislen) + p = lookfor; /* back to the old one */ + else +@@ -1839,6 +1848,7 @@ + #endif + + ExpandCleanup(&xpc); ++ ccline.xpc = NULL; + + #ifdef FEAT_SEARCH_EXTRA + if (did_incsearch) +@@ -2508,6 +2518,20 @@ + } + mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1); + vim_free(p); ++ ++ if (ccline.xpc != NULL ++ && ccline.xpc->xp_pattern != NULL ++ && ccline.xpc->xp_context != EXPAND_NOTHING ++ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) ++ { ++ int i = (int)(ccline.xpc->xp_pattern - p); ++ ++ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted ++ * to point into the newly allocated memory. */ ++ if (i >= 0 && i <= ccline.cmdlen) ++ ccline.xpc->xp_pattern = ccline.cmdbuff + i; ++ } ++ + return OK; + } + +@@ -2875,6 +2899,7 @@ + prev_ccline = ccline; + ccline.cmdbuff = NULL; + ccline.cmdprompt = NULL; ++ ccline.xpc = NULL; + } + + /* +@@ -3582,6 +3607,7 @@ + ExpandInit(xp) + expand_T *xp; + { ++ xp->xp_pattern = NULL; + xp->xp_backslash = XP_BS_NONE; + #ifndef BACKSLASH_IN_FILENAME + xp->xp_shell = FALSE; +@@ -4871,7 +4897,7 @@ + if (s == NULL) + return FAIL; + sprintf((char *)s, "%s/%s*.vim", dirname, pat); +- all = globpath(p_rtp, s); ++ all = globpath(p_rtp, s, 0); + vim_free(s); + if (all == NULL) + return FAIL; +@@ -4912,9 +4938,10 @@ + * newlines. Returns NULL for an error or no matches. + */ + char_u * +-globpath(path, file) ++globpath(path, file, expand_options) + char_u *path; + char_u *file; ++ int expand_options; + { + expand_T xpc; + char_u *buf; +@@ -4943,10 +4970,10 @@ + { + add_pathsep(buf); + STRCAT(buf, file); +- if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL +- && num_p > 0) ++ if (ExpandFromContext(&xpc, buf, &num_p, &p, ++ WILD_SILENT|expand_options) != FAIL && num_p > 0) + { +- ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT); ++ ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options); + for (len = 0, i = 0; i < num_p; ++i) + len += (int)STRLEN(p[i]) + 1; + +@@ -6025,7 +6052,7 @@ + cmdwin_type = '-'; + + /* Create the command-line buffer empty. */ +- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); ++ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); + (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE); + set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); +diff -Naur vim72.orig/src/feature.h vim72/src/feature.h +--- vim72.orig/src/feature.h 2008-08-06 12:00:39.000000000 +0100 ++++ vim72/src/feature.h 2008-12-06 11:37:49.000000000 +0000 +@@ -767,9 +767,13 @@ + + /* + * +browse ":browse" command. ++ * or just the ":browse" command modifier + */ +-#if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) +-# define FEAT_BROWSE ++#if defined(FEAT_NORMAL) ++# define FEAT_BROWSE_CMD ++# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) ++# define FEAT_BROWSE ++# endif + #endif + + /* +diff -Naur vim72.orig/src/fileio.c vim72/src/fileio.c +--- vim72.orig/src/fileio.c 2008-08-06 12:01:03.000000000 +0100 ++++ vim72/src/fileio.c 2008-12-06 11:37:50.000000000 +0000 +@@ -932,7 +932,10 @@ + else + { + if (eap != NULL && eap->force_ff != 0) ++ { + fileformat = get_fileformat_force(curbuf, eap); ++ try_unix = try_dos = try_mac = FALSE; ++ } + else if (curbuf->b_p_bin) + fileformat = EOL_UNIX; /* binary: use Unix format */ + else if (*p_ffs == NUL) +@@ -2211,7 +2214,7 @@ + { + /* Use stderr for stdin, makes shell commands work. */ + close(0); +- dup(2); ++ ignored = dup(2); + } + #endif + +@@ -2341,11 +2344,6 @@ + STRCAT(IObuff, _("[CR missing]")); + c = TRUE; + } +- if (ff_error == EOL_MAC) +- { +- STRCAT(IObuff, _("[NL found]")); +- c = TRUE; +- } + if (split) + { + STRCAT(IObuff, _("[long lines split]")); +@@ -2711,7 +2709,7 @@ + { + if (!curbuf->b_marks_read && get_viminfo_parameter(''') > 0 + && curbuf->b_ffname != NULL) +- read_viminfo(NULL, FALSE, TRUE, FALSE); ++ read_viminfo(NULL, VIF_WANT_MARKS); + + /* Always set b_marks_read; needed when 'viminfo' is changed to include + * the ' parameter after opening a buffer. */ +@@ -3451,7 +3449,7 @@ + { + # ifdef UNIX + # ifdef HAVE_FCHOWN +- fchown(fd, st_old.st_uid, st_old.st_gid); ++ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); + # endif + if (mch_stat((char *)IObuff, &st) < 0 + || st.st_uid != st_old.st_uid +@@ -4367,7 +4365,7 @@ + || st.st_uid != st_old.st_uid + || st.st_gid != st_old.st_gid) + { +- fchown(fd, st_old.st_uid, st_old.st_gid); ++ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); + if (perm >= 0) /* set permission again, may have changed */ + (void)mch_setperm(wfname, perm); + } +@@ -5550,9 +5548,10 @@ + name = "ucs-4le"; /* FF FE 00 00 */ + len = 4; + } +- else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L)) ++ else if (flags == (FIO_UCS2 | FIO_ENDIAN_L)) + name = "ucs-2le"; /* FF FE */ +- else if (flags == (FIO_UTF16 | FIO_ENDIAN_L)) ++ else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L)) ++ /* utf-16le is preferred, it also works for ucs-2le text */ + name = "utf-16le"; /* FF FE */ + } + else if (p[0] == 0xfe && p[1] == 0xff +@@ -6031,9 +6030,9 @@ + { + tbuf[FGETS_SIZE - 2] = NUL; + #ifdef USE_CR +- fgets_cr((char *)tbuf, FGETS_SIZE, fp); ++ ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp); + #else +- fgets((char *)tbuf, FGETS_SIZE, fp); ++ ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp); + #endif + } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n'); + } +@@ -8523,6 +8522,7 @@ + char_u *save_sourcing_name; + linenr_T save_sourcing_lnum; + char_u *save_autocmd_fname; ++ int save_autocmd_fname_full; + int save_autocmd_bufnr; + char_u *save_autocmd_match; + int save_autocmd_busy; +@@ -8601,6 +8601,7 @@ + * Save the autocmd_* variables and info about the current buffer. + */ + save_autocmd_fname = autocmd_fname; ++ save_autocmd_fname_full = autocmd_fname_full; + save_autocmd_bufnr = autocmd_bufnr; + save_autocmd_match = autocmd_match; + save_autocmd_busy = autocmd_busy; +@@ -8618,14 +8619,15 @@ + if (fname != NULL && *fname != NUL) + autocmd_fname = fname; + else if (buf != NULL) +- autocmd_fname = buf->b_fname; ++ autocmd_fname = buf->b_ffname; + else + autocmd_fname = NULL; + } + else + autocmd_fname = fname_io; + if (autocmd_fname != NULL) +- autocmd_fname = FullName_save(autocmd_fname, FALSE); ++ autocmd_fname = vim_strsave(autocmd_fname); ++ autocmd_fname_full = FALSE; /* call FullName_save() later */ + + /* + * Set the buffer number to be used for <abuf>. +@@ -8810,6 +8812,7 @@ + sourcing_lnum = save_sourcing_lnum; + vim_free(autocmd_fname); + autocmd_fname = save_autocmd_fname; ++ autocmd_fname_full = save_autocmd_fname_full; + autocmd_bufnr = save_autocmd_bufnr; + autocmd_match = save_autocmd_match; + #ifdef FEAT_EVAL +@@ -8918,7 +8921,7 @@ + { + apc->curpat = NULL; + +- /* only use a pattern when it has not been removed, has commands and ++ /* Only use a pattern when it has not been removed, has commands and + * the group matches. For buffer-local autocommands only check the + * buffer number. */ + if (ap->pat != NULL && ap->cmds != NULL +@@ -9104,7 +9107,7 @@ + set_context_in_autocmd(xp, arg, doautocmd) + expand_T *xp; + char_u *arg; +- int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */ ++ int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */ + { + char_u *p; + int group; +diff -Naur vim72.orig/src/fold.c vim72/src/fold.c +--- vim72.orig/src/fold.c 2008-08-06 12:01:12.000000000 +0100 ++++ vim72/src/fold.c 2008-12-06 11:37:50.000000000 +0000 +@@ -48,7 +48,7 @@ + static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); + static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum)); + static void checkupdate __ARGS((win_T *wp)); +-static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open)); ++static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open)); + static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep)); + static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep)); + static void foldOpenNested __ARGS((fold_T *fpr)); +@@ -1241,10 +1241,10 @@ + * Repeat "count" times. + */ + static void +-setFoldRepeat(lnum, count, open) ++setFoldRepeat(lnum, count, do_open) + linenr_T lnum; + long count; +- int open; ++ int do_open; + { + int done; + long n; +@@ -1252,7 +1252,7 @@ + for (n = 0; n < count; ++n) + { + done = DONE_NOTHING; +- (void)setManualFold(lnum, open, FALSE, &done); ++ (void)setManualFold(lnum, do_open, FALSE, &done); + if (!(done & DONE_ACTION)) + { + /* Only give an error message when no fold could be opened. */ +diff -Naur vim72.orig/src/getchar.c vim72/src/getchar.c +--- vim72.orig/src/getchar.c 2008-07-22 17:57:48.000000000 +0100 ++++ vim72/src/getchar.c 2008-12-06 11:37:50.000000000 +0000 +@@ -4702,7 +4702,7 @@ + return FAIL; + if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) + return FAIL; +- if (fprintf(fd, cmd) < 0) ++ if (fputs(cmd, fd) < 0) + return FAIL; + if (buf != NULL && fputs(" <buffer>", fd) < 0) + return FAIL; +@@ -4801,7 +4801,7 @@ + } + if (IS_SPECIAL(c) || modifiers) /* special key */ + { +- if (fprintf(fd, (char *)get_special_key_name(c, modifiers)) < 0) ++ if (fputs((char *)get_special_key_name(c, modifiers), fd) < 0) + return FAIL; + continue; + } +diff -Naur vim72.orig/src/globals.h vim72/src/globals.h +--- vim72.orig/src/globals.h 2008-07-26 12:53:29.000000000 +0100 ++++ vim72/src/globals.h 2008-12-06 11:37:50.000000000 +0000 +@@ -1022,6 +1022,7 @@ + #endif + #ifdef FEAT_AUTOCMD + EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */ ++EXTERN int autocmd_fname_full; /* autocmd_fname is full path */ + EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */ + EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */ + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ +@@ -1548,6 +1549,14 @@ + EXTERN time_t starttime; + + /* ++ * Some compilers warn for not using a return value, but in some situations we ++ * can't do anything useful with the value. Assign to this variable to avoid ++ * the warning. ++ */ ++EXTERN int ignored; ++EXTERN char *ignoredp; ++ ++/* + * Optional Farsi support. Include it here, so EXTERN and INIT are defined. + */ + #ifdef FEAT_FKMAP +diff -Naur vim72.orig/src/gui_at_sb.c vim72/src/gui_at_sb.c +--- vim72.orig/src/gui_at_sb.c 2004-06-07 15:32:25.000000000 +0100 ++++ vim72/src/gui_at_sb.c 2008-12-06 11:37:50.000000000 +0000 +@@ -1078,6 +1078,12 @@ + Cardinal *num_params; /* unused */ + { + ScrollbarWidget sbw = (ScrollbarWidget)w; ++ /* Use a union to avoid a warning for the weird conversion from float to ++ * XtPointer. Comes from Xaw/Scrollbar.c. */ ++ union { ++ XtPointer xtp; ++ float xtf; ++ } xtpf; + + if (LookAhead(w, event)) + return; +@@ -1085,7 +1091,8 @@ + /* thumbProc is not pretty, but is necessary for backwards + compatibility on those architectures for which it work{s,ed}; + the intent is to pass a (truncated) float by value. */ +- XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top); ++ xtpf.xtf = sbw->scrollbar.top; ++ XtCallCallbacks(w, XtNthumbProc, xtpf.xtp); + XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); + } + +diff -Naur vim72.orig/src/gui.c vim72/src/gui.c +--- vim72.orig/src/gui.c 2008-07-27 20:32:14.000000000 +0100 ++++ vim72/src/gui.c 2008-12-06 11:37:50.000000000 +0000 +@@ -139,7 +139,7 @@ + /* The read returns when the child closes the pipe (or when + * the child dies for some reason). */ + close(pipefd[1]); +- (void)read(pipefd[0], &dummy, (size_t)1); ++ ignored = (int)read(pipefd[0], &dummy, (size_t)1); + close(pipefd[0]); + } + +@@ -3241,7 +3241,7 @@ + i = Rows; + gui_update_tabline(); + Rows = i; +- need_set_size = RESIZE_VERT; ++ need_set_size |= RESIZE_VERT; + if (using_tabline) + fix_size = TRUE; + if (!gui_use_tabline()) +@@ -3275,9 +3275,9 @@ + if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) + { + if (i == SBAR_BOTTOM) +- need_set_size = RESIZE_VERT; ++ need_set_size |= RESIZE_VERT; + else +- need_set_size = RESIZE_HOR; ++ need_set_size |= RESIZE_HOR; + if (gui.which_scrollbars[i]) + fix_size = TRUE; + } +@@ -3297,7 +3297,7 @@ + gui_mch_enable_menu(gui.menu_is_active); + Rows = i; + prev_menu_is_active = gui.menu_is_active; +- need_set_size = RESIZE_VERT; ++ need_set_size |= RESIZE_VERT; + if (gui.menu_is_active) + fix_size = TRUE; + } +@@ -3308,7 +3308,7 @@ + { + gui_mch_show_toolbar(using_toolbar); + prev_toolbar = using_toolbar; +- need_set_size = RESIZE_VERT; ++ need_set_size |= RESIZE_VERT; + if (using_toolbar) + fix_size = TRUE; + } +@@ -3318,7 +3318,7 @@ + { + gui_mch_enable_footer(using_footer); + prev_footer = using_footer; +- need_set_size = RESIZE_VERT; ++ need_set_size |= RESIZE_VERT; + if (using_footer) + fix_size = TRUE; + } +@@ -3330,10 +3330,11 @@ + prev_tearoff = using_tearoff; + } + #endif +- if (need_set_size) ++ if (need_set_size != 0) + { + #ifdef FEAT_GUI_GTK +- long c = Columns; ++ long prev_Columns = Columns; ++ long prev_Rows = Rows; + #endif + /* Adjust the size of the window to make the text area keep the + * same size and to avoid that part of our window is off-screen +@@ -3349,11 +3350,14 @@ + * If you remove this, please test this command for resizing + * effects (with optional left scrollbar): ":vsp|q|vsp|q|vsp|q". + * Don't do this while starting up though. +- * And don't change Rows, it may have be reduced intentionally +- * when adding menu/toolbar/tabline. */ +- if (!gui.starting) ++ * Don't change Rows when adding menu/toolbar/tabline. ++ * Don't change Columns when adding vertical toolbar. */ ++ if (!gui.starting && need_set_size != (RESIZE_VERT | RESIZE_HOR)) + (void)char_avail(); +- Columns = c; ++ if ((need_set_size & RESIZE_VERT) == 0) ++ Rows = prev_Rows; ++ if ((need_set_size & RESIZE_HOR) == 0) ++ Columns = prev_Columns; + #endif + } + #ifdef FEAT_WINDOWS +diff -Naur vim72.orig/src/gui_gtk_x11.c vim72/src/gui_gtk_x11.c +--- vim72.orig/src/gui_gtk_x11.c 2008-07-04 11:46:24.000000000 +0100 ++++ vim72/src/gui_gtk_x11.c 2008-12-06 11:37:50.000000000 +0000 +@@ -4070,14 +4070,14 @@ + + if (mask & (XValue | YValue)) + { +- int w, h; +- gui_mch_get_screen_dimensions(&w, &h); +- h += p_ghr + get_menu_tool_height(); +- w += get_menu_tool_width(); ++ int ww, hh; ++ gui_mch_get_screen_dimensions(&ww, &hh); ++ hh += p_ghr + get_menu_tool_height(); ++ ww += get_menu_tool_width(); + if (mask & XNegative) +- x += w - pixel_width; ++ x += ww - pixel_width; + if (mask & YNegative) +- y += h - pixel_height; ++ y += hh - pixel_height; + #ifdef HAVE_GTK2 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); + #else +diff -Naur vim72.orig/src/gui_x11.c vim72/src/gui_x11.c +--- vim72.orig/src/gui_x11.c 2008-06-08 16:13:45.000000000 +0100 ++++ vim72/src/gui_x11.c 2008-12-06 11:37:49.000000000 +0000 +@@ -2450,7 +2450,7 @@ + *colorPtr = colortable[closest]; + } + +- free(colortable); ++ vim_free(colortable); + return OK; + } + +diff -Naur vim72.orig/src/gui_xmdlg.c vim72/src/gui_xmdlg.c +--- vim72.orig/src/gui_xmdlg.c 2008-06-21 17:05:32.000000000 +0100 ++++ vim72/src/gui_xmdlg.c 2008-12-06 11:37:50.000000000 +0000 +@@ -369,10 +369,10 @@ + char buf[TEMP_BUF_SIZE]; + XmString items[MAX_ENTRIES_IN_LIST]; + int i; +- int index; ++ int idx; + +- for (index = (int)ENCODING; index < (int)NONE; ++index) +- count[index] = 0; ++ for (idx = (int)ENCODING; idx < (int)NONE; ++idx) ++ count[idx] = 0; + + /* First we insert the wild char into every single list. */ + if (fix != ENCODING) +@@ -503,14 +503,14 @@ + /* + * Now loop trough the remaining lists and set them up. + */ +- for (index = (int)NAME; index < (int)NONE; ++index) ++ for (idx = (int)NAME; idx < (int)NONE; ++idx) + { + Widget w; + +- if (fix == (enum ListSpecifier)index) ++ if (fix == (enum ListSpecifier)idx) + continue; + +- switch ((enum ListSpecifier)index) ++ switch ((enum ListSpecifier)idx) + { + case NAME: + w = data->list[NAME]; +@@ -525,21 +525,21 @@ + w = (Widget)0; /* for lint */ + } + +- for (i = 0; i < count[index]; ++i) ++ for (i = 0; i < count[idx]; ++i) + { +- items[i] = XmStringCreateLocalized(list[index][i]); +- XtFree(list[index][i]); ++ items[i] = XmStringCreateLocalized(list[idx][i]); ++ XtFree(list[idx][i]); + } + XmListDeleteAllItems(w); +- XmListAddItems(w, items, count[index], 1); +- if (data->sel[index]) ++ XmListAddItems(w, items, count[idx], 1); ++ if (data->sel[idx]) + { + XmStringFree(items[0]); +- items[0] = XmStringCreateLocalized(data->sel[index]); ++ items[0] = XmStringCreateLocalized(data->sel[idx]); + XmListSelectItem(w, items[0], False); + XmListSetBottomItem(w, items[0]); + } +- for (i = 0; i < count[index]; ++i) ++ for (i = 0; i < count[idx]; ++i) + XmStringFree(items[i]); + } + } +@@ -695,14 +695,14 @@ + int n; + XmString str; + Arg args[4]; +- char *msg = _("no specific match"); ++ char *nomatch_msg = _("no specific match"); + + n = 0; +- str = XmStringCreateLocalized(msg); ++ str = XmStringCreateLocalized(nomatch_msg); + XtSetArg(args[n], XmNlabelString, str); ++n; + XtSetValues(data->sample, args, n); + apply_fontlist(data->sample); +- XmTextSetString(data->name, msg); ++ XmTextSetString(data->name, nomatch_msg); + XmStringFree(str); + + return False; +@@ -886,21 +886,21 @@ + { + int i; + int max; +- int index = 0; ++ int idx = 0; + int size; +- char str[128]; ++ char buf[128]; + + for (i = 0, max = 0; i < data->num; i++) + { +- get_part(fn(data, i), 7, str); +- size = atoi(str); ++ get_part(fn(data, i), 7, buf); ++ size = atoi(buf); + if ((size > max) && (size < MAX_DISPLAY_SIZE)) + { +- index = i; ++ idx = i; + max = size; + } + } +- strcpy(big_font, fn(data, index)); ++ strcpy(big_font, fn(data, idx)); + } + data->old = XLoadQueryFont(XtDisplay(parent), big_font); + data->old_list = gui_motif_create_fontlist(data->old); +@@ -1217,28 +1217,28 @@ + + if (i != 0) + { +- char name[TEMP_BUF_SIZE]; +- char style[TEMP_BUF_SIZE]; +- char size[TEMP_BUF_SIZE]; +- char encoding[TEMP_BUF_SIZE]; ++ char namebuf[TEMP_BUF_SIZE]; ++ char stylebuf[TEMP_BUF_SIZE]; ++ char sizebuf[TEMP_BUF_SIZE]; ++ char encodingbuf[TEMP_BUF_SIZE]; + char *found; + + found = names[0]; + +- name_part(found, name); +- style_part(found, style); +- size_part(found, size, data->in_pixels); +- encoding_part(found, encoding); +- +- if (strlen(name) > 0 +- && strlen(style) > 0 +- && strlen(size) > 0 +- && strlen(encoding) > 0) ++ name_part(found, namebuf); ++ style_part(found, stylebuf); ++ size_part(found, sizebuf, data->in_pixels); ++ encoding_part(found, encodingbuf); ++ ++ if (strlen(namebuf) > 0 ++ && strlen(stylebuf) > 0 ++ && strlen(sizebuf) > 0 ++ && strlen(encodingbuf) > 0) + { +- data->sel[NAME] = XtNewString(name); +- data->sel[STYLE] = XtNewString(style); +- data->sel[SIZE] = XtNewString(size); +- data->sel[ENCODING] = XtNewString(encoding); ++ data->sel[NAME] = XtNewString(namebuf); ++ data->sel[STYLE] = XtNewString(stylebuf); ++ data->sel[SIZE] = XtNewString(sizebuf); ++ data->sel[ENCODING] = XtNewString(encodingbuf); + data->font_name = XtNewString(names[0]); + display_sample(data); + XmTextSetString(data->name, data->font_name); +diff -Naur vim72.orig/src/gui_xmebw.c vim72/src/gui_xmebw.c +--- vim72.orig/src/gui_xmebw.c 2007-09-06 11:57:51.000000000 +0100 ++++ vim72/src/gui_xmebw.c 2008-12-06 11:37:50.000000000 +0000 +@@ -1256,7 +1256,7 @@ + } + else + { +- int adjust = 0; ++ adjust = 0; + + #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) + /* +@@ -1268,12 +1268,11 @@ + { + case XmEXTERNAL_HIGHLIGHT: + adjust = (eb->primitive.highlight_thickness - +- (eb->pushbutton.default_button_shadow_thickness ? +- Xm3D_ENHANCE_PIXEL : 0)); ++ (eb->pushbutton.default_button_shadow_thickness ++ ? Xm3D_ENHANCE_PIXEL : 0)); + break; + + case XmINTERNAL_HIGHLIGHT: +- adjust = 0; + break; + + default: +diff -Naur vim72.orig/src/if_cscope.c vim72/src/if_cscope.c +--- vim72.orig/src/if_cscope.c 2008-06-24 17:32:34.000000000 +0100 ++++ vim72/src/if_cscope.c 2008-12-06 11:37:48.000000000 +0000 +@@ -74,7 +74,7 @@ + { "add", cs_add, + N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 }, + { "find", cs_find, +- N_("Query for a pattern"), FIND_USAGE, 1 }, ++ N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 }, + { "help", cs_help, + N_("Show this message"), "help", 0 }, + { "kill", cs_kill, +@@ -1180,7 +1180,16 @@ + (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), + cmdp->name, _(cmdp->help), cmdp->usage); + if (strcmp(cmdp->name, "find") == 0) +- MSG_PUTS(FIND_HELP); ++ MSG_PUTS(_("\n" ++ " c: Find functions calling this function\n" ++ " d: Find functions called by this function\n" ++ " e: Find this egrep pattern\n" ++ " f: Find this file\n" ++ " g: Find this definition\n" ++ " i: Find files #including this file\n" ++ " s: Find this C symbol\n" ++ " t: Find assignments to\n")); ++ + cmdp++; + } + +diff -Naur vim72.orig/src/if_cscope.h vim72/src/if_cscope.h +--- vim72.orig/src/if_cscope.h 2007-09-02 15:51:08.000000000 +0100 ++++ vim72/src/if_cscope.h 2008-12-06 11:37:48.000000000 +0000 +@@ -42,17 +42,6 @@ + * f 7name Find this file + * i 8name Find files #including this file + */ +-#define FIND_USAGE "find c|d|e|f|g|i|s|t name" +-#define FIND_HELP "\n\ +- c: Find functions calling this function\n\ +- d: Find functions called by this function\n\ +- e: Find this egrep pattern\n\ +- f: Find this file\n\ +- g: Find this definition\n\ +- i: Find files #including this file\n\ +- s: Find this C symbol\n\ +- t: Find assignments to\n" +- + + typedef struct { + char * name; +diff -Naur vim72.orig/src/if_perl.xs vim72/src/if_perl.xs +--- vim72.orig/src/if_perl.xs 2008-07-17 21:55:09.000000000 +0100 ++++ vim72/src/if_perl.xs 2008-12-06 11:37:50.000000000 +0000 +@@ -136,6 +136,9 @@ + # define Perl_newXS_flags dll_Perl_newXS_flags + #endif + # define Perl_sv_free dll_Perl_sv_free ++# if (PERL_REVISION == 5) && (PERL_VERSION >= 10) ++# define Perl_sv_free2 dll_Perl_sv_free2 ++# endif + # define Perl_sv_isa dll_Perl_sv_isa + # define Perl_sv_magic dll_Perl_sv_magic + # define Perl_sv_setiv dll_Perl_sv_setiv +@@ -163,7 +166,7 @@ + # define Perl_Isv_yes_ptr dll_Perl_Isv_yes_ptr + # define boot_DynaLoader dll_boot_DynaLoader + +-# define Perl_sys_init3 dll_Perl_sys_init3 ++# define Perl_sys_init dll_Perl_sys_init + # define Perl_sys_term dll_Perl_sys_term + # define Perl_ISv_ptr dll_Perl_ISv_ptr + # define Perl_Istack_max_ptr dll_Perl_Istack_max_ptr +@@ -268,7 +271,8 @@ + static void (*boot_DynaLoader)_((pTHX_ CV*)); + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) +-static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env); ++static void (*Perl_sv_free2)(pTHX_ SV*); ++static void (*Perl_sys_init)(int* argc, char*** argv); + static void (*Perl_sys_term)(void); + static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); + static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); +@@ -367,7 +371,8 @@ + {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, + {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, + #else +- {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3}, ++ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, ++ {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, + {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, + {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, + {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, +@@ -455,7 +460,7 @@ + static char *argv[] = { "", "-e", "" }; + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) +- Perl_sys_init3(&argc, (char***)&argv, NULL); ++ Perl_sys_init(&argc, (char***)&argv); + #endif + perl_interp = perl_alloc(); + perl_construct(perl_interp); +diff -Naur vim72.orig/src/if_python.c vim72/src/if_python.c +--- vim72.orig/src/if_python.c 2008-07-17 22:09:32.000000000 +0100 ++++ vim72/src/if_python.c 2008-12-06 11:37:50.000000000 +0000 +@@ -531,6 +531,12 @@ + if (PythonMod_Init()) + goto fail; + ++ /* Remove the element from sys.path that was added because of our ++ * argv[0] value in PythonMod_Init(). Previously we used an empty ++ * string, but dependinding on the OS we then get an empty entry or ++ * the current directory in sys.path. */ ++ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); ++ + /* the first python thread is vim's, release the lock */ + Python_SaveThread(); + +@@ -2345,7 +2351,8 @@ + { + PyObject *mod; + PyObject *dict; +- static char *(argv[2]) = {"", NULL}; ++ /* The special value is removed from sys.path in Python_Init(). */ ++ static char *(argv[2]) = {"/must>not&exist/foo", NULL}; + + /* Fixups... */ + BufferType.ob_type = &PyType_Type; +diff -Naur vim72.orig/src/if_xcmdsrv.c vim72/src/if_xcmdsrv.c +--- vim72.orig/src/if_xcmdsrv.c 2008-07-18 14:05:03.000000000 +0100 ++++ vim72/src/if_xcmdsrv.c 2008-12-06 11:37:49.000000000 +0000 +@@ -736,7 +736,7 @@ + + serverReply.ga_len; + e.id = w; + ga_init2(&e.strings, 1, 100); +- memcpy(p, &e, sizeof(e)); ++ mch_memmove(p, &e, sizeof(e)); + serverReply.ga_len++; + } + } +@@ -1018,7 +1018,7 @@ + p++; + count = numItems - (p - regProp); + if (count > 0) +- memcpy(entry, p, count); ++ mch_memmove(entry, p, count); + XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, + 8, PropModeReplace, regProp, + (int)(numItems - (p - entry))); +@@ -1072,7 +1072,7 @@ + p++; + lastHalf = numItems - (p - regProp); + if (lastHalf > 0) +- memcpy(entry, p, lastHalf); ++ mch_memmove(entry, p, lastHalf); + numItems = (entry - regProp) + lastHalf; + p = entry; + continue; +diff -Naur vim72.orig/src/main.c vim72/src/main.c +--- vim72.orig/src/main.c 2008-07-24 09:40:56.000000000 +0100 ++++ vim72/src/main.c 2008-12-06 11:37:50.000000000 +0000 +@@ -645,11 +645,12 @@ + + #ifdef FEAT_VIMINFO + /* +- * Read in registers, history etc, but not marks, from the viminfo file ++ * Read in registers, history etc, but not marks, from the viminfo file. ++ * This is where v:oldfiles gets filled. + */ + if (*p_viminfo != NUL) + { +- read_viminfo(NULL, TRUE, FALSE, FALSE); ++ read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES); + TIME_MSG("reading viminfo"); + } + #endif +@@ -1457,7 +1458,8 @@ + ++initstr; + } + +- if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k') ++ /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */ ++ if (TOLOWER_ASC(initstr[0]) == 'g') + { + main_start_gui(); + #ifdef FEAT_GUI +@@ -1508,7 +1510,8 @@ + early_arg_scan(parmp) + mparm_T *parmp; + { +-#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) ++#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ ++ || !defined(FEAT_NETBEANS_INTG) + int argc = parmp->argc; + char **argv = parmp->argv; + int i; +@@ -1580,6 +1583,14 @@ + else if (STRICMP(argv[i], "--echo-wid") == 0) + echo_wid_arg = TRUE; + # endif ++# ifndef FEAT_NETBEANS_INTG ++ else if (strncmp(argv[i], "-nb", (size_t)3) == 0) ++ { ++ mch_errmsg(_("'-nb' cannot be used: not enabled at compile time\n")); ++ mch_exit(2); ++ } ++# endif ++ + } + #endif + } +@@ -2361,7 +2372,7 @@ + * Is there any other system that cannot do this? + */ + close(0); +- dup(2); ++ ignored = dup(2); + #endif + } + +@@ -2586,7 +2597,7 @@ + # endif + (void)do_ecmd(0, arg_idx < GARGCOUNT + ? alist_name(&GARGLIST[arg_idx]) : NULL, +- NULL, NULL, ECMD_LASTL, ECMD_HIDE); ++ NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin); + # ifdef HAS_SWAP_EXISTS_ACTION + if (swap_exists_did_quit) + { +diff -Naur vim72.orig/src/mark.c vim72/src/mark.c +--- vim72.orig/src/mark.c 2008-08-08 23:06:49.000000000 +0100 ++++ vim72/src/mark.c 2008-12-06 11:37:49.000000000 +0000 +@@ -1627,15 +1627,17 @@ + + /* + * Handle marks in the viminfo file: +- * fp_out == NULL read marks for current buffer only +- * fp_out != NULL copy marks for buffers not in buffer list ++ * fp_out != NULL: copy marks for buffers not in buffer list ++ * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only ++ * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles + */ + void +-copy_viminfo_marks(virp, fp_out, count, eof) ++copy_viminfo_marks(virp, fp_out, count, eof, flags) + vir_T *virp; + FILE *fp_out; + int count; + int eof; ++ int flags; + { + char_u *line = virp->vir_line; + buf_T *buf; +@@ -1647,10 +1649,23 @@ + char_u *p; + char_u *name_buf; + pos_T pos; ++#ifdef FEAT_EVAL ++ list_T *list = NULL; ++#endif + + if ((name_buf = alloc(LSIZE)) == NULL) + return; + *name_buf = NUL; ++ ++#ifdef FEAT_EVAL ++ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT))) ++ { ++ list = list_alloc(); ++ if (list != NULL) ++ set_vim_var_list(VV_OLDFILES, list); ++ } ++#endif ++ + num_marked_files = get_viminfo_parameter('''); + while (!eof && (count < num_marked_files || fp_out == NULL)) + { +@@ -1681,6 +1696,11 @@ + p++; + *p = NUL; + ++#ifdef FEAT_EVAL ++ if (list != NULL) ++ list_append_string(list, str, -1); ++#endif ++ + /* + * If fp_out == NULL, load marks for current buffer. + * If fp_out != NULL, copy marks for buffers not in buflist. +@@ -1688,7 +1708,7 @@ + load_marks = copy_marks_out = FALSE; + if (fp_out == NULL) + { +- if (curbuf->b_ffname != NULL) ++ if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL) + { + if (*name_buf == NUL) /* only need to do this once */ + home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE); +diff -Naur vim72.orig/src/mbyte.c vim72/src/mbyte.c +--- vim72.orig/src/mbyte.c 2008-07-14 13:38:05.000000000 +0100 ++++ vim72/src/mbyte.c 2008-12-06 11:37:50.000000000 +0000 +@@ -717,7 +717,7 @@ + * where mblen() returns 0 for invalid character. + * Therefore, following condition includes 0. + */ +- (void)mblen(NULL, 0); /* First reset the state. */ ++ ignored = mblen(NULL, 0); /* First reset the state. */ + if (mblen(buf, (size_t)1) <= 0) + n = 2; + else +@@ -2540,7 +2540,6 @@ + return (int)(p - q); + } + +-#if defined(FEAT_EVAL) || defined(PROTO) + /* + * Copy a character from "*fp" to "*tp" and advance the pointers. + */ +@@ -2555,7 +2554,6 @@ + *tp += l; + *fp += l; + } +-#endif + + /* + * Return the offset from "p" to the first byte of a character. When "p" is +@@ -3133,7 +3131,7 @@ + else + s = p + 1; + } +- for (i = 0; s[i] != NUL && s + i < buf + sizeof(buf) - 1; ++i) ++ for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i) + { + if (s[i] == '_' || s[i] == '-') + buf[i] = '-'; +@@ -5280,7 +5278,7 @@ + + /*ARGSUSED*/ + static void +-preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data) ++preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("xim_decide_input_style()\n"); +@@ -5314,7 +5312,7 @@ + + /*ARGSUSED*/ + static void +-preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data) ++preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + XIMPreeditDrawCallbackStruct *draw_data; + XIMText *text; +@@ -5386,7 +5384,7 @@ + draw_feedback = (char *)alloc(draw_data->chg_first + + text->length); + else +- draw_feedback = realloc(draw_feedback, ++ draw_feedback = vim_realloc(draw_feedback, + draw_data->chg_first + text->length); + if (draw_feedback != NULL) + { +@@ -5455,7 +5453,7 @@ + + /*ARGSUSED*/ + static void +-preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data) ++preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_caret_cbproc()\n"); +@@ -5464,7 +5462,7 @@ + + /*ARGSUSED*/ + static void +-preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data) ++preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_done_cbproc()\n"); +@@ -6103,7 +6101,7 @@ + + /* 1. codepage/UTF-8 -> ucs-2. */ + if (vcp->vc_cpfrom == 0) +- tmp_len = utf8_to_ucs2(ptr, len, NULL, NULL); ++ tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); + else + tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, + ptr, len, 0, 0); +@@ -6111,13 +6109,13 @@ + if (tmp == NULL) + break; + if (vcp->vc_cpfrom == 0) +- utf8_to_ucs2(ptr, len, tmp, unconvlenp); ++ utf8_to_utf16(ptr, len, tmp, unconvlenp); + else + MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len); + + /* 2. ucs-2 -> codepage/UTF-8. */ + if (vcp->vc_cpto == 0) +- retlen = ucs2_to_utf8(tmp, tmp_len, NULL); ++ retlen = utf16_to_utf8(tmp, tmp_len, NULL); + else + retlen = WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, 0, 0, 0, 0); +@@ -6125,7 +6123,7 @@ + if (retval != NULL) + { + if (vcp->vc_cpto == 0) +- ucs2_to_utf8(tmp, tmp_len, retval); ++ utf16_to_utf8(tmp, tmp_len, retval); + else + WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, retval, retlen, 0, 0); +diff -Naur vim72.orig/src/menu.c vim72/src/menu.c +--- vim72.orig/src/menu.c 2008-06-21 20:53:43.000000000 +0100 ++++ vim72/src/menu.c 2008-12-06 11:37:48.000000000 +0000 +@@ -1120,6 +1120,7 @@ + parent = menu; + menu = menu->children; + } ++ vim_free(path_name); + + /* Now we have found the matching menu, and we list the mappings */ + /* Highlight title */ +diff -Naur vim72.orig/src/message.c vim72/src/message.c +--- vim72.orig/src/message.c 2008-07-09 19:24:55.000000000 +0100 ++++ vim72/src/message.c 2008-12-06 11:37:50.000000000 +0000 +@@ -4585,61 +4585,62 @@ + if (remove_trailing_zeroes) + { + int i; +- char *p; ++ char *tp; + + /* Using %g or %G: remove superfluous zeroes. */ + if (fmt_spec == 'f') +- p = tmp + str_arg_l - 1; ++ tp = tmp + str_arg_l - 1; + else + { +- p = (char *)vim_strchr((char_u *)tmp, ++ tp = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +- if (p != NULL) ++ if (tp != NULL) + { + /* Remove superfluous '+' and leading + * zeroes from the exponent. */ +- if (p[1] == '+') ++ if (tp[1] == '+') + { + /* Change "1.0e+07" to "1.0e07" */ +- STRMOVE(p + 1, p + 2); ++ STRMOVE(tp + 1, tp + 2); + --str_arg_l; + } +- i = (p[1] == '-') ? 2 : 1; +- while (p[i] == '0') ++ i = (tp[1] == '-') ? 2 : 1; ++ while (tp[i] == '0') + { + /* Change "1.0e07" to "1.0e7" */ +- STRMOVE(p + i, p + i + 1); ++ STRMOVE(tp + i, tp + i + 1); + --str_arg_l; + } +- --p; ++ --tp; + } + } + +- if (p != NULL && !precision_specified) ++ if (tp != NULL && !precision_specified) + /* Remove trailing zeroes, but keep the one + * just after a dot. */ +- while (p > tmp + 2 && *p == '0' && p[-1] != '.') ++ while (tp > tmp + 2 && *tp == '0' ++ && tp[-1] != '.') + { +- STRMOVE(p, p + 1); +- --p; ++ STRMOVE(tp, tp + 1); ++ --tp; + --str_arg_l; + } + } + else + { +- char *p; ++ char *tp; + + /* Be consistent: some printf("%e") use 1.0e+12 + * and some 1.0e+012. Remove one zero in the last + * case. */ +- p = (char *)vim_strchr((char_u *)tmp, ++ tp = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +- if (p != NULL && (p[1] == '+' || p[1] == '-') +- && p[2] == '0' +- && vim_isdigit(p[3]) +- && vim_isdigit(p[4])) ++ if (tp != NULL && (tp[1] == '+' || tp[1] == '-') ++ && tp[2] == '0' ++ && vim_isdigit(tp[3]) ++ && vim_isdigit(tp[4])) + { +- STRMOVE(p + 2, p + 3); ++ STRMOVE(tp + 2, tp + 3); + --str_arg_l; + } + } +diff -Naur vim72.orig/src/misc1.c vim72/src/misc1.c +--- vim72.orig/src/misc1.c 2008-07-12 20:20:53.000000000 +0100 ++++ vim72/src/misc1.c 2008-12-06 11:37:50.000000000 +0000 +@@ -3245,9 +3245,9 @@ + + /* When using ":silent" assume that <CR> was entered. */ + if (mouse_used != NULL) +- MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): ")); ++ MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): ")); + else +- MSG_PUTS(_("Choice number (<Enter> cancels): ")); ++ MSG_PUTS(_("Type number and <Enter> (empty cancels): ")); + + /* Set the state such that text can be selected/copied/pasted and we still + * get mouse events. */ +@@ -8728,7 +8728,7 @@ + /* The active codepage differs from 'encoding'. Attempt using the + * wide function. If it fails because it is not implemented fall back + * to the non-wide version (for Windows 98) */ +- wn = enc_to_ucs2(buf, NULL); ++ wn = enc_to_utf16(buf, NULL); + if (wn != NULL) + { + hFind = FindFirstFileW(wn, &wfb); +@@ -8756,7 +8756,7 @@ + #ifdef WIN3264 + # ifdef FEAT_MBYTE + if (wn != NULL) +- p = ucs2_to_enc(wfb.cFileName, NULL); /* p is allocated here */ ++ p = utf16_to_enc(wfb.cFileName, NULL); /* p is allocated here */ + else + # endif + p = (char_u *)fb.cFileName; +@@ -8830,7 +8830,7 @@ + if (wn != NULL) + { + vim_free(wn); +- wn = enc_to_ucs2(buf, NULL); ++ wn = enc_to_utf16(buf, NULL); + if (wn != NULL) + hFind = FindFirstFileW(wn, &wfb); + } +diff -Naur vim72.orig/src/misc2.c vim72/src/misc2.c +--- vim72.orig/src/misc2.c 2008-07-23 20:12:56.000000000 +0100 ++++ vim72/src/misc2.c 2008-12-06 11:37:49.000000000 +0000 +@@ -873,7 +873,7 @@ + /* 3. check for available memory: call mch_avail_mem() */ + if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) + { +- vim_free((char *)p); /* System is low... no go! */ ++ free((char *)p); /* System is low... no go! */ + p = NULL; + } + else +@@ -1257,7 +1257,6 @@ + return escaped_string; + } + +-#if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO) + /* + * Return TRUE when 'shell' has "csh" in the tail. + */ +@@ -1266,9 +1265,7 @@ + { + return (strstr((char *)gettail(p_sh), "csh") != NULL); + } +-#endif + +-#if defined(FEAT_EVAL) || defined(PROTO) + /* + * Escape "string" for use as a shell argument with system(). + * This uses single quotes, except when we know we need to use double qoutes +@@ -1391,7 +1388,6 @@ + + return escaped_string; + } +-#endif + + /* + * Like vim_strsave(), but make all characters uppercase. +diff -Naur vim72.orig/src/move.c vim72/src/move.c +--- vim72.orig/src/move.c 2008-07-12 17:26:47.000000000 +0100 ++++ vim72/src/move.c 2008-12-06 11:37:49.000000000 +0000 +@@ -280,18 +280,20 @@ + + if (curwin->w_botline <= curbuf->b_ml.ml_line_count) + { +- if (curwin->w_cursor.lnum < curwin->w_botline +- && ((long)curwin->w_cursor.lnum ++ if (curwin->w_cursor.lnum < curwin->w_botline) ++ { ++ if (((long)curwin->w_cursor.lnum + >= (long)curwin->w_botline - p_so + #ifdef FEAT_FOLDING + || hasAnyFolding(curwin) + #endif + )) +- { ++ { + lineoff_T loff; + +- /* Cursor is above botline, check if there are 'scrolloff' +- * window lines below the cursor. If not, need to scroll. */ ++ /* Cursor is (a few lines) above botline, check if there are ++ * 'scrolloff' window lines below the cursor. If not, need to ++ * scroll. */ + n = curwin->w_empty_rows; + loff.lnum = curwin->w_cursor.lnum; + #ifdef FEAT_FOLDING +@@ -317,6 +319,10 @@ + if (n >= p_so) + /* sufficient context, no need to scroll */ + check_botline = FALSE; ++ } ++ else ++ /* sufficient context, no need to scroll */ ++ check_botline = FALSE; + } + if (check_botline) + { +@@ -509,6 +515,9 @@ + /* Approximate the value of w_botline */ + wp->w_botline += lnum - wp->w_topline; + wp->w_topline = lnum; ++#ifdef FEAT_AUTOCMD ++ wp->w_topline_was_set = TRUE; ++#endif + #ifdef FEAT_DIFF + wp->w_topfill = 0; + #endif +diff -Naur vim72.orig/src/netbeans.c vim72/src/netbeans.c +--- vim72.orig/src/netbeans.c 2008-07-13 17:19:54.000000000 +0100 ++++ vim72/src/netbeans.c 2008-12-06 11:37:50.000000000 +0000 +@@ -1043,7 +1043,7 @@ + nbdebug(("EVT: %s", buf)); + /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ + if (sd >= 0) +- sock_write(sd, buf, (int)STRLEN(buf)); /* ignore errors */ ++ ignored = sock_write(sd, buf, (int)STRLEN(buf)); + } + } + +@@ -1795,7 +1795,7 @@ + buf->displayname = NULL; + + netbeansReadFile = 0; /* don't try to open disk file */ +- do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF); ++ do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +@@ -1960,7 +1960,7 @@ + + netbeansReadFile = 0; /* don't try to open disk file */ + do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, +- ECMD_HIDE + ECMD_OLDBUF); ++ ECMD_HIDE + ECMD_OLDBUF, curwin); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +@@ -1979,7 +1979,7 @@ + vim_free(buf->displayname); + buf->displayname = nb_unquote(args, NULL); + do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, +- ECMD_HIDE + ECMD_OLDBUF); ++ ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; + doupdate = 1; +@@ -2277,9 +2277,6 @@ + int serNum; + int localTypeNum; + int typeNum; +-# ifdef NBDEBUG +- int len; +-# endif + pos_T *pos; + + if (buf == NULL || buf->bufp == NULL) +@@ -2303,13 +2300,10 @@ + pos = get_off_or_lnum(buf->bufp, &args); + + cp = (char *)args; +-# ifdef NBDEBUG +- len = +-# endif +- strtol(cp, &cp, 10); ++ ignored = (int)strtol(cp, &cp, 10); + args = (char_u *)cp; + # ifdef NBDEBUG +- if (len != -1) ++ if (ignored != -1) + { + nbdebug((" partial line annotation -- Not Yet Implemented!\n")); + } +diff -Naur vim72.orig/src/normal.c vim72/src/normal.c +--- vim72.orig/src/normal.c 2008-07-31 21:03:08.000000000 +0100 ++++ vim72/src/normal.c 2008-12-06 11:37:50.000000000 +0000 +@@ -183,6 +183,8 @@ + static void nv_cursorhold __ARGS((cmdarg_T *cap)); + #endif + ++static char *e_noident = N_("E349: No identifier under cursor"); ++ + /* + * Function to be called for a Normal or Visual mode command. + * The argument is a cmdarg_T. +@@ -578,6 +580,9 @@ + static int old_mapped_len = 0; + #endif + int idx; ++#ifdef FEAT_EVAL ++ int set_prevcount = FALSE; ++#endif + + vim_memset(&ca, 0, sizeof(ca)); /* also resets ca.retval */ + ca.oap = oap; +@@ -613,7 +618,12 @@ + /* When not finishing an operator and no register name typed, reset the + * count. */ + if (!finish_op && !oap->regname) ++ { + ca.opcount = 0; ++#ifdef FEAT_EVAL ++ set_prevcount = TRUE; ++#endif ++ } + + #ifdef FEAT_AUTOCMD + /* Restore counts from before receiving K_CURSORHOLD. This means after +@@ -717,7 +727,15 @@ + * command, so that v:count can be used in an expression mapping + * right after the count. */ + if (toplevel && stuff_empty()) +- set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0); ++ { ++ long count = ca.count0; ++ ++ /* multiply with ca.opcount the same way as below */ ++ if (ca.opcount != 0) ++ count = ca.opcount * (count == 0 ? 1 : count); ++ set_vcount(count, count == 0 ? 1 : count, set_prevcount); ++ set_prevcount = FALSE; /* only set v:prevcount once */ ++ } + #endif + if (ctrl_w) + { +@@ -804,7 +822,7 @@ + * Only set v:count when called from main() and not a stuffed command. + */ + if (toplevel && stuff_empty()) +- set_vcount(ca.count0, ca.count1); ++ set_vcount(ca.count0, ca.count1, set_prevcount); + #endif + + /* +@@ -1132,7 +1150,8 @@ + out_flush(); + #endif + #ifdef FEAT_AUTOCMD +- did_cursorhold = FALSE; ++ if (ca.cmdchar != K_IGNORE) ++ did_cursorhold = FALSE; + #endif + + State = NORMAL; +@@ -3509,7 +3528,7 @@ + if (find_type & FIND_STRING) + EMSG(_("E348: No string under cursor")); + else +- EMSG(_("E349: No identifier under cursor")); ++ EMSG(_(e_noident)); + return 0; + } + ptr += col; +@@ -5469,6 +5488,20 @@ + STRCPY(buf, "he! "); + else + { ++ /* An external command will probably use an argument starting ++ * with "-" as an option. To avoid trouble we skip the "-". */ ++ while (*ptr == '-' && n > 0) ++ { ++ ++ptr; ++ --n; ++ } ++ if (n == 0) ++ { ++ EMSG(_(e_noident)); /* found dashes only */ ++ vim_free(buf); ++ return; ++ } ++ + /* When a count is given, turn it into a range. Is this + * really what we want? */ + isman = (STRCMP(kp, "man") == 0); +@@ -5511,37 +5544,59 @@ + /* + * Now grab the chars in the identifier + */ +- if (cmdchar == '*') +- aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); +- else if (cmdchar == '#') +- aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); +- else if (cmdchar == 'K' && !kp_help) +- aux_ptr = (char_u *)" \t\"|!"; +- else +- /* Don't escape spaces and Tabs in a tag with a backslash */ +- aux_ptr = (char_u *)"\|""; +- +- p = buf + STRLEN(buf); +- while (n-- > 0) +- { +- /* put a backslash before \ and some others */ +- if (vim_strchr(aux_ptr, *ptr) != NULL) +- *p++ = '\'; +-#ifdef FEAT_MBYTE +- /* When current byte is a part of multibyte character, copy all bytes +- * of that character. */ +- if (has_mbyte) ++ if (cmdchar == 'K' && !kp_help) ++ { ++ /* Escape the argument properly for a shell command */ ++ ptr = vim_strnsave(ptr, n); ++ p = vim_strsave_shellescape(ptr, TRUE); ++ vim_free(ptr); ++ if (p == NULL) + { +- int i; +- int len = (*mb_ptr2len)(ptr) - 1; +- +- for (i = 0; i < len && n >= 1; ++i, --n) +- *p++ = *ptr++; ++ vim_free(buf); ++ return; + } ++ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1); ++ if (buf == NULL) ++ { ++ vim_free(buf); ++ vim_free(p); ++ return; ++ } ++ STRCAT(buf, p); ++ vim_free(p); ++ } ++ else ++ { ++ if (cmdchar == '*') ++ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); ++ else if (cmdchar == '#') ++ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); ++ else ++ /* Don't escape spaces and Tabs in a tag with a backslash */ ++ aux_ptr = (char_u *)"\|"\n*?["; ++ ++ p = buf + STRLEN(buf); ++ while (n-- > 0) ++ { ++ /* put a backslash before \ and some others */ ++ if (vim_strchr(aux_ptr, *ptr) != NULL) ++ *p++ = '\'; ++#ifdef FEAT_MBYTE ++ /* When current byte is a part of multibyte character, copy all ++ * bytes of that character. */ ++ if (has_mbyte) ++ { ++ int i; ++ int len = (*mb_ptr2len)(ptr) - 1; ++ ++ for (i = 0; i < len && n >= 1; ++i, --n) ++ *p++ = *ptr++; ++ } + #endif +- *p++ = *ptr++; ++ *p++ = *ptr++; ++ } ++ *p = NUL; + } +- *p = NUL; + + /* + * Execute the command. +@@ -6011,7 +6066,7 @@ + autowrite(curbuf, FALSE); + setpcmark(); + (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, +- P_HID(curbuf) ? ECMD_HIDE : 0); ++ P_HID(curbuf) ? ECMD_HIDE : 0, curwin); + if (cap->nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +diff -Naur vim72.orig/src/ops.c vim72/src/ops.c +--- vim72.orig/src/ops.c 2008-06-21 21:08:59.000000000 +0100 ++++ vim72/src/ops.c 2008-12-06 11:37:50.000000000 +0000 +@@ -2209,12 +2209,15 @@ + { + for (; pos.lnum <= oap->end.lnum; ++pos.lnum) + { ++ int one_change; ++ + block_prep(oap, &bd, pos.lnum, FALSE); + pos.col = bd.textcol; +- did_change = swapchars(oap->op_type, &pos, bd.textlen); ++ one_change = swapchars(oap->op_type, &pos, bd.textlen); ++ did_change |= one_change; + + # ifdef FEAT_NETBEANS_INTG +- if (usingNetbeans && did_change) ++ if (usingNetbeans && one_change) + { + char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); + +diff -Naur vim72.orig/src/option.c vim72/src/option.c +--- vim72.orig/src/option.c 2008-07-18 14:05:33.000000000 +0100 ++++ vim72/src/option.c 2008-12-06 11:37:50.000000000 +0000 +@@ -2593,13 +2593,13 @@ + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) +- {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"} ++ {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"} + #else + # ifdef AMIGA + {(char_u *)"", +- (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"} ++ (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"} + # else +- {(char_u *)"", (char_u *)"'20,<50,s10,h"} ++ {(char_u *)"", (char_u *)"'100,<50,s10,h"} + # endif + #endif + #else +@@ -7974,6 +7974,11 @@ + else /* curwin->w_p_scr > curwin->w_height */ + curwin->w_p_scr = curwin->w_height; + } ++ if (p_hi < 0) ++ { ++ errmsg = e_positive; ++ p_hi = 0; ++ } + if (p_report < 0) + { + errmsg = e_positive; +@@ -8227,13 +8232,13 @@ + { + if (number == 0 && string != NULL) + { +- int index; ++ int idx; + + /* Either we are given a string or we are setting option + * to zero. */ +- for (index = 0; string[index] == '0'; ++index) ++ for (idx = 0; string[idx] == '0'; ++idx) + ; +- if (string[index] != NUL || index == 0) ++ if (string[idx] != NUL || idx == 0) + { + /* There's another character after zeros or the string + * is empty. In both cases, we are trying to set a +diff -Naur vim72.orig/src/os_unix.c vim72/src/os_unix.c +--- vim72.orig/src/os_unix.c 2008-08-06 12:01:40.000000000 +0100 ++++ vim72/src/os_unix.c 2008-12-06 11:37:50.000000000 +0000 +@@ -315,12 +315,15 @@ + {-1, "Unknown!", FALSE} + }; + ++/* ++ * Write s[len] to the screen. ++ */ + void + mch_write(s, len) + char_u *s; + int len; + { +- write(1, (char *)s, len); ++ ignored = (int)write(1, (char *)s, len); + if (p_wd) /* Unix is too fast, slow down a bit more */ + RealWaitForChar(read_cmd_fd, p_wd, NULL); + } +@@ -2905,7 +2908,7 @@ + * Ignore any errors. + */ + #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) +- signal_stack = malloc(SIGSTKSZ); ++ signal_stack = (char *)alloc(SIGSTKSZ); + init_signal_stack(); + #endif + } +@@ -2936,7 +2939,8 @@ + } + # endif + # endif +-# ifdef FEAT_X11 ++ /* Don't close the display for GTK 1, it is done in exit(). */ ++# if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2)) + if (x11_display != NULL + # ifdef FEAT_XCLIPBOARD + && x11_display != xterm_dpy +@@ -3926,9 +3930,9 @@ + */ + if (fd >= 0) + { +- dup(fd); /* To replace stdin (file descriptor 0) */ +- dup(fd); /* To replace stdout (file descriptor 1) */ +- dup(fd); /* To replace stderr (file descriptor 2) */ ++ ignored = dup(fd); /* To replace stdin (fd 0) */ ++ ignored = dup(fd); /* To replace stdout (fd 1) */ ++ ignored = dup(fd); /* To replace stderr (fd 2) */ + + /* Don't need this now that we've duplicated it */ + close(fd); +@@ -3996,13 +4000,13 @@ + + /* set up stdin/stdout/stderr for the child */ + close(0); +- dup(pty_slave_fd); ++ ignored = dup(pty_slave_fd); + close(1); +- dup(pty_slave_fd); ++ ignored = dup(pty_slave_fd); + if (gui.in_use) + { + close(2); +- dup(pty_slave_fd); ++ ignored = dup(pty_slave_fd); + } + + close(pty_slave_fd); /* has been dupped, close it now */ +@@ -4013,13 +4017,13 @@ + /* set up stdin for the child */ + close(fd_toshell[1]); + close(0); +- dup(fd_toshell[0]); ++ ignored = dup(fd_toshell[0]); + close(fd_toshell[0]); + + /* set up stdout for the child */ + close(fd_fromshell[0]); + close(1); +- dup(fd_fromshell[1]); ++ ignored = dup(fd_fromshell[1]); + close(fd_fromshell[1]); + + # ifdef FEAT_GUI +@@ -4027,7 +4031,7 @@ + { + /* set up stderr for the child */ + close(2); +- dup(1); ++ ignored = dup(1); + } + # endif + } +@@ -4158,7 +4162,8 @@ + && (lnum != + curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) +- write(toshell_fd, "\n", (size_t)1); ++ ignored = write(toshell_fd, "\n", ++ (size_t)1); + ++lnum; + if (lnum > curbuf->b_op_end.lnum) + { +@@ -6814,7 +6819,8 @@ + if (xsmp_icefd != -1) + { + SmcCloseConnection(xsmp.smcconn, 0, NULL); +- vim_free(xsmp.clientid); ++ if (xsmp.clientid != NULL) ++ free(xsmp.clientid); + xsmp.clientid = NULL; + xsmp_icefd = -1; + } +diff -Naur vim72.orig/src/popupmnu.c vim72/src/popupmnu.c +--- vim72.orig/src/popupmnu.c 2008-07-12 17:28:18.000000000 +0100 ++++ vim72/src/popupmnu.c 2008-12-06 11:37:49.000000000 +0000 +@@ -573,7 +573,7 @@ + { + /* Don't want to sync undo in the current buffer. */ + ++no_u_sync; +- res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0); ++ res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL); + --no_u_sync; + if (res == OK) + { +diff -Naur vim72.orig/src/proto/buffer.pro vim72/src/proto/buffer.pro +--- vim72.orig/src/proto/buffer.pro 2008-08-09 15:31:21.000000000 +0100 ++++ vim72/src/proto/buffer.pro 2008-12-06 11:37:49.000000000 +0000 +@@ -33,7 +33,7 @@ + char_u *getaltfname __ARGS((int errmsg)); + int buflist_add __ARGS((char_u *fname, int flags)); + void buflist_slash_adjust __ARGS((void)); +-void buflist_altfpos __ARGS((void)); ++void buflist_altfpos __ARGS((win_T *win)); + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +diff -Naur vim72.orig/src/proto/eval.pro vim72/src/proto/eval.pro +--- vim72.orig/src/proto/eval.pro 2008-08-09 15:31:25.000000000 +0100 ++++ vim72/src/proto/eval.pro 2008-12-06 11:37:50.000000000 +0000 +@@ -17,7 +17,7 @@ + int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); + char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip)); + int skip_expr __ARGS((char_u **pp)); +-char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist)); ++char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert)); + char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox)); + int eval_to_number __ARGS((char_u *expr)); + list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr)); +@@ -46,7 +46,9 @@ + void list_unref __ARGS((list_T *l)); + void list_free __ARGS((list_T *l, int recurse)); + dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); ++char_u *list_find_str __ARGS((list_T *l, long idx)); + int list_append_dict __ARGS((list_T *list, dict_T *dict)); ++int list_append_string __ARGS((list_T *l, char_u *str, int len)); + int garbage_collect __ARGS((void)); + dict_T *dict_alloc __ARGS((void)); + int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str)); +@@ -58,8 +60,10 @@ + void set_vim_var_nr __ARGS((int idx, long val)); + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); +-void set_vcount __ARGS((long count, long count1)); ++list_T *get_vim_var_list __ARGS((int idx)); ++void set_vcount __ARGS((long count, long count1, int set_prevcount)); + void set_vim_var_string __ARGS((int idx, char_u *val, int len)); ++void set_vim_var_list __ARGS((int idx, list_T *val)); + void set_reg_var __ARGS((int c)); + char_u *v_exception __ARGS((char_u *oldval)); + char_u *v_throwpoint __ARGS((char_u *oldval)); +@@ -94,6 +98,7 @@ + void write_viminfo_varlist __ARGS((FILE *fp)); + int store_session_globals __ARGS((FILE *fd)); + void last_set_msg __ARGS((scid_T scriptID)); ++void ex_oldfiles __ARGS((exarg_T *eap)); + int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); + char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); + /* vim: set ft=c : */ +diff -Naur vim72.orig/src/proto/ex_cmds.pro vim72/src/proto/ex_cmds.pro +--- vim72.orig/src/proto/ex_cmds.pro 2008-08-09 15:31:25.000000000 +0100 ++++ vim72/src/proto/ex_cmds.pro 2008-12-06 11:37:49.000000000 +0000 +@@ -11,7 +11,7 @@ + char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); + void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); + int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); +-int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit)); ++int read_viminfo __ARGS((char_u *file, int flags)); + void write_viminfo __ARGS((char_u *file, int forceit)); + int viminfo_readline __ARGS((vir_T *virp)); + char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert)); +@@ -27,7 +27,7 @@ + void do_wqall __ARGS((exarg_T *eap)); + int not_writing __ARGS((void)); + int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit)); +-int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags)); ++int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin)); + void ex_append __ARGS((exarg_T *eap)); + void ex_change __ARGS((exarg_T *eap)); + void ex_z __ARGS((exarg_T *eap)); +diff -Naur vim72.orig/src/proto/ex_getln.pro vim72/src/proto/ex_getln.pro +--- vim72.orig/src/proto/ex_getln.pro 2008-08-09 15:31:28.000000000 +0100 ++++ vim72/src/proto/ex_getln.pro 2008-12-06 11:37:50.000000000 +0000 +@@ -31,7 +31,7 @@ + void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); + int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); + int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); +-char_u *globpath __ARGS((char_u *path, char_u *file)); ++char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options)); + void init_history __ARGS((void)); + int get_histtype __ARGS((char_u *name)); + void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); +diff -Naur vim72.orig/src/proto/mark.pro vim72/src/proto/mark.pro +--- vim72.orig/src/proto/mark.pro 2008-08-09 15:31:36.000000000 +0100 ++++ vim72/src/proto/mark.pro 2008-12-06 11:37:49.000000000 +0000 +@@ -26,5 +26,5 @@ + void write_viminfo_filemarks __ARGS((FILE *fp)); + int removable __ARGS((char_u *name)); + int write_viminfo_marks __ARGS((FILE *fp_out)); +-void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof)); ++void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags)); + /* vim: set ft=c : */ +diff -Naur vim72.orig/src/pty.c vim72/src/pty.c +--- vim72.orig/src/pty.c 2008-06-21 19:52:58.000000000 +0100 ++++ vim72/src/pty.c 2008-12-06 11:37:48.000000000 +0000 +@@ -270,9 +270,10 @@ + } + #endif + +-#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) ++#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X) + +-/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */ ++/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! ++ * Same for Mac OS X Leopard. */ + #define PTY_DONE + int + OpenPTY(ttyn) +diff -Naur vim72.orig/src/quickfix.c vim72/src/quickfix.c +--- vim72.orig/src/quickfix.c 2008-07-18 13:53:02.000000000 +0100 ++++ vim72/src/quickfix.c 2008-12-06 11:37:49.000000000 +0000 +@@ -1420,6 +1420,7 @@ + win_T *win; + win_T *altwin; + #endif ++ win_T *oldwin = curwin; + int print_message = TRUE; + int len; + #ifdef FEAT_FOLDING +@@ -1744,7 +1745,8 @@ + } + else + ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, +- ECMD_HIDE + ECMD_SET_HELP); ++ ECMD_HIDE + ECMD_SET_HELP, ++ oldwin == curwin ? curwin : NULL); + } + else + ok = buflist_getfile(qf_ptr->qf_fnum, +@@ -2267,6 +2269,7 @@ + win_T *win; + tabpage_T *prevtab = curtab; + buf_T *qf_buf; ++ win_T *oldwin = curwin; + + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { +@@ -2326,14 +2329,16 @@ + win->w_llist->qf_refcount++; + } + ++ if (oldwin != curwin) ++ oldwin = NULL; /* don't store info when in another window */ + if (qf_buf != NULL) + /* Use the existing quickfix buffer */ + (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE, +- ECMD_HIDE + ECMD_OLDBUF); ++ ECMD_HIDE + ECMD_OLDBUF, oldwin); + else + { + /* Create a new quickfix buffer */ +- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); ++ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin); + /* switch off 'swapfile' */ + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", +diff -Naur vim72.orig/src/screen.c vim72/src/screen.c +--- vim72.orig/src/screen.c 2008-07-24 15:45:07.000000000 +0100 ++++ vim72/src/screen.c 2008-12-06 11:37:48.000000000 +0000 +@@ -2439,9 +2439,17 @@ + + #ifdef FEAT_SYN_HL + /* Show 'cursorcolumn' in the fold line. */ +- if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp)) +- ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr( +- ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC)); ++ if (wp->w_p_cuc) ++ { ++ txtcol += wp->w_virtcol; ++ if (wp->w_p_wrap) ++ txtcol -= wp->w_skipcol; ++ else ++ txtcol -= wp->w_leftcol; ++ if (txtcol >= 0 && txtcol < W_WIDTH(wp)) ++ ScreenAttrs[off + txtcol] = hl_combine_attr( ++ ScreenAttrs[off + txtcol], hl_attr(HLF_CUC)); ++ } + #endif + + SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), +diff -Naur vim72.orig/src/spell.c vim72/src/spell.c +--- vim72.orig/src/spell.c 2008-07-12 20:20:55.000000000 +0100 ++++ vim72/src/spell.c 2008-12-06 11:37:50.000000000 +0000 +@@ -77,7 +77,7 @@ + + /* + * Do the opposite: based on a maximum end score and a known sound score, +- * compute the the maximum word score that can be used. ++ * compute the maximum word score that can be used. + */ + #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3) + +@@ -469,6 +469,7 @@ + garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */ + regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm + * (NULL when no compounding) */ ++ char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */ + char_u *sl_compstartflags; /* flags for first compound word */ + char_u *sl_compallflags; /* all flags for compound words */ + char_u sl_nobreak; /* When TRUE: no spaces between words */ +@@ -625,7 +626,7 @@ + /* TRUE if a word appears in the list of banned words. */ + #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word))) + +-/* Number of suggestions kept when cleaning up. we need to keep more than ++/* Number of suggestions kept when cleaning up. We need to keep more than + * what is displayed, because when rescore_suggestions() is called the score + * may change and wrong suggestions may be removed later. */ + #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20) +@@ -839,7 +840,10 @@ + static void slang_clear __ARGS((slang_T *lp)); + static void slang_clear_sug __ARGS((slang_T *lp)); + static void find_word __ARGS((matchinf_T *mip, int mode)); ++static int match_checkcompoundpattern __ARGS((char_u *ptr, int wlen, garray_T *gap)); + static int can_compound __ARGS((slang_T *slang, char_u *word, char_u *flags)); ++static int can_be_compound __ARGS((trystate_T *sp, slang_T *slang, char_u *compflags, int flag)); ++static int match_compoundrule __ARGS((slang_T *slang, char_u *compflags)); + static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req)); + static void find_prefix __ARGS((matchinf_T *mip, int mode)); + static int fold_more __ARGS((matchinf_T *mip)); +@@ -1519,6 +1523,11 @@ + ((unsigned)flags >> 24))) + continue; + ++ /* If there is a match with a CHECKCOMPOUNDPATTERN rule ++ * discard the compound word. */ ++ if (match_checkcompoundpattern(ptr, wlen, &slang->sl_comppat)) ++ continue; ++ + if (mode == FIND_COMPOUND) + { + int capflags; +@@ -1577,6 +1586,11 @@ + if (!can_compound(slang, fword, mip->mi_compflags)) + continue; + } ++ else if (slang->sl_comprules != NULL ++ && !match_compoundrule(slang, mip->mi_compflags)) ++ /* The compound flags collected so far do not match any ++ * COMPOUNDRULE, discard the compounded word. */ ++ continue; + } + + /* Check NEEDCOMPOUND: can't use word without compounding. */ +@@ -1727,6 +1741,39 @@ + } + + /* ++ * Return TRUE if there is a match between the word ptr[wlen] and ++ * CHECKCOMPOUNDPATTERN rules, assuming that we will concatenate with another ++ * word. ++ * A match means that the first part of CHECKCOMPOUNDPATTERN matches at the ++ * end of ptr[wlen] and the second part matches after it. ++ */ ++ static int ++match_checkcompoundpattern(ptr, wlen, gap) ++ char_u *ptr; ++ int wlen; ++ garray_T *gap; /* &sl_comppat */ ++{ ++ int i; ++ char_u *p; ++ int len; ++ ++ for (i = 0; i + 1 < gap->ga_len; i += 2) ++ { ++ p = ((char_u **)gap->ga_data)[i + 1]; ++ if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) ++ { ++ /* Second part matches at start of following compound word, now ++ * check if first part matches at end of previous word. */ ++ p = ((char_u **)gap->ga_data)[i]; ++ len = STRLEN(p); ++ if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) ++ return TRUE; ++ } ++ } ++ return FALSE; ++} ++ ++/* + * Return TRUE if "flags" is a valid sequence of compound flags and "word" + * does not have too many syllables. + */ +@@ -1773,6 +1820,98 @@ + } + + /* ++ * Return TRUE when the sequence of flags in "compflags" plus "flag" can ++ * possibly form a valid compounded word. This also checks the COMPOUNDRULE ++ * lines if they don't contain wildcards. ++ */ ++ static int ++can_be_compound(sp, slang, compflags, flag) ++ trystate_T *sp; ++ slang_T *slang; ++ char_u *compflags; ++ int flag; ++{ ++ /* If the flag doesn't appear in sl_compstartflags or sl_compallflags ++ * then it can't possibly compound. */ ++ if (!byte_in_str(sp->ts_complen == sp->ts_compsplit ++ ? slang->sl_compstartflags : slang->sl_compallflags, flag)) ++ return FALSE; ++ ++ /* If there are no wildcards, we can check if the flags collected so far ++ * possibly can form a match with COMPOUNDRULE patterns. This only ++ * makes sense when we have two or more words. */ ++ if (slang->sl_comprules != NULL && sp->ts_complen > sp->ts_compsplit) ++ { ++ int v; ++ ++ compflags[sp->ts_complen] = flag; ++ compflags[sp->ts_complen + 1] = NUL; ++ v = match_compoundrule(slang, compflags + sp->ts_compsplit); ++ compflags[sp->ts_complen] = NUL; ++ return v; ++ } ++ ++ return TRUE; ++} ++ ++ ++/* ++ * Return TRUE if the compound flags in compflags[] match the start of any ++ * compound rule. This is used to stop trying a compound if the flags ++ * collected so far can't possibly match any compound rule. ++ * Caller must check that slang->sl_comprules is not NULL. ++ */ ++ static int ++match_compoundrule(slang, compflags) ++ slang_T *slang; ++ char_u *compflags; ++{ ++ char_u *p; ++ int i; ++ int c; ++ ++ /* loop over all the COMPOUNDRULE entries */ ++ for (p = slang->sl_comprules; *p != NUL; ++p) ++ { ++ /* loop over the flags in the compound word we have made, match ++ * them against the current rule entry */ ++ for (i = 0; ; ++i) ++ { ++ c = compflags[i]; ++ if (c == NUL) ++ /* found a rule that matches for the flags we have so far */ ++ return TRUE; ++ if (*p == '/' || *p == NUL) ++ break; /* end of rule, it's too short */ ++ if (*p == '[') ++ { ++ int match = FALSE; ++ ++ /* compare against all the flags in [] */ ++ ++p; ++ while (*p != ']' && *p != NUL) ++ if (*p++ == c) ++ match = TRUE; ++ if (!match) ++ break; /* none matches */ ++ } ++ else if (*p != c) ++ break; /* flag of word doesn't match flag in pattern */ ++ ++p; ++ } ++ ++ /* Skip to the next "/", where the next pattern starts. */ ++ p = vim_strchr(p, '/'); ++ if (p == NULL) ++ break; ++ } ++ ++ /* Checked all the rules and none of them match the flags, so there ++ * can't possibly be a compound starting with these flags. */ ++ return FALSE; ++} ++ ++/* + * Return non-zero if the prefix indicated by "arridx" matches with the prefix + * ID in "flags" for the word "word". + * The WF_RAREPFX flag is included in the return value for a rare prefix. +@@ -2513,9 +2652,11 @@ + lp->sl_midword = NULL; + + vim_free(lp->sl_compprog); ++ vim_free(lp->sl_comprules); + vim_free(lp->sl_compstartflags); + vim_free(lp->sl_compallflags); + lp->sl_compprog = NULL; ++ lp->sl_comprules = NULL; + lp->sl_compstartflags = NULL; + lp->sl_compallflags = NULL; + +@@ -3460,6 +3601,7 @@ + char_u *pp; + char_u *cp; + char_u *ap; ++ char_u *crp; + int cnt; + garray_T *gap; + +@@ -3545,6 +3687,12 @@ + slang->sl_compallflags = ap; + *ap = NUL; + ++ /* And a list of all patterns in their original form, for checking whether ++ * compounding may work in match_compoundrule(). This is freed when we ++ * encounter a wildcard, the check doesn't work then. */ ++ crp = alloc(todo + 1); ++ slang->sl_comprules = crp; ++ + pp = pat; + *pp++ = '^'; + *pp++ = '\'; +@@ -3587,6 +3735,20 @@ + atstart = 0; + } + } ++ ++ /* Copy flag to "sl_comprules", unless we run into a wildcard. */ ++ if (crp != NULL) ++ { ++ if (c == '+' || c == '*') ++ { ++ vim_free(slang->sl_comprules); ++ slang->sl_comprules = NULL; ++ crp = NULL; ++ } ++ else ++ *crp++ = c; ++ } ++ + if (c == '/') /* slash separates two items */ + { + *pp++ = '\'; +@@ -3611,6 +3773,9 @@ + *pp++ = '$'; + *pp = NUL; + ++ if (crp != NULL) ++ *crp = NUL; ++ + slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT); + vim_free(pat); + if (slang->sl_compprog == NULL) +@@ -4915,6 +5080,7 @@ + } spellinfo_T; + + static afffile_T *spell_read_aff __ARGS((spellinfo_T *spin, char_u *fname)); ++static int is_aff_rule __ARGS((char_u **items, int itemcnt, char *rulename, int mincount)); + static void aff_process_flags __ARGS((afffile_T *affile, affentry_T *entry)); + static int spell_info_item __ARGS((char_u *s)); + static unsigned affitem2flag __ARGS((int flagtype, char_u *item, char_u *fname, int lnum)); +@@ -4950,7 +5116,7 @@ + static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd)); + static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname)); + static void clear_node __ARGS((wordnode_T *node)); +-static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree)); ++static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree)); + static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname)); + static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang)); + static int sug_maketable __ARGS((spellinfo_T *spin)); +@@ -5223,8 +5389,7 @@ + /* Handle non-empty lines. */ + if (itemcnt > 0) + { +- if (STRCMP(items[0], "SET") == 0 && itemcnt == 2 +- && aff->af_enc == NULL) ++ if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL) + { + #ifdef FEAT_MBYTE + /* Setup for conversion from "ENC" to 'encoding'. */ +@@ -5239,7 +5404,7 @@ + smsg((char_u *)_("Conversion in %s not supported"), fname); + #endif + } +- else if (STRCMP(items[0], "FLAG") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "FLAG", 2) + && aff->af_flagtype == AFT_CHAR) + { + if (STRCMP(items[1], "long") == 0) +@@ -5284,69 +5449,71 @@ + spin->si_info = p; + } + } +- else if (STRCMP(items[0], "MIDWORD") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "MIDWORD", 2) + && midword == NULL) + { + midword = getroom_save(spin, items[1]); + } +- else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2) ++ else if (is_aff_rule(items, itemcnt, "TRY", 2)) + { + /* ignored, we look in the tree for what chars may appear */ + } + /* TODO: remove "RAR" later */ +- else if ((STRCMP(items[0], "RAR") == 0 +- || STRCMP(items[0], "RARE") == 0) && itemcnt == 2 +- && aff->af_rare == 0) ++ else if ((is_aff_rule(items, itemcnt, "RAR", 2) ++ || is_aff_rule(items, itemcnt, "RARE", 2)) ++ && aff->af_rare == 0) + { + aff->af_rare = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } + /* TODO: remove "KEP" later */ +- else if ((STRCMP(items[0], "KEP") == 0 +- || STRCMP(items[0], "KEEPCASE") == 0) && itemcnt == 2 ++ else if ((is_aff_rule(items, itemcnt, "KEP", 2) ++ || is_aff_rule(items, itemcnt, "KEEPCASE", 2)) + && aff->af_keepcase == 0) + { + aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "BAD") == 0 && itemcnt == 2 +- && aff->af_bad == 0) ++ else if ((is_aff_rule(items, itemcnt, "BAD", 2) ++ || is_aff_rule(items, itemcnt, "FORBIDDENWORD", 2)) ++ && aff->af_bad == 0) + { + aff->af_bad = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "NEEDAFFIX") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "NEEDAFFIX", 2) + && aff->af_needaffix == 0) + { + aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "CIRCUMFIX") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "CIRCUMFIX", 2) + && aff->af_circumfix == 0) + { + aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "NOSUGGEST") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "NOSUGGEST", 2) + && aff->af_nosuggest == 0) + { + aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "NEEDCOMPOUND") == 0 && itemcnt == 2 ++ else if ((is_aff_rule(items, itemcnt, "NEEDCOMPOUND", 2) ++ || is_aff_rule(items, itemcnt, "ONLYINCOMPOUND", 2)) + && aff->af_needcomp == 0) + { + aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDROOT", 2) + && aff->af_comproot == 0) + { + aff->af_comproot = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +- else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0 +- && itemcnt == 2 && aff->af_compforbid == 0) ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDFORBIDFLAG", 2) ++ && aff->af_compforbid == 0) + { + aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +@@ -5354,8 +5521,8 @@ + smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +- else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0 +- && itemcnt == 2 && aff->af_comppermit == 0) ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2) ++ && aff->af_comppermit == 0) + { + aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +@@ -5363,7 +5530,7 @@ + smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +- else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2) + && compflags == NULL) + { + /* Turn flag "c" into COMPOUNDRULE compatible string "c+", +@@ -5376,7 +5543,15 @@ + compflags = p; + } + } +- else if (STRCMP(items[0], "COMPOUNDRULE") == 0 && itemcnt == 2) ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULES", 2)) ++ { ++ /* We don't use the count, but do check that it's a number and ++ * not COMPOUNDRULE mistyped. */ ++ if (atoi((char *)items[1]) == 0) ++ smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"), ++ fname, lnum, items[1]); ++ } ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) + { + /* Concatenate this string to previously defined ones, using a + * slash to separate them. */ +@@ -5395,7 +5570,7 @@ + compflags = p; + } + } +- else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) + && compmax == 0) + { + compmax = atoi((char *)items[1]); +@@ -5403,7 +5578,7 @@ + smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +- else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2) + && compminlen == 0) + { + compminlen = atoi((char *)items[1]); +@@ -5411,7 +5586,7 @@ + smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"), + fname, lnum, items[1]); + } +- else if (STRCMP(items[0], "COMPOUNDSYLMAX") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2) + && compsylmax == 0) + { + compsylmax = atoi((char *)items[1]); +@@ -5419,32 +5594,29 @@ + smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1)) + { + compoptions |= COMP_CHECKDUP; + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDREP", 1)) + { + compoptions |= COMP_CHECKREP; + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDCASE", 1)) + { + compoptions |= COMP_CHECKCASE; + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0 +- && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDTRIPLE", 1)) + { + compoptions |= COMP_CHECKTRIPLE; + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 +- && itemcnt == 2) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2)) + { + if (atoi((char *)items[1]) == 0) + smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"), + fname, lnum, items[1]); + } +- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 +- && itemcnt == 3) ++ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3)) + { + garray_T *gap = &spin->si_comppat; + int i; +@@ -5463,24 +5635,24 @@ + = getroom_save(spin, items[2]); + } + } +- else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "SYLLABLE", 2) + && syllable == NULL) + { + syllable = getroom_save(spin, items[1]); + } +- else if (STRCMP(items[0], "NOBREAK") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "NOBREAK", 1)) + { + spin->si_nobreak = TRUE; + } +- else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "NOSPLITSUGS", 1)) + { + spin->si_nosplitsugs = TRUE; + } +- else if (STRCMP(items[0], "NOSUGFILE") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1)) + { + spin->si_nosugfile = TRUE; + } +- else if (STRCMP(items[0], "PFXPOSTPONE") == 0 && itemcnt == 1) ++ else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) + { + aff->af_pfxpostpone = TRUE; + } +@@ -5771,24 +5943,20 @@ + } + } + } +- else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2 +- && fol == NULL) ++ else if (is_aff_rule(items, itemcnt, "FOL", 2) && fol == NULL) + { + fol = vim_strsave(items[1]); + } +- else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2 +- && low == NULL) ++ else if (is_aff_rule(items, itemcnt, "LOW", 2) && low == NULL) + { + low = vim_strsave(items[1]); + } +- else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2 +- && upp == NULL) ++ else if (is_aff_rule(items, itemcnt, "UPP", 2) && upp == NULL) + { + upp = vim_strsave(items[1]); + } +- else if ((STRCMP(items[0], "REP") == 0 +- || STRCMP(items[0], "REPSAL") == 0) +- && itemcnt == 2) ++ else if (is_aff_rule(items, itemcnt, "REP", 2) ++ || is_aff_rule(items, itemcnt, "REPSAL", 2)) + { + /* Ignore REP/REPSAL count */; + if (!isdigit(*items[1])) +@@ -5819,7 +5987,7 @@ + : &spin->si_rep, items[1], items[2]); + } + } +- else if (STRCMP(items[0], "MAP") == 0 && itemcnt == 2) ++ else if (is_aff_rule(items, itemcnt, "MAP", 2)) + { + /* MAP item or count */ + if (!found_map) +@@ -5856,9 +6024,8 @@ + ga_append(&spin->si_map, '/'); + } + } +- /* Accept "SAL from to" and "SAL from to # comment". */ +- else if (STRCMP(items[0], "SAL") == 0 +- && (itemcnt == 3 || (itemcnt > 3 && items[3][0] == '#'))) ++ /* Accept "SAL from to" and "SAL from to #comment". */ ++ else if (is_aff_rule(items, itemcnt, "SAL", 3)) + { + if (do_sal) + { +@@ -5877,12 +6044,12 @@ + : items[2]); + } + } +- else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "SOFOFROM", 2) + && sofofrom == NULL) + { + sofofrom = getroom_save(spin, items[1]); + } +- else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2 ++ else if (is_aff_rule(items, itemcnt, "SOFOTO", 2) + && sofoto == NULL) + { + sofoto = getroom_save(spin, items[1]); +@@ -5980,7 +6147,7 @@ + else if (spin->si_newprefID == 0 || spin->si_newprefID == 127) + MSG(_("Too many compound flags")); + else +- MSG(_("Too many posponed prefixes and/or compound flags")); ++ MSG(_("Too many postponed prefixes and/or compound flags")); + } + + if (syllable != NULL) +@@ -6017,6 +6184,22 @@ + } + + /* ++ * Return TRUE when items[0] equals "rulename", there are "mincount" items or ++ * a comment is following after item "mincount". ++ */ ++ static int ++is_aff_rule(items, itemcnt, rulename, mincount) ++ char_u **items; ++ int itemcnt; ++ char *rulename; ++ int mincount; ++{ ++ return (STRCMP(items[0], rulename) == 0 ++ && (itemcnt == mincount ++ || (itemcnt > mincount && items[mincount][0] == '#'))); ++} ++ ++/* + * For affix "entry" move COMPOUNDFORBIDFLAG and COMPOUNDPERMITFLAG from + * ae_flags to ae_comppermit and ae_compforbid. + */ +@@ -7926,6 +8109,8 @@ + char_u *p; + int rr; + int retval = OK; ++ size_t fwv = 1; /* collect return value of fwrite() to avoid ++ warnings from picky compiler */ + + fd = mch_fopen((char *)fname, "w"); + if (fd == NULL) +@@ -7936,11 +8121,11 @@ + + /* <HEADER>: <fileID> <versionnr> */ + /* <fileID> */ +- if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1) +- { +- EMSG(_(e_write)); +- retval = FAIL; +- } ++ fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd); ++ if (fwv != (size_t)1) ++ /* Catch first write error, don't try writing more. */ ++ goto theend; ++ + putc(VIMSPELLVERSION, fd); /* <versionnr> */ + + /* +@@ -7955,7 +8140,7 @@ + + i = (int)STRLEN(spin->si_info); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +- fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ ++ fwv &= fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ + } + + /* SN_REGION: <regionname> ... +@@ -7966,7 +8151,7 @@ + putc(SNF_REQUIRED, fd); /* <sectionflags> */ + l = spin->si_region_count * 2; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +- fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); ++ fwv &= fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); + /* <regionname> ... */ + regionmask = (1 << spin->si_region_count) - 1; + } +@@ -8016,7 +8201,7 @@ + } + + put_bytes(fd, (long_u)l, 2); /* <folcharslen> */ +- fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ ++ fwv &= fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ + } + + /* SN_MIDWORD: <midword> */ +@@ -8027,7 +8212,8 @@ + + i = (int)STRLEN(spin->si_midword); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +- fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */ ++ fwv &= fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); ++ /* <midword> */ + } + + /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */ +@@ -8113,7 +8299,8 @@ + p = rr == 1 ? ftp->ft_from : ftp->ft_to; + l = (int)STRLEN(p); + putc(l, fd); +- fwrite(p, l, (size_t)1, fd); ++ if (l > 0) ++ fwv &= fwrite(p, l, (size_t)1, fd); + } + } + +@@ -8131,11 +8318,11 @@ + /* <sectionlen> */ + + put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */ +- fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ ++ fwv &= fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ + + l = (int)STRLEN(spin->si_sofoto); + put_bytes(fd, (long_u)l, 2); /* <sofotolen> */ +- fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ ++ fwv &= fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ + } + + /* SN_WORDS: <word> ... +@@ -8160,7 +8347,7 @@ + l = (int)STRLEN(hi->hi_key) + 1; + len += l; + if (round == 2) /* <word> */ +- fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); ++ fwv &= fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); + --todo; + } + if (round == 1) +@@ -8176,7 +8363,7 @@ + putc(0, fd); /* <sectionflags> */ + l = spin->si_map.ga_len; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +- fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); ++ fwv &= fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); + /* <mapstr> */ + } + +@@ -8232,10 +8419,11 @@ + { + p = ((char_u **)(spin->si_comppat.ga_data))[i]; + putc((int)STRLEN(p), fd); /* <comppatlen> */ +- fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */ ++ fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd); ++ /* <comppattext> */ + } + /* <compflags> */ +- fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), ++ fwv &= fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), + (size_t)1, fd); + } + +@@ -8259,7 +8447,8 @@ + + l = (int)STRLEN(spin->si_syllable); + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +- fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */ ++ fwv &= fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); ++ /* <syllable> */ + } + + /* end of <SECTIONS> */ +@@ -8295,13 +8484,18 @@ + (void)put_node(fd, tree, 0, regionmask, round == 3); + } + +- /* Write another byte to check for errors. */ ++ /* Write another byte to check for errors (file system full). */ + if (putc(0, fd) == EOF) + retval = FAIL; +- ++theend: + if (fclose(fd) == EOF) + retval = FAIL; + ++ if (fwv != (size_t)1) ++ retval = FAIL; ++ if (retval == FAIL) ++ EMSG(_(e_write)); ++ + return retval; + } + +@@ -9890,6 +10084,7 @@ + char_u *p; + int len; + int totlen; ++ size_t x = 1; /* collect return value of fwrite() */ + + if (fd != NULL) + put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ +@@ -9906,7 +10101,7 @@ + if (fd != NULL) + { + fputc(len, fd); +- fwrite(p, (size_t)len, (size_t)1, fd); ++ x &= fwrite(p, (size_t)len, (size_t)1, fd); + } + totlen += len; + } +@@ -11480,15 +11675,24 @@ + vim_strncpy(preword + sp->ts_prewordlen, + tword + sp->ts_splitoff, + sp->ts_twordlen - sp->ts_splitoff); +- p = preword; +- while (*skiptowhite(p) != NUL) +- p = skipwhite(skiptowhite(p)); +- if (fword_ends && !can_compound(slang, p, +- compflags + sp->ts_compsplit)) +- /* Compound is not allowed. But it may still be +- * possible if we add another (short) word. */ ++ ++ /* Verify CHECKCOMPOUNDPATTERN rules. */ ++ if (match_checkcompoundpattern(preword, sp->ts_prewordlen, ++ &slang->sl_comppat)) + compound_ok = FALSE; + ++ if (compound_ok) ++ { ++ p = preword; ++ while (*skiptowhite(p) != NUL) ++ p = skipwhite(skiptowhite(p)); ++ if (fword_ends && !can_compound(slang, p, ++ compflags + sp->ts_compsplit)) ++ /* Compound is not allowed. But it may still be ++ * possible if we add another (short) word. */ ++ compound_ok = FALSE; ++ } ++ + /* Get pointer to last char of previous word. */ + p = preword + sp->ts_prewordlen; + mb_ptr_back(preword, p); +@@ -11685,10 +11889,9 @@ + && (slang->sl_compsylmax < MAXWLEN + || sp->ts_complen + 1 - sp->ts_compsplit + < slang->sl_compmax) +- && (byte_in_str(sp->ts_complen == sp->ts_compsplit +- ? slang->sl_compstartflags +- : slang->sl_compallflags, +- ((unsigned)flags >> 24)))) ++ && (can_be_compound(sp, slang, ++ compflags, ((unsigned)flags >> 24)))) ++ + { + try_compound = TRUE; + compflags[sp->ts_complen] = ((unsigned)flags >> 24); +diff -Naur vim72.orig/src/structs.h vim72/src/structs.h +--- vim72.orig/src/structs.h 2008-07-30 21:02:50.000000000 +0100 ++++ vim72/src/structs.h 2008-12-06 11:37:49.000000000 +0000 +@@ -459,7 +459,7 @@ + typedef struct + { + int hide; /* TRUE when ":hide" was used */ +-# ifdef FEAT_BROWSE ++# ifdef FEAT_BROWSE_CMD + int browse; /* TRUE to invoke file dialog */ + # endif + # ifdef FEAT_WINDOWS +@@ -1784,10 +1784,15 @@ + #endif + + /* +- * The next three specify the offsets for displaying the buffer: ++ * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for ++ * displaying the buffer. + */ + linenr_T w_topline; /* buffer line number of the line at the + top of the window */ ++#ifdef FEAT_AUTOCMD ++ char w_topline_was_set; /* flag set to TRUE when topline is set, ++ e.g. by winrestview() */ ++#endif + #ifdef FEAT_DIFF + int w_topfill; /* number of filler lines above w_topline */ + int w_old_topfill; /* w_topfill at last redraw */ +diff -Naur vim72.orig/src/testdir/Makefile vim72/src/testdir/Makefile +--- vim72.orig/src/testdir/Makefile 2008-06-19 21:29:46.000000000 +0100 ++++ vim72/src/testdir/Makefile 2008-12-06 11:37:48.000000000 +0000 +@@ -26,15 +26,17 @@ + + .SUFFIXES: .in .out + +-nongui: nolog $(SCRIPTS) +- @echo +- @cat test.log +- @echo ALL DONE ++nongui: nolog $(SCRIPTS) report ++ ++gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report + +-gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) ++report: + @echo +- @cat test.log +- @echo ALL DONE ++ @echo 'Test results:' ++ @/bin/sh -c "if test -f test.log; \ ++ then cat test.log; echo TEST FAILURE; exit 1; \ ++ else echo ALL DONE; \ ++ fi" + + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + +@@ -71,4 +73,4 @@ + test60.out: test60.vim + + nolog: +- -echo Test results: >test.log ++ -rm -f test.log +diff -Naur vim72.orig/src/testdir/Make_ming.mak vim72/src/testdir/Make_ming.mak +--- vim72.orig/src/testdir/Make_ming.mak 1970-01-01 01:00:00.000000000 +0100 ++++ vim72/src/testdir/Make_ming.mak 2008-12-06 11:37:48.000000000 +0000 +@@ -0,0 +1,91 @@ ++# Makefile to run tests for Vim, on Dos-like machines ++# with sh.exe or zsh.exe in the path or not. ++# ++# Author: Bill McCarthy ++# ++# Note that test54 has been removed until it is fixed. ++# ++# Requires a set of Unix tools: echo, diff, etc. ++ ++ifneq (sh.exe, $(SHELL)) ++DEL = rm -f ++MV = mv ++CP = cp ++DIRSLASH = / ++else ++DEL = del ++MV = rename ++CP = copy ++DIRSLASH = \ ++endif ++ ++VIMPROG = ..$(DIRSLASH)vim ++ ++# Omitted: ++# test2 "\tmp" doesn't work. ++# test10 'errorformat' is different ++# test12 can't unlink a swap file ++# test25 uses symbolic link ++# test27 can't edit file with "*" in file name ++# test31 16 bit version runs out of memory... ++ ++SCRIPTS16 = test1.out test19.out test20.out test22.out \ ++ test23.out test24.out test28.out test29.out \ ++ test35.out test36.out test43.out \ ++ test44.out test45.out test46.out test47.out \ ++ test48.out test51.out test53.out \ ++ test55.out test56.out test57.out test58.out test59.out \ ++ test60.out test61.out test62.out test63.out test64.out ++ ++# Had to remove test54 which doesn't work yet. ++# test54.out ++ ++SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ ++ test8.out test9.out test11.out test13.out test14.out \ ++ test15.out test17.out test18.out test21.out test26.out \ ++ test30.out test31.out test32.out test33.out test34.out \ ++ test37.out test38.out test39.out test40.out test41.out \ ++ test42.out test52.out test65.out ++ ++SCRIPTS32 = test50.out ++ ++SCRIPTS_GUI = test16.out ++ ++.SUFFIXES: .in .out ++ ++vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32) ++ echo ALL DONE ++ ++nongui: fixff $(SCRIPTS16) $(SCRIPTS) ++ echo ALL DONE ++ ++small: ++ echo ALL DONE ++ ++gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) ++ echo ALL DONE ++ ++win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) ++ echo ALL DONE ++ ++fixff: ++ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok ++ ++clean: ++ -$(DEL) *.out ++ -$(DEL) test.ok ++ -$(DEL) small.vim ++ -$(DEL) tiny.vim ++ -$(DEL) mbyte.vim ++ -$(DEL) X* ++ -$(DEL) viminfo ++ ++.in.out: ++ $(CP) $*.ok test.ok ++ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in ++ diff test.out $*.ok ++ -$(DEL) $*.out ++ $(MV) test.out $*.out ++ -$(DEL) X* ++ -$(DEL) test.ok ++ -$(DEL) viminfo +diff -Naur vim72.orig/src/testdir/test30.in vim72/src/testdir/test30.in +--- vim72.orig/src/testdir/test30.in 2008-06-25 22:33:01.000000000 +0100 ++++ vim72/src/testdir/test30.in 2008-12-06 11:37:48.000000000 +0000 +@@ -24,10 +24,17 @@ + :set nobin eol + :bwipe XXUnix XXDos XXMac + :" create mixed format files +-:!cat XXUnix XXDos >XXUxDs +-:!cat XXUnix XXMac >XXUxMac +-:!cat XXDos XXMac >XXDosMac +-:!cat XXUnix XXDos XXMac >XXUxDsMc ++:if has("vms") ++: !copy XXUnix,XXDos XXUxDs. ++: !copy XXUnix,XXMac XXUxMac. ++: !copy XXDos,XXMac XXDosMac. ++: !copy XXUnix,XXDos,XXMac XXUxDsMc. ++:else ++: !cat XXUnix XXDos >XXUxDs ++: !cat XXUnix XXMac >XXUxMac ++: !cat XXDos XXMac >XXDosMac ++: !cat XXUnix XXDos XXMac >XXUxDsMc ++:endif + :" + :" try reading and writing with 'fileformats' empty + :set fileformat=unix +diff -Naur vim72.orig/src/testdir/test42.ok vim72/src/testdir/test42.ok +--- vim72.orig/src/testdir/test42.ok 2008-02-20 12:27:37.000000000 +0000 ++++ vim72/src/testdir/test42.ok 2008-12-06 11:37:49.000000000 +0000 +@@ -20,7 +20,7 @@ + ucs-2 + + +- fileencoding=ucs-2le ++ fileencoding=utf-16le + bomb + ucs-2le + +diff -Naur vim72.orig/src/testdir/test54.in vim72/src/testdir/test54.in +--- vim72.orig/src/testdir/test54.in 2005-01-01 11:21:16.000000000 +0000 ++++ vim72/src/testdir/test54.in 2008-12-06 11:37:48.000000000 +0000 +@@ -3,8 +3,13 @@ + STARTTEST + :so small.vim + :e xx +-:!rm -f test.out +-:au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out ++:if has("vms") ++: !del test.out.* ++: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out ++:else ++: !rm -f test.out ++: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out ++:endif + :e somefile " here, autocommand for xx shall write test.out + : " but autocommand shall not apply to buffer named <buffer> + :bwipe xx " here, autocommand shall be auto-deleted +diff -Naur vim72.orig/src/ui.c vim72/src/ui.c +--- vim72.orig/src/ui.c 2008-07-14 19:14:56.000000000 +0100 ++++ vim72/src/ui.c 2008-12-06 11:37:50.000000000 +0000 +@@ -1820,7 +1820,7 @@ + #ifdef HAVE_DUP + /* Use stderr for stdin, also works for shell commands. */ + close(0); +- dup(2); ++ ignored = dup(2); + #else + read_cmd_fd = 2; /* read from stderr instead of stdin */ + #endif +@@ -2020,7 +2020,7 @@ + + if (value == NULL || *length == 0) + { +- clip_free_selection(cbd); /* ??? [what's the query?] */ ++ clip_free_selection(cbd); /* nothing received, clear register */ + *(int *)success = FALSE; + return; + } +@@ -2076,7 +2076,7 @@ + text_prop.value = (unsigned char *)value; + text_prop.encoding = *type; + text_prop.format = *format; +- text_prop.nitems = STRLEN(value); ++ text_prop.nitems = len; + status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); + if (status != Success || n_text < 1) +@@ -2110,6 +2110,8 @@ + int i; + int nbytes = 0; + char_u *buffer; ++ time_t start_time; ++ int timed_out = FALSE; + + for (i = + #ifdef FEAT_MBYTE +@@ -2129,6 +2131,7 @@ + case 3: type = text_atom; break; + default: type = XA_STRING; + } ++ success = MAYBE; + XtGetSelectionValue(myShell, cbd->sel_atom, type, + clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); + +@@ -2141,27 +2144,48 @@ + * characters, then they will appear before the one that requested the + * paste! Don't worry, we will catch up with any other events later. + */ +- for (;;) ++ start_time = time(NULL); ++ while (success == MAYBE) + { +- if (XCheckTypedEvent(dpy, SelectionNotify, &event)) +- break; +- if (XCheckTypedEvent(dpy, SelectionRequest, &event)) +- /* We may get a SelectionRequest here and if we don't handle +- * it we hang. KDE klipper does this, for example. */ ++ if (XCheckTypedEvent(dpy, SelectionNotify, &event) ++ || XCheckTypedEvent(dpy, SelectionRequest, &event) ++ || XCheckTypedEvent(dpy, PropertyNotify, &event)) ++ { ++ /* This is where clip_x11_request_selection_cb() should be ++ * called. It may actually happen a bit later, so we loop ++ * until "success" changes. ++ * We may get a SelectionRequest here and if we don't handle ++ * it we hang. KDE klipper does this, for example. ++ * We need to handle a PropertyNotify for large selections. */ + XtDispatchEvent(&event); ++ continue; ++ } ++ ++ /* Time out after 2 to 3 seconds to avoid that we hang when the ++ * other process doesn't respond. Note that the SelectionNotify ++ * event may still come later when the selection owner comes back ++ * to life and the text gets inserted unexpectedly. Don't know ++ * why that happens or how to avoid that :-(. */ ++ if (time(NULL) > start_time + 2) ++ { ++ timed_out = TRUE; ++ break; ++ } + + /* Do we need this? Probably not. */ + XSync(dpy, False); + +- /* Bernhard Walle solved a slow paste response in an X terminal by +- * adding: usleep(10000); here. */ ++ /* Wait for 1 msec to avoid that we eat up all CPU time. */ ++ ui_delay(1L, TRUE); + } + +- /* this is where clip_x11_request_selection_cb() is actually called */ +- XtDispatchEvent(&event); +- +- if (success) ++ if (success == TRUE) + return; ++ ++ /* don't do a retry with another type after timing out, otherwise we ++ * hang for 15 seconds. */ ++ if (timed_out) ++ break; + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +diff -Naur vim72.orig/src/version.c vim72/src/version.c +--- vim72.orig/src/version.c 2008-08-09 15:24:52.000000000 +0100 ++++ vim72/src/version.c 2008-12-06 11:37:50.000000000 +0000 +@@ -677,9 +677,152 @@ + static int included_patches[] = + { /* Add new patch number below this line */ + /**/ ++ 65, ++/**/ ++ 64, ++/**/ ++ 63, ++/**/ ++ 62, ++/**/ ++ 61, ++/**/ ++ 60, ++/**/ ++ 59, ++/**/ ++ 58, ++/**/ ++ 57, ++/**/ ++ 56, ++/**/ ++ 55, ++/**/ ++ 54, ++/**/ ++ 53, ++/**/ ++ 52, ++/**/ ++ 51, ++/**/ ++ 50, ++/**/ ++ 49, ++/**/ ++ 48, ++/**/ ++ 47, ++/**/ ++ 46, ++/**/ ++ 45, ++/**/ ++ 44, ++/**/ ++ 43, ++/**/ ++ 42, ++/**/ ++ 41, ++/**/ ++ 40, ++/**/ ++ 39, ++/**/ ++ 38, ++/**/ ++ 37, ++/**/ ++ 36, ++/**/ ++ 35, ++/**/ ++ 34, ++/**/ ++ 33, ++/**/ ++ 32, ++/**/ ++ 31, ++/**/ ++ 30, ++/**/ ++ 29, ++/**/ ++ 28, ++/**/ ++ 27, ++/**/ ++ 26, ++/**/ ++ 25, ++/**/ ++ 24, ++/**/ ++ 23, ++/**/ ++ 22, ++/**/ ++ 21, ++/**/ ++ 20, ++/**/ ++ 19, ++/**/ ++ 18, ++/**/ ++ 17, ++/**/ ++ 16, ++/**/ ++ 15, ++/**/ ++ 14, ++/**/ ++ 13, ++/**/ ++ 12, ++/**/ ++ 11, ++/**/ ++ 10, ++/**/ ++ 9, ++/**/ ++ 8, ++/**/ ++ 7, ++/**/ ++ 6, ++/**/ ++ 5, ++/**/ ++ 4, ++/**/ ++ 3, ++/**/ ++ 2, ++/**/ ++ 1, ++/**/ + 0 + }; + ++/* ++ * Place to put a short description when adding a feature with a patch. ++ * Keep it short, e.g.,: "relative numbers", "persistent undo". ++ * Also add a comment marker to separate the lines. ++ * See the official Vim patches for the diff format: It must use a context of ++ * one line only. Use "diff -C2". ++ */ ++static char *(extra_patches[]) = ++{ /* Add your patch description below this line */ ++/**/ ++ NULL ++}; ++ + int + highest_patch() + { +@@ -786,7 +929,7 @@ + MSG_PUTS(_("\nRISC OS version")); + #endif + #ifdef VMS +- MSG_PUTS("\nOpenVMS version"); ++ MSG_PUTS(_("\nOpenVMS version")); + # ifdef HAVE_PATHDEF + if (*compiled_arch != NUL) + { +@@ -825,6 +968,19 @@ + } + } + ++ /* Print the list of extra patch descriptions if there is at least one. */ ++ if (extra_patches[0] != NULL) ++ { ++ MSG_PUTS(_("\nExtra patches: ")); ++ s = ""; ++ for (i = 0; extra_patches[i] != NULL; ++i) ++ { ++ MSG_PUTS(s); ++ s = ", "; ++ MSG_PUTS(extra_patches[i]); ++ } ++ } ++ + #ifdef MODIFIED_BY + MSG_PUTS("\n"); + MSG_PUTS(_("Modified by ")); +diff -Naur vim72.orig/src/vim.h vim72/src/vim.h +--- vim72.orig/src/vim.h 2008-08-09 17:03:38.000000000 +0100 ++++ vim72/src/vim.h 2008-12-06 11:37:50.000000000 +0000 +@@ -341,8 +341,14 @@ + #ifdef BACKSLASH_IN_FILENAME + # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'"|!<") + #else +-# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") +-# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") ++# ifdef VMS ++ /* VMS allows a lot of characters in the file name */ ++# define PATH_ESC_CHARS ((char_u *)" \t\n*?{`\%#'"|!") ++# define SHELL_ESC_CHARS ((char_u *)" \t\n*?{`\%#'|!()&") ++# else ++# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") ++# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") ++# endif + #endif + + #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ +@@ -370,7 +376,7 @@ + * Define __w64 as an empty token for everything but MSVC 7.x or later. + */ + # if !defined(_MSC_VER) || (_MSC_VER < 1300) +-# define __w64 ++# define __w64 + # endif + typedef unsigned long __w64 long_u; + typedef long __w64 long_i; +@@ -1728,7 +1734,8 @@ + #define VV_MOUSE_COL 51 + #define VV_OP 52 + #define VV_SEARCHFORWARD 53 +-#define VV_LEN 54 /* number of v: vars */ ++#define VV_OLDFILES 54 ++#define VV_LEN 55 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +@@ -1979,6 +1986,9 @@ + # endif + #endif + ++#ifndef FEAT_NETBEANS_INTG ++# undef NBDEBUG ++#endif + #ifdef NBDEBUG /* Netbeans debugging. */ + # include "nbdebug.h" + #else +@@ -2054,4 +2064,10 @@ + #define DOSO_VIMRC 1 /* loading vimrc file */ + #define DOSO_GVIMRC 2 /* loading gvimrc file */ + ++/* flags for read_viminfo() and children */ ++#define VIF_WANT_INFO 1 /* load non-mark info */ ++#define VIF_WANT_MARKS 2 /* load file marks */ ++#define VIF_FORCEIT 4 /* overwrite info already read */ ++#define VIF_GET_OLDFILES 8 /* load v:oldfiles */ ++ + #endif /* VIM__H */ +diff -Naur vim72.orig/src/window.c vim72/src/window.c +--- vim72.orig/src/window.c 2008-08-06 12:00:30.000000000 +0100 ++++ vim72/src/window.c 2008-12-06 11:37:50.000000000 +0000 +@@ -531,7 +531,8 @@ + # ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + # endif +- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE); ++ (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ++ ECMD_HIDE, NULL); + if (nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +@@ -4028,14 +4029,14 @@ + if (mch_dirname(cwd, MAXPATHL) == OK) + globaldir = vim_strsave(cwd); + } +- mch_chdir((char *)curwin->w_localdir); +- shorten_fnames(TRUE); ++ if (mch_chdir((char *)curwin->w_localdir) == 0) ++ shorten_fnames(TRUE); + } + else if (globaldir != NULL) + { + /* Window doesn't have a local directory and we are not in the global + * directory: Change to the global directory. */ +- mch_chdir((char *)globaldir); ++ ignored = mch_chdir((char *)globaldir); + vim_free(globaldir); + globaldir = NULL; + shorten_fnames(TRUE); +diff -Naur vim72.orig/src/workshop.c vim72/src/workshop.c +--- vim72.orig/src/workshop.c 2008-06-21 19:53:26.000000000 +0100 ++++ vim72/src/workshop.c 2008-12-06 11:37:50.000000000 +0000 +@@ -1121,8 +1121,12 @@ + ? (char *)curbuf->b_sfname : "<None>"); + #endif + +- strcpy(ffname, (char *) curbuf->b_ffname); +- *filename = ffname; /* copy so nobody can change b_ffname */ ++ if (curbuf->b_ffname == NULL) ++ ffname[0] = NUL; ++ else ++ /* copy so nobody can change b_ffname */ ++ strcpy(ffname, (char *) curbuf->b_ffname); ++ *filename = ffname; + *curLine = curwin->w_cursor.lnum; + *curCol = curwin->w_cursor.col; + diff --git a/src/patches/vim-7.2-mandir-1.patch b/src/patches/vim-7.2-mandir-1.patch new file mode 100644 index 0000000..4038442 --- /dev/null +++ b/src/patches/vim-7.2-mandir-1.patch @@ -0,0 +1,82 @@ +Submitted By: Alexander E. Patrakov +Date: 2006-05-27 +Initial Package Version: 7.0 +Upstream status: LFS specific +Description: Adjusts installation of manual pages to meet Man-DB expectations. + + Additional change to explicitly install the man pages into + /usr/share/man instead of /usr/man by Ag Hatzim. + +--- vim70/src/Makefile.orig 2006-05-27 12:49:31.767959808 +0300 ++++ vim70/src/Makefile 2006-05-27 12:49:55.778309680 +0300 +@@ -867,7 +867,7 @@ + # Uncomment the next line to install Vim in "/usr/bin" + #BINDIR = /usr/bin + # Uncomment the next line to install Vim manuals in "/usr/share/man/man1" +-#MANDIR = /usr/share/man ++MANDIR = /usr/share/man + # Uncomment the next line to install Vim help files in "/usr/share/vim" + #DATADIR = /usr/share + +@@ -1325,7 +1325,7 @@ + DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR) + DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) + DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR) +-DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR) ++DEST_MAN_RU = $(DEST_MAN_TOP)/ru$(MAN1DIR) + DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR) + + # BASIC_SRC: files that are always used +@@ -1905,52 +1905,24 @@ + # install the language specific files for tools, if they were unpacked + install-tool-languages: + -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) + + # install the language specific files, if they were unpacked + install-languages: languages $(DEST_LANG) $(DEST_KMAP) + -$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) +- -$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_FR) $(INSTALLMLARGS) + -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_FR_I) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_FR_U) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_IT) $(INSTALLMLARGS) + -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_IT_I) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_IT_U) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_PL) $(INSTALLMLARGS) + -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_PL_I) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_PL_U) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_RU) $(INSTALLMLARGS) +- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ +- $(DEST_MAN_RU_U) $(INSTALLMLARGS) + if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ + cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \ + INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \
hooks/post-receive -- IPFire 2.x development tree