From e37d50a5def1c0ff162392cd3f017059c458650c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 6 Aug 2008 17:06:04 +0000 Subject: updated for version 7.2c-000 --- Contents | 8 +- Makefile | 2 +- README.txt | 2 +- README_ami.txt | 2 +- README_amibin.txt | 2 +- README_amisrc.txt | 2 +- README_bindos.txt | 2 +- README_dos.txt | 2 +- README_extra.txt | 2 +- README_lang.txt | 2 +- README_mac.txt | 2 +- README_ole.txt | 2 +- README_os2.txt | 2 +- README_os390.txt | 2 +- README_src.txt | 2 +- README_srcdos.txt | 2 +- README_unix.txt | 2 +- README_vms.txt | 2 +- README_w32s.txt | 2 +- nsis/gvim.nsi | 2 +- runtime/autoload/netrw.vim | 236 +- runtime/autoload/tar.vim | 6 +- runtime/autoload/vimball.vim | 60 +- runtime/autoload/zip.vim | 27 +- runtime/colors/darkblue.vim | 8 +- runtime/doc/Makefile | 25 +- runtime/doc/arabic.txt | 2 +- runtime/doc/autocmd.txt | 2 +- runtime/doc/change.txt | 4 +- runtime/doc/cmdline.txt | 19 +- runtime/doc/debug.txt | 2 +- runtime/doc/debugger.txt | 2 +- runtime/doc/develop.txt | 2 +- runtime/doc/diff.txt | 8 +- runtime/doc/digraph.txt | 6 +- runtime/doc/editing.txt | 2 +- runtime/doc/eval.txt | 24 +- runtime/doc/farsi.txt | 2 +- runtime/doc/filetype.txt | 25 +- runtime/doc/fold.txt | 2 +- runtime/doc/ft_ada.txt | 2 +- runtime/doc/ft_sql.txt | 2 +- runtime/doc/gui.txt | 2 +- runtime/doc/gui_w16.txt | 2 +- runtime/doc/gui_w32.txt | 2 +- runtime/doc/gui_x11.txt | 2 +- runtime/doc/hangulin.txt | 2 +- runtime/doc/hebrew.txt | 2 +- runtime/doc/help.txt | 4 +- runtime/doc/howto.txt | 2 +- runtime/doc/if_cscop.txt | 2 +- runtime/doc/if_mzsch.txt | 2 +- runtime/doc/if_ole.txt | 2 +- runtime/doc/if_perl.txt | 2 +- runtime/doc/if_pyth.txt | 2 +- runtime/doc/if_ruby.txt | 2 +- runtime/doc/if_sniff.txt | 2 +- runtime/doc/if_tcl.txt | 2 +- runtime/doc/indent.txt | 6 +- runtime/doc/index.txt | 2 +- runtime/doc/insert.txt | 2 +- runtime/doc/intro.txt | 2 +- runtime/doc/map.txt | 2 +- runtime/doc/mbyte.txt | 2 +- runtime/doc/message.txt | 2 +- runtime/doc/mlang.txt | 2 +- runtime/doc/motion.txt | 18 +- runtime/doc/netbeans.txt | 2 +- runtime/doc/options.txt | 27 +- runtime/doc/os_390.txt | 2 +- runtime/doc/os_amiga.txt | 2 +- runtime/doc/os_beos.txt | 2 +- runtime/doc/os_dos.txt | 2 +- runtime/doc/os_mac.txt | 2 +- runtime/doc/os_mint.txt | 2 +- runtime/doc/os_msdos.txt | 2 +- runtime/doc/os_os2.txt | 2 +- runtime/doc/os_qnx.txt | 2 +- runtime/doc/os_risc.txt | 2 +- runtime/doc/os_unix.txt | 2 +- runtime/doc/os_vms.txt | 2 +- runtime/doc/os_win32.txt | 2 +- runtime/doc/pattern.txt | 4 +- runtime/doc/pi_getscript.txt | 2 +- runtime/doc/pi_gzip.txt | 2 +- runtime/doc/pi_netrw.txt | 84 +- runtime/doc/pi_paren.txt | 2 +- runtime/doc/pi_spec.txt | 2 +- runtime/doc/pi_tar.txt | 2 +- runtime/doc/pi_vimball.txt | 2 +- runtime/doc/pi_zip.txt | 2 +- runtime/doc/print.txt | 2 +- runtime/doc/quickfix.txt | 2 +- runtime/doc/quickref.txt | 2 +- runtime/doc/quotes.txt | 2 +- runtime/doc/recover.txt | 2 +- runtime/doc/remote.txt | 2 +- runtime/doc/repeat.txt | 2 +- runtime/doc/rileft.txt | 2 +- runtime/doc/russian.txt | 2 +- runtime/doc/scroll.txt | 2 +- runtime/doc/sign.txt | 2 +- runtime/doc/spell.txt | 2 +- runtime/doc/sponsor.txt | 2 +- runtime/doc/starting.txt | 2 +- runtime/doc/syntax.txt | 6 +- runtime/doc/tabpage.txt | 2 +- runtime/doc/tags | 3 + runtime/doc/tagsrch.txt | 2 +- runtime/doc/term.txt | 2 +- runtime/doc/tips.txt | 2 +- runtime/doc/todo.txt | 93 +- runtime/doc/uganda.txt | 2 +- runtime/doc/undo.txt | 2 +- runtime/doc/usr_01.txt | 2 +- runtime/doc/usr_02.txt | 2 +- runtime/doc/usr_03.txt | 2 +- runtime/doc/usr_04.txt | 2 +- runtime/doc/usr_05.txt | 2 +- runtime/doc/usr_06.txt | 2 +- runtime/doc/usr_07.txt | 2 +- runtime/doc/usr_08.txt | 2 +- runtime/doc/usr_09.txt | 2 +- runtime/doc/usr_10.txt | 2 +- runtime/doc/usr_11.txt | 2 +- runtime/doc/usr_12.txt | 2 +- runtime/doc/usr_20.txt | 2 +- runtime/doc/usr_21.txt | 2 +- runtime/doc/usr_22.txt | 2 +- runtime/doc/usr_23.txt | 2 +- runtime/doc/usr_24.txt | 2 +- runtime/doc/usr_25.txt | 2 +- runtime/doc/usr_26.txt | 2 +- runtime/doc/usr_27.txt | 2 +- runtime/doc/usr_28.txt | 2 +- runtime/doc/usr_29.txt | 2 +- runtime/doc/usr_30.txt | 2 +- runtime/doc/usr_31.txt | 2 +- runtime/doc/usr_32.txt | 2 +- runtime/doc/usr_40.txt | 2 +- runtime/doc/usr_41.txt | 2 +- runtime/doc/usr_42.txt | 2 +- runtime/doc/usr_43.txt | 2 +- runtime/doc/usr_44.txt | 2 +- runtime/doc/usr_45.txt | 2 +- runtime/doc/usr_90.txt | 2 +- runtime/doc/usr_toc.txt | 2 +- runtime/doc/various.txt | 9 +- runtime/doc/version4.txt | 2 +- runtime/doc/version5.txt | 2 +- runtime/doc/version6.txt | 4 +- runtime/doc/version7.txt | 181 +- runtime/doc/vi_diff.txt | 2 +- runtime/doc/vim-fr.1 | 2 +- runtime/doc/vim-fr.UTF-8.1 | 2 +- runtime/doc/vim-it.1 | 2 +- runtime/doc/vim-it.UTF-8.1 | 2 +- runtime/doc/vim-pl.1 | 2 +- runtime/doc/vim-pl.UTF-8.1 | 2 +- runtime/doc/vim-ru.1 | 2 +- runtime/doc/vim-ru.UTF-8.1 | 2 +- runtime/doc/vim.1 | 4 +- runtime/doc/vim.man | 8 +- runtime/doc/vimdiff.1 | 6 +- runtime/doc/vimdiff.man | 14 +- runtime/doc/visual.txt | 2 +- runtime/doc/windows.txt | 2 +- runtime/doc/workshop.txt | 2 +- runtime/filetype.vim | 17 +- runtime/ftplugin/a2ps.vim | 8 +- runtime/ftplugin/alsaconf.vim | 8 +- runtime/ftplugin/arch.vim | 8 +- runtime/ftplugin/automake.vim | 8 +- runtime/ftplugin/bdf.vim | 8 +- runtime/ftplugin/calendar.vim | 8 +- runtime/ftplugin/cdrdaoconf.vim | 6 +- runtime/ftplugin/conf.vim | 8 +- runtime/ftplugin/context.vim | 5 +- runtime/ftplugin/crm.vim | 8 +- runtime/ftplugin/css.vim | 8 +- runtime/ftplugin/cvsrc.vim | 8 +- runtime/ftplugin/denyhosts.vim | 6 +- runtime/ftplugin/dictconf.vim | 8 +- runtime/ftplugin/dictdconf.vim | 8 +- runtime/ftplugin/dircolors.vim | 8 +- runtime/ftplugin/dosini.vim | 8 +- runtime/ftplugin/dtd.vim | 10 +- runtime/ftplugin/elinks.vim | 8 +- runtime/ftplugin/eterm.vim | 8 +- runtime/ftplugin/fetchmail.vim | 8 +- runtime/ftplugin/framescript.vim | 30 + runtime/ftplugin/git.vim | 4 +- runtime/ftplugin/gpg.vim | 8 +- runtime/ftplugin/group.vim | 8 +- runtime/ftplugin/grub.vim | 8 +- runtime/ftplugin/haskell.vim | 8 +- runtime/ftplugin/help.vim | 8 +- runtime/ftplugin/hostconf.vim | 6 +- runtime/ftplugin/hostsaccess.vim | 19 + runtime/ftplugin/html.vim | 10 +- runtime/ftplugin/indent.vim | 8 +- runtime/ftplugin/kconfig.vim | 8 +- runtime/ftplugin/ld.vim | 8 +- runtime/ftplugin/lftp.vim | 8 +- runtime/ftplugin/libao.vim | 8 +- runtime/ftplugin/limits.vim | 8 +- runtime/ftplugin/loginaccess.vim | 8 +- runtime/ftplugin/logindefs.vim | 8 +- runtime/ftplugin/m4.vim | 8 +- runtime/ftplugin/mailaliases.vim | 8 +- runtime/ftplugin/mailcap.vim | 8 +- runtime/ftplugin/manconf.vim | 8 +- runtime/ftplugin/mf.vim | 7 +- runtime/ftplugin/modconf.vim | 8 +- runtime/ftplugin/mp.vim | 8 +- runtime/ftplugin/mplayerconf.vim | 8 +- runtime/ftplugin/muttrc.vim | 6 + runtime/ftplugin/nanorc.vim | 8 +- runtime/ftplugin/netrc.vim | 8 +- runtime/ftplugin/nsis.vim | 22 + runtime/ftplugin/ocaml.vim | 39 +- runtime/ftplugin/pamconf.vim | 8 +- runtime/ftplugin/passwd.vim | 8 +- runtime/ftplugin/perl.vim | 5 +- runtime/ftplugin/pinfo.vim | 8 +- runtime/ftplugin/procmail.vim | 8 +- runtime/ftplugin/prolog.vim | 8 +- runtime/ftplugin/protocols.vim | 8 +- runtime/ftplugin/quake.vim | 8 +- runtime/ftplugin/racc.vim | 8 +- runtime/ftplugin/readline.vim | 8 +- runtime/ftplugin/rnc.vim | 8 +- runtime/ftplugin/rst.vim | 8 +- runtime/ftplugin/screen.vim | 8 +- runtime/ftplugin/sensors.vim | 8 +- runtime/ftplugin/services.vim | 8 +- runtime/ftplugin/setserial.vim | 8 +- runtime/ftplugin/sieve.vim | 8 +- runtime/ftplugin/slpconf.vim | 8 +- runtime/ftplugin/slpreg.vim | 8 +- runtime/ftplugin/slpspi.vim | 8 +- runtime/ftplugin/sshconfig.vim | 8 +- runtime/ftplugin/sudoers.vim | 8 +- runtime/ftplugin/sysctl.vim | 8 +- runtime/ftplugin/terminfo.vim | 8 +- runtime/ftplugin/udevconf.vim | 8 +- runtime/ftplugin/udevperm.vim | 8 +- runtime/ftplugin/udevrules.vim | 8 +- runtime/ftplugin/updatedb.vim | 8 +- runtime/ftplugin/xdefaults.vim | 8 +- runtime/ftplugin/xf86conf.vim | 8 +- runtime/ftplugin/xinetd.vim | 8 +- runtime/ftplugin/xml.vim | 11 +- runtime/ftplugin/xmodmap.vim | 8 +- runtime/ftplugin/yaml.vim | 8 +- runtime/ftplugin/zsh.vim | 8 +- runtime/indent/dtd.vim | 325 ++ runtime/indent/framescript.vim | 41 + runtime/plugin/netrwPlugin.vim | 24 +- runtime/plugin/tarPlugin.vim | 2 +- runtime/plugin/vimballPlugin.vim | 2 +- runtime/plugin/zipPlugin.vim | 11 +- runtime/scripts.vim | 3 +- runtime/spell/pt/main.aap | 2 +- runtime/spell/pt/pt_BR.diff | 2 +- runtime/spell/pt/pt_PT.diff | 2 +- runtime/syntax/2html.vim | 4 +- runtime/syntax/autohotkey.vim | 11 +- runtime/syntax/bzr.vim | 4 +- runtime/syntax/doxygen.vim | 22 +- runtime/syntax/forth.vim | 110 +- runtime/syntax/mailaliases.vim | 4 +- runtime/syntax/make.vim | 4 +- runtime/syntax/modconf.vim | 4 +- runtime/syntax/natural.vim | 252 +- runtime/syntax/racc.vim | 14 +- runtime/syntax/sas.vim | 115 +- runtime/syntax/sh.vim | 9 +- runtime/syntax/sieve.vim | 6 +- runtime/syntax/svn.vim | 5 +- runtime/syntax/updatedb.vim | 4 +- runtime/syntax/vim.vim | 19 +- runtime/syntax/yaml.vim | 176 +- runtime/syntax/zsh.vim | 43 +- runtime/tools/vimm | 4 +- runtime/tools/vimspell.sh | 3 +- runtime/tutor/tutor.vim | 7 +- src/GvimExt/GvimExt.reg | 4 +- src/Makefile | 2 +- src/buffer.c | 2 +- src/config.aap.in | 3 + src/edit.c | 4 +- src/feature.h | 2 +- src/fileio.c | 4 +- src/fold.c | 2 +- src/if_xcmdsrv.c | 9 +- src/installman.sh | 4 +- src/mbyte.c | 4 +- src/os_mswin.c | 2 +- src/os_unix.c | 8 +- src/os_vms.c | 2 +- src/po/Make_cyg.mak | 2 + src/po/Make_ming.mak | 2 + src/po/Make_mvc.mak | 2 + src/po/Makefile | 7 +- src/po/ca.po | 2 +- src/po/de.po | 2 +- src/po/en_GB.po | 8 +- src/po/eo.po | 25 +- src/po/fi.po | 948 +++--- src/po/fr.po | 2 +- src/po/ga.po | 2 +- src/po/it.po | 23 +- src/po/ja.po | 2 +- src/po/ja.sjis.po | 2 +- src/po/no.po | 2 +- src/po/pl.UTF-8.po | 2 +- src/po/pl.cp1250.po | 2 +- src/po/pl.po | 2 +- src/po/pt_BR.po | 6131 ++++++++++++++++++++++++++++++++++++++ src/po/sk.cp1250.po | 2 +- src/po/sk.po | 2 +- src/po/sv.po | 2 +- src/po/uk.cp1251.po | 2 +- src/po/uk.po | 2 +- src/po/zh_CN.UTF-8.po | 2 +- src/po/zh_CN.cp936.po | 2 +- src/po/zh_CN.po | 2 +- src/proto/charset.pro | 10 +- src/version.c | 60 - src/version.h | 16 +- src/vim.def | 2 +- src/vim16.def | 2 +- src/window.c | 2 +- 334 files changed, 9001 insertions(+), 1545 deletions(-) create mode 100644 runtime/ftplugin/framescript.vim create mode 100644 runtime/ftplugin/hostsaccess.vim create mode 100644 runtime/ftplugin/nsis.vim create mode 100644 runtime/indent/dtd.vim create mode 100644 runtime/indent/framescript.vim create mode 100644 src/po/pt_BR.po diff --git a/Contents b/Contents index ad644f22ac..acb6c4f700 100644 --- a/Contents +++ b/Contents @@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful messages, shows current file name in window title, on-line help, rectangular cut/paste, etc., etc., etc... - Version 7.2b. Also runs under UNIX, MSDOS and other systems. - vim72brt.tgz contains the documentation and syntax files. - vim72bbin.tgz contains the binaries. - vim72bsrc.tgz contains the sources. + Version 7.2c. Also runs under UNIX, MSDOS and other systems. + vim72crt.tgz contains the documentation and syntax files. + vim72cbin.tgz contains the binaries. + vim72csrc.tgz contains the sources. Author: Bram Moolenaar et al. diff --git a/Makefile b/Makefile index b40062b642..53a588bb62 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,7 @@ all install uninstall tools config configure reconfig proto depend lint tags typ # Before creating an archive first delete all backup files, *.orig, etc. MAJOR = 7 -MINOR = 2b +MINOR = 2c # Uncomment this line if the Win32s version is to be included. DOSBIN_S = dosbin_s diff --git a/README.txt b/README.txt index db7bbf935d..af1da85144 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -README.txt for version 7.2b of Vim: Vi IMproved. +README.txt for version 7.2c of Vim: Vi IMproved. WHAT IS VIM diff --git a/README_ami.txt b/README_ami.txt index 5480a8863d..ccbf71dff8 100644 --- a/README_ami.txt +++ b/README_ami.txt @@ -1,4 +1,4 @@ -README_ami.txt for version 7.2b of Vim: Vi IMproved. +README_ami.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on Amiga systems. See README.txt for general information about Vim. diff --git a/README_amibin.txt b/README_amibin.txt index dc59e26275..b1c9ea5a7b 100644 --- a/README_amibin.txt +++ b/README_amibin.txt @@ -1,4 +1,4 @@ -README_amibin.txt for version 7.2b of Vim: Vi IMproved. +README_amibin.txt for version 7.2c of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. diff --git a/README_amisrc.txt b/README_amisrc.txt index ba8dee4ffb..3b670a1362 100644 --- a/README_amisrc.txt +++ b/README_amisrc.txt @@ -1,4 +1,4 @@ -README_amisrc.txt for version 7.2b of Vim: Vi IMproved. +README_amisrc.txt for version 7.2c of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. diff --git a/README_bindos.txt b/README_bindos.txt index 90d42ee08a..5e7f3ab41a 100644 --- a/README_bindos.txt +++ b/README_bindos.txt @@ -1,4 +1,4 @@ -README_bindos.txt for version 7.2b of Vim: Vi IMproved. +README_bindos.txt for version 7.2c of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. diff --git a/README_dos.txt b/README_dos.txt index d7dfd96c54..6cd6c8b582 100644 --- a/README_dos.txt +++ b/README_dos.txt @@ -1,4 +1,4 @@ -README_dos.txt for version 7.2b of Vim: Vi IMproved. +README_dos.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on MS-DOS and MS-Windows systems. See "README.txt" for general information about Vim. diff --git a/README_extra.txt b/README_extra.txt index 7ee728444e..9c960c58c0 100644 --- a/README_extra.txt +++ b/README_extra.txt @@ -1,4 +1,4 @@ -README_extra.txt for version 7.2b of Vim: Vi IMproved. +README_extra.txt for version 7.2c of Vim: Vi IMproved. The extra archive of Vim is to be used in combination with the source archive (vim-7.0-src.tar.gz). The extra archive is useless without it. diff --git a/README_lang.txt b/README_lang.txt index 6140459231..55fbab507e 100644 --- a/README_lang.txt +++ b/README_lang.txt @@ -1,4 +1,4 @@ -README_lang.txt for version 7.2b of Vim: Vi IMproved. +README_lang.txt for version 7.2c of Vim: Vi IMproved. This file contains files for non-English languages: - Translated messages. diff --git a/README_mac.txt b/README_mac.txt index 936b39e7ac..bf543b7ef5 100644 --- a/README_mac.txt +++ b/README_mac.txt @@ -1,4 +1,4 @@ -README_mac.txt for version 7.2b of Vim: Vi IMproved. +README_mac.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on Macintosh systems. See "README.txt" for general information about Vim. diff --git a/README_ole.txt b/README_ole.txt index 274048b2d5..6d013d6925 100644 --- a/README_ole.txt +++ b/README_ole.txt @@ -1,4 +1,4 @@ -README_ole.txt for version 7.2b of Vim: Vi IMproved. +README_ole.txt for version 7.2c of Vim: Vi IMproved. This archive contains gvim.exe with OLE interface and VisVim. This version of gvim.exe can also load a number of interface dynamically (you diff --git a/README_os2.txt b/README_os2.txt index edf3065553..c8ac9d8929 100644 --- a/README_os2.txt +++ b/README_os2.txt @@ -1,4 +1,4 @@ -README_os2.txt for version 7.2b of Vim: Vi IMproved. +README_os2.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on OS/2 systems. See "README.txt" for general information about Vim. diff --git a/README_os390.txt b/README_os390.txt index 531aaf6d36..ab8f2463ca 100644 --- a/README_os390.txt +++ b/README_os390.txt @@ -1,4 +1,4 @@ -README_os_390.txt for version 7.2b of Vim: Vi IMproved. +README_os_390.txt for version 7.2c of Vim: Vi IMproved. Welcome to the OS/390 Unix port of VIM. diff --git a/README_src.txt b/README_src.txt index 5cd87f726d..b907bc52e5 100644 --- a/README_src.txt +++ b/README_src.txt @@ -1,4 +1,4 @@ -README_src.txt for version 7.2b of Vim: Vi IMproved. +README_src.txt for version 7.2c of Vim: Vi IMproved. The source archive contains the files needed to compile Vim on Unix systems. It is packed for Unix systems (NL line separator). It is also used for other diff --git a/README_srcdos.txt b/README_srcdos.txt index 12e6ef6ee3..19c174b5ef 100644 --- a/README_srcdos.txt +++ b/README_srcdos.txt @@ -1,4 +1,4 @@ -README_srcdos.txt for version 7.2b of Vim: Vi IMproved. +README_srcdos.txt for version 7.2c of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. diff --git a/README_unix.txt b/README_unix.txt index 5fa446419c..67c9725a84 100644 --- a/README_unix.txt +++ b/README_unix.txt @@ -1,4 +1,4 @@ -README_unix.txt for version 7.2b of Vim: Vi IMproved. +README_unix.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on Unix systems. See "README.txt" for general information about Vim. diff --git a/README_vms.txt b/README_vms.txt index 3b8cc53c79..cc56ee3fa6 100644 --- a/README_vms.txt +++ b/README_vms.txt @@ -1,4 +1,4 @@ -README_vms.txt for version 7.2b of Vim: Vi IMproved. +README_vms.txt for version 7.2c of Vim: Vi IMproved. This file explains the installation of Vim on VMS systems. See "README.txt" in the runtime archive for information about Vim. diff --git a/README_w32s.txt b/README_w32s.txt index 7e5e96a5ab..0461f51ce2 100644 --- a/README_w32s.txt +++ b/README_w32s.txt @@ -1,4 +1,4 @@ -README_w32s.txt for version 7.2b of Vim: Vi IMproved. +README_w32s.txt for version 7.2c of Vim: Vi IMproved. This archive contains the gvim.exe that was specifically compiled for use in the Win32s subsystem in MS-Windows 3.1 and 3.11. diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index bd3f0c2d45..0dcc611e5e 100644 --- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -22,7 +22,7 @@ !define HAVE_NLS !define VER_MAJOR 7 -!define VER_MINOR 2b +!define VER_MINOR 2c # ----------- No configurable settings below this line ----------- diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 6221294bbd..8bd597aaf9 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -1,7 +1,7 @@ " netrw.vim: Handles file transfer and remote directory listing across " AUTOLOAD SECTION -" Date: Jul 12, 2008 -" Version: 127 +" Date: Aug 01, 2008 +" Version: 131 " Maintainer: Charles E Campbell, Jr " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1 @@ -27,7 +27,7 @@ if !exists("s:NOTE") let s:WARNING = 1 let s:ERROR = 2 endif -let g:loaded_netrw = "v127" +let g:loaded_netrw = "v131" " sanity checks if v:version < 700 @@ -76,7 +76,13 @@ if !exists("g:netrw_ftp_cmd") let g:netrw_ftp_cmd = "ftp" endif if !exists("g:netrw_http_cmd") - if executable("curl") + if executable("elinks") + let g:netrw_http_cmd = "elinks" + let g:netrw_http_xcmd= "-dump >" + elseif executable("links") + let g:netrw_http_cmd = "links" + let g:netrw_http_xcmd= "-dump >" + elseif executable("curl") let g:netrw_http_cmd = "curl -o" elseif executable("wget") let g:netrw_http_cmd = "wget -q -O" @@ -359,6 +365,7 @@ endif if !exists("g:netrw_tmpfile_escape") let g:netrw_tmpfile_escape= ' &;' endif +let s:netrw_map_escape = "<|\n\r\\\\"" " BufEnter event ignored by decho when following variable is true " Has a side effect that doau BufReadPost doesn't work, so @@ -712,15 +719,16 @@ fun! netrw#NetRead(mode,...) " call Decho("read via ftp+.netrc (method #2)") let netrw_fname= b:netrw_fname call s:SaveBufVars()|new|call s:RestoreBufVars() + let filtbuf= bufnr("%") setlocal ff=unix - exe "put ='".g:netrw_ftpmode."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpmode +" call Decho("filter input: ".getline(line("$"))) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpextracmd +" call Decho("filter input: ".getline(line("$"))) endif - exe "put ='".'get \"'.netrw_fname.'\" '.tmpfile."'" -" call Decho("filter input: ".getline('.')) + call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile) +" call Decho("filter input: ".getline(line("$"))) if exists("g:netrw_port") && g:netrw_port != "" " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1)) exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1) @@ -746,6 +754,7 @@ fun! netrw#NetRead(mode,...) " call Decho("read via ftp+mipf (method #3)") let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) call s:SaveBufVars()|new|call s:RestoreBufVars() + let filtbuf= bufnr("%") setlocal ff=unix if exists("g:netrw_port") && g:netrw_port != "" put ='open '.g:netrw_machine.' '.g:netrw_port @@ -770,7 +779,7 @@ fun! netrw#NetRead(mode,...) " call Decho("filter input: ".getline('.')) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif put ='get \"'.netrw_fname.'\" '.tmpfile @@ -820,15 +829,20 @@ fun! netrw#NetRead(mode,...) return endif - if match(b:netrw_fname,"#") == -1 - " using g:netrw_http_cmd (usually wget or curl) + if match(b:netrw_fname,"#") == -1 || exists("g:netrw_http_xcmd") + " using g:netrw_http_cmd (usually elinks, links, curl, wget, or fetch) " call Decho('using '.g:netrw_http_cmd.' (# not in b:netrw_fname<'.b:netrw_fname.">)") -" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.netrw_fname,1)) - exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1) + if exists("g:netrw_http_xcmd") +" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)) + exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1) + else +" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)) + exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1) + endif let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) else - " wget/curl plus a jump to an in-page marker (ie. http://abc/def.html#aMarker) + " wget/curl/fetch plus a jump to an in-page marker (ie. http://abc/def.html#aMarker) " call Decho(("wget/curl plus jump (# in b:netrw_fname<".b:netrw_fname.">)") let netrw_html= substitute(b:netrw_fname,"#.*$","","") let netrw_tag = substitute(b:netrw_fname,"^.*#","","") @@ -1084,14 +1098,14 @@ fun! netrw#NetWrite(...) range new " call Decho("filter input window#".winnr()) setlocal ff=unix - exe "put ='".g:netrw_ftpmode."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpmode +" call Decho("filter input: ".getline('$')) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpextracmd +" call Decho("filter input: ".getline("$")) endif - exe "put ='".'put \"'.tmpfile.'\" \"'.netrw_fname.'\"'."'" -" call Decho("filter input: ".getline('.')) + call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"') +" call Decho("filter input: ".getline("$")) if exists("g:netrw_port") && g:netrw_port != "" " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1)) exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1) @@ -1276,10 +1290,11 @@ fun! netrw#NetSource(...) let i= 1 while i <= a:0 call netrw#NetRead(3,a:{i}) -" call Decho("s:netread_tmpfile<".s:netrw_tmpfile.">") +" call Decho("(netrw#NetSource) s:netread_tmpfile<".s:netrw_tmpfile.">") if s:FileReadable(s:netrw_tmpfile) -" call Decho("exe so ".s:netrw_tmpfile) - exe "so ".s:netrw_tmpfile +" call Decho("(netrw#NetSource) exe so ".fnameescape(s:netrw_tmpfile)) + exe "so ".fnameescape(s:netrw_tmpfile) +" call Decho("(netrw#NetSource) delete(".s:netrw_tmpfile.")") call delete(s:netrw_tmpfile) unlet s:netrw_tmpfile else @@ -1654,6 +1669,7 @@ endfun fun! s:BrowserMaps(islocal) " call Dfunc("s:BrowserMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") if a:islocal +" call Decho("make local maps") nnoremap :call netrw#LocalBrowseCheck(NetrwBrowseChgDir(1,NetrwGetWord())) nnoremap - :exe "norm! 0"call netrw#LocalBrowseCheck(NetrwBrowseChgDir(1,'../')) nnoremap a :call NetrwHide(1) @@ -1709,23 +1725,25 @@ fun! s:BrowserMaps(islocal) if s:didstarstar || !mapcheck("","n") nnoremap :Pexplore endif + let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) if g:netrw_mousemaps == 1 nnoremap :call NetrwLeftmouse(1) nnoremap :call NetrwPrevWinOpen(1) nnoremap :call NetrwMarkFile(1,NetrwGetWord()) - exe 'nnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - endif - exe 'nnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'nnoremap D :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap D :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'nnoremap R :call NetrwLocalRename("'.b:netrw_curdir.'")' - exe 'vnoremap R :call NetrwLocalRename("'.b:netrw_curdir.'")' + exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + endif + exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'nnoremap D :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap D :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'nnoremap R :call NetrwLocalRename("'.mapsafecurdir.'")' + exe 'vnoremap R :call NetrwLocalRename("'.mapsafecurdir.'")' exe 'nnoremap m :call NetrwMakeDir("")' nnoremap :he netrw-quickhelp else " remote +" call Decho("make remote maps") call s:RemotePathAnalysis(b:netrw_curdir) nnoremap :call NetrwBrowse(0,NetrwBrowseChgDir(0,NetrwGetWord())) nnoremap :call NetrwRefresh(0,NetrwBrowseChgDir(0,'./')) @@ -1774,21 +1792,25 @@ fun! s:BrowserMaps(islocal) if !hasmapto('NetrwRefresh') nmap NetrwRefresh endif + + let mapsafepath = escape(s:path, s:netrw_map_escape) + let mapsafeusermach = escape(s:user.s:machine, s:netrw_map_escape) + nnoremap NetrwRefresh :call NetrwRefresh(0,NetrwBrowseChgDir(0,'./')) if g:netrw_mousemaps == 1 nnoremap :call NetrwLeftmouse(0) nnoremap :call NetrwPrevWinOpen(0) nnoremap :call NetrwMarkFile(0,NetrwGetWord()) - exe 'nnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - endif - exe 'nnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'nnoremap d :call NetrwMakeDir("'.s:user.s:machine.'")' - exe 'nnoremap D :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap D :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'nnoremap R :call NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap R :call NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")' + exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + endif + exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'nnoremap d :call NetrwMakeDir("'.mapsafeusermach.'")' + exe 'nnoremap D :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap D :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'nnoremap R :call NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap R :call NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")' nnoremap :he netrw-quickhelp endif call s:SetRexDir(a:islocal,b:netrw_curdir) @@ -1842,7 +1864,7 @@ fun! s:NetrwBookmarkDir(chg,curdir) " change to the bookmarked directory " call Decho("(user: ) change to the bookmarked directory") if exists("g:NETRW_BOOKMARKDIR_{v:count}") - exe "e ".g:NETRW_BOOKMARKDIR_{v:count} + exe "e ".fnameescape(g:NETRW_BOOKMARKDIR_{v:count}) else echomsg "Sorry, bookmark#".v:count." doesn't exist!" endif @@ -2340,8 +2362,8 @@ fun! s:NetrwGetBuffer(islocal,dirname) " let v:errmsg= "" " Decho let escdirname= fnameescape(dirname) " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") -" call Decho(' exe silent! keepalt file '.fnameescape(escdirname)) - exe 'silent! keepalt file '.fnameescape(escdirname) +" call Decho(' exe silent! keepalt file '.escdirname) + exe 'silent! keepalt file '.escdirname " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") endif " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">") @@ -3273,7 +3295,7 @@ fun! netrw#Explore(indx,dosplit,style,...) if starpat == 1 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) " call Decho("starpat=".starpat.": build *//pattern list") - exe "vimgrep /".pattern."/gj ".b:netrw_curdir."/*" + exe "vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*" let w:netrw_explore_list = map(getqflist(),'bufname(v:val.bufnr)') if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif @@ -3707,6 +3729,14 @@ endfun " of whatever may happen to be under the cursor at that " moment. When the mouse and gui are available, " shift-leftmouse may also be used to mark files. +" +" Creates two lists +" s:netrwmarkfilelist -- holds complete paths to all marked files +" s:netrwmarkfilelist_# -- holds list of marked files in current-buffer's directory (#==bufnr()) +" +" Creates a marked file match string +" s:netrwmarfilemtch_# -- used with 2match to display marked files +" fun! s:NetrwMarkFile(islocal,fname) " call Dfunc("s:NetrwMarkFile(islocal=".a:islocal." fname<".a:fname.">)") let curbufnr= bufnr("%") @@ -3826,7 +3856,7 @@ fun! s:NetrwMarkFileCompress(islocal) let fname= shellescape(s:ComposePath(curdir,fname)) endif else - let fname= shellescape(b:netrw_curdir.fname) + let fname= shellescape(b:netrw_curdir.fname,1) endif if executable(exe) if a:islocal @@ -3886,7 +3916,7 @@ fun! s:NetrwMarkFileCopy(islocal) if a:islocal && s:netrwmftgt_islocal " Copy marked files, local directory to local directory " call Decho("copy from local to local") - let args= join(map(copy(s:netrwmarkfilelist_{bufnr('%')}),"b:netrw_curdir.\"/\".shellescape(v:val)")) + let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"shellescape(b:netrw_curdir.\"/\".v:val)")) " call Decho("system(".g:netrw_localcopycmd." ".args." ".shellescape(s:netrwmftgt).")") call system(s:WinPath(g:netrw_localcopycmd)." ".args." ".shellescape(s:netrwmftgt)) @@ -3914,7 +3944,7 @@ fun! s:NetrwMarkFileCopy(islocal) if isdirectory(tmpdir) exe "keepjumps lcd ".fnameescape(tmpdir) call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) - let localfiles= map(copy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') + let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') call s:NetrwUpload(localfiles,s:netrwmftgt) if getcwd() == tmpdir for fname in s:netrwmarkfilelist_{bufnr('%')} @@ -3957,24 +3987,21 @@ endfun fun! s:NetrwMarkFileDiff(islocal) " call Dfunc("s:NetrwMarkFileDiff(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") let curbufnr= bufnr("%") - if exists("s:netrwmarkfilelist_{curbufnr}") + if exists("s:netrwmarkfilelist_{curbufnr}") let cnt = 0 let curdir = b:netrw_curdir for fname in s:netrwmarkfilelist let cnt= cnt + 1 - if !a:islocal - let fname= curdir.fname - endif if cnt == 1 -" call Decho("diffthis: ".fname) - exe "e ".fname +" call Decho("diffthis: fname<".fname.">") + exe "e ".fnameescape(fname) diffthis elseif cnt == 2 || cnt == 3 vsplit wincmd l " call Decho("diffthis: ".fname) - exe "e ".fname + exe "e ".fnameescape(fname) diffthis else break @@ -3982,6 +4009,7 @@ fun! s:NetrwMarkFileDiff(islocal) endfor call s:NetrwUnmarkList(curbufnr,curdir) endif + " call Dret("s:NetrwMarkFileDiff") endfun @@ -3995,17 +4023,7 @@ fun! s:NetrwMarkFileEdit(islocal) let curbufnr = bufnr("%") if exists("s:netrwmarkfilelist_{curbufnr}") call s:SetRexDir(a:islocal,curdir) - if a:islocal && g:netrw_keepdir - " use complete paths if its local and keepdir enabled - let flist= "" - for fname in s:netrwmarkfilelist -" let flist= flist." ".s:ComposePath(curdir,fname) - let flist= flist." ".fname - endfor - else -" let flist= substitute(escape(join(s:netrwmarkfilelist_{curbufnr},"\t"),' '),"\t",' ','g') - let flist= substitute(escape(join(s:netrwmarkfilelist,"\t"),' '),"\t",' ','g') - endif + let flist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) " unmark markedfile list " call s:NetrwUnmarkList(curbufnr,curdir) call s:NetrwUnmarkAll() @@ -4138,17 +4156,11 @@ endfun fun! s:NetrwMarkFileGrep(islocal) " call Dfunc("s:NetrwMarkFileGrep(islocal=".a:islocal.")") let svpos = netrw#NetrwSavePosn() - let curdir = b:netrw_curdir let curbufnr = bufnr("%") if exists("s:netrwmarkfilelist") " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">") - let netrwmarkfilelist= "" - for fname in s:netrwmarkfilelist -" call Decho("fname<".fname.">") - let fname = escape(substitute(fname,"[\"']","","g")," ") - let netrwmarkfilelist = netrwmarkfilelist." ".fname - endfor + let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) call s:NetrwUnmarkAll() " ask user for pattern @@ -4295,7 +4307,7 @@ fun! s:NetrwMarkFilePrint(islocal) 1split " the autocmds will handle both local and remote files " call Decho("exe silent e ".escape(fname,' ')) - exe "silent e ".escape(fname,' ') + exe "silent e ".fnameescape(fname) " call Decho("hardcopy") hardcopy q @@ -4419,21 +4431,11 @@ fun! s:NetrwMarkFileTag(islocal) if exists("s:netrwmarkfilelist") " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">") - if a:islocal && g:netrw_keepdir - let netrwmarkfilelist= "" - for fname in s:netrwmarkfilelist -" let netrwmarkfilelist= netrwmarkfilelist." ".s:ComposePath(curdir,fname) - let netrwmarkfilelist= netrwmarkfilelist." ".fname - endfor - else - let netrwmarkfilelist= string(s:netrwmarkfilelist) - let netrwmarkfilelist= substitute(netrwmarkfilelist,'[[\],]','','g') - endif + let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "shellescape(v:val,".!a:islocal.")")) call s:NetrwUnmarkAll() if a:islocal if executable(g:netrw_ctags) - call map(netrwmarkfilelist,"shellescape(v:val)") " call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")") call system(g:netrw_ctags." ".netrwmarkfilelist) else @@ -4447,7 +4449,7 @@ fun! s:NetrwMarkFileTag(islocal) e tags let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','') " call Decho("curdir<".curdir."> path<".path.">") - exe '%s/\t\(\S\+\)\t/\t'.escape(path,'/').'\1\t/e' + exe '%s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e' wq! endif 2match none @@ -4771,7 +4773,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) endfor else " transfer files with one command - let filelist= join(map(copy(fname),"shellescape(v:val)")) + let filelist= join(map(deepcopy(fname),"shellescape(v:val)")) " call Decho("system(".g:netrw_localcopycmd." ".filelist." ".shellescape(topath).")") call system(g:netrw_localcopycmd." ".filelist." ".shellescape(topath)) endif @@ -4801,7 +4803,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) else let path= "" endif - let filelist= join(map(copy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1))')) + let filelist= join(map(deepcopy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1)')) " call Decho("exe ".s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1)) exe s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1) @@ -4812,7 +4814,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) let tmpbufnr= bufnr("%") setlocal ff=unix if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" - exe "put ='".g:netrw_ftpmode."'" + put =g:netrw_ftpmode " call Decho("filter input: ".getline('$')) endif @@ -4822,7 +4824,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif for fname in fnamelist @@ -4880,12 +4882,12 @@ fun! netrw#NetrwObtain(islocal,fname,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif for fname in fnamelist @@ -5053,15 +5055,13 @@ fun! s:NetrwUpload(fname,tgt,...) " handle uploading a single file using NetWrite " call Decho("handle uploading a single file via NetWrite") 1split - let efname= escape(a:fname,g:netrw_fname_escape) -" call Decho("exe e ".efname) - exe "e ".efname +" call Decho("exe e ".fnameescape(a:fname)) + exe "e ".fnameescape(a:fname) " call Decho("now locally editing<".expand("%").">, has ".line("$")." lines") if a:tgt =~ '/$' let wfname= substitute(a:fname,'^.*/','','') - let wfname= escape(a:tgt.wfname,g:netrw_fname_escape) " call Decho("exe w! ".fnameescape(wfname)) - exe "w! ".fnameescape(wfname) + exe "w! ".fnameescape(a:tgt.wfname) else " call Decho("writing local->remote: exe w ".fnameescape(a:tgt)) exe "w ".fnameescape(a:tgt) @@ -5075,8 +5075,8 @@ fun! s:NetrwUpload(fname,tgt,...) let curdir= getcwd() if a:tgt =~ '^scp:' exe "keepjumps silent lcd ".fnameescape(fromdir) - let filelist= copy(s:netrwmarkfilelist_{bufnr('%')}) - let args = join(map(filelist,"shellescape(v:val)")) + let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')}) + let args = join(map(filelist,"shellescape(v:val, 1)")) if exists("g:netrw_port") && g:netrw_port != "" let useport= " ".g:netrw_scpport." ".g:netrw_port else @@ -5097,11 +5097,11 @@ fun! s:NetrwUpload(fname,tgt,...) silent keepjumps new " call Decho("filter input window#".winnr()) - exe "put ='".g:netrw_ftpmode."'" + put =g:netrw_ftpmode " call Decho("filter input: ".getline('$')) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif @@ -5166,7 +5166,7 @@ fun! s:NetrwUpload(fname,tgt,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif @@ -5210,7 +5210,7 @@ fun! s:NetrwPreview(path) range call s:NetrwSafeOptions() if has("quickfix") if !isdirectory(a:path) - exe (g:netrw_preview? "vert " : "")."pedit ".escape(a:path,g:netrw_fname_escape) + exe (g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path) elseif !exists("g:netrw_quiet") call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38) endif @@ -6027,8 +6027,8 @@ fun! s:NetrwRemoteListing() let listcmd= s:MakeSshCmd(g:netrw_list_cmd) " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)") if g:netrw_scp_cmd =~ '^pscp' -" call Decho("1: exe silent r! ".listcmd.s:path) - exe "silent r! ".listcmd.s:path +" call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1)) + exe "silent r! ".listcmd.shellescape(s:path, 1) " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like g/^Listing directory/d g/^d[-rwx][-rwx][-rwx]/s+$+/+e @@ -6286,7 +6286,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) put ='cd \"'.a:path.'\"' endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif call setline(line("$")+1,a:listcmd) @@ -6320,7 +6320,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) put ='cd \"'.a:path.'\"' endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif call setline(line("$")+1,a:listcmd) @@ -6669,7 +6669,7 @@ fun! s:LocalBrowseShellCmdRefresh() if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 " wipe out any non-displaying netrw buffer " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">") - exe "silent! bd ".ibuf + exe "silent! bd ".fnameescape(ibuf) call remove(s:netrw_browselist,ibl) " call Decho("browselist=".string(s:netrw_browselist)) continue @@ -6860,7 +6860,7 @@ fun! s:NetrwLocalRename(path) range let newname = substitute(oldname,subfrom,subto,'') endif endif - let ret= rename(oldname,newname) + call rename(oldname,newname) endfor 2match none unlet s:netrwmarkfilelist_{bufnr("%")} @@ -6891,7 +6891,7 @@ fun! s:NetrwLocalRename(path) range let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) call inputrestore() - let ret= rename(oldname,newname) + call rename(oldname,newname) " call Decho("renaming <".oldname."> to <".newname.">") let ctr= ctr + 1 @@ -7570,22 +7570,24 @@ fun! s:SetRexDir(islocal,dirname) " call Dfunc("s:SetRexDir(islocal=".a:islocal." dirname<".a:dirname.">)") " set up Rex and leftmouse-double-click if a:islocal - exe 'com! Rexplore call s:NetrwRexplore(1,"'.a:dirname.'")' + exe 'com! Rexplore call s:NetrwRexplore(1,"'.escape(a:dirname,'"\').'")' if g:netrw_retmap silent! unmap <2-leftmouse> if !hasmapto("NetrwReturn") nmap <2-leftmouse> NetrwReturn endif - exe 'nnoremap NetrwReturn :call NetrwRexplore(1,"'.a:dirname.'")' + let dir = escape(a:dirname, s:netrw_map_escape) + exe 'nnoremap NetrwReturn :call NetrwRexplore(1,"'.dir.'")' endif else - exe 'com! Rexplore call s:NetrwRexplore(0,"'.a:dirname.'")' + exe 'com! Rexplore call s:NetrwRexplore(0,"'.escape(a:dirname,'"\').'")' if g:netrw_retmap silent! unmap <2-leftmouse> if !hasmapto("NetrwReturn") nmap <2-leftmouse> NetrwReturn endif - exe 'nnoremap NetrwReturn :call NetrwRexplore(0,"'.a:dirname.'")' + let dir = escape(a:dirname, s:netrw_map_escape) + exe 'nnoremap NetrwReturn :call NetrwRexplore(0,"'.dir.'")' endif endif " call Dret("s:SetRexDir") diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index b1529d60fa..fc168e8013 100644 --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -1,7 +1,7 @@ " tar.vim: Handles browsing tarfiles " AUTOLOAD PORTION -" Date: Jul 12, 2008 -" Version: 19 + changes by Bram +" Date: Jul 30, 2008 +" Version: 20 " Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " @@ -24,7 +24,7 @@ set cpo&vim if &cp || exists("g:loaded_tar") || v:version < 700 finish endif -let g:loaded_tar= "v19+b" +let g:loaded_tar= "v20" "call Decho("loading autoload/tar.vim") if v:version < 701 || (v:version == 701 && !has("patch299")) echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299" diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim index d69c64532d..4f6292b9c0 100644 --- a/runtime/autoload/vimball.vim +++ b/runtime/autoload/vimball.vim @@ -1,7 +1,7 @@ " vimball.vim : construct a file containing both paths and files " Author: Charles E. Campbell, Jr. -" Date: Jun 05, 2008 -" Version: 27 +" Date: Jul 30, 2008 +" Version: 29 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. " The VIM LICENSE applies to Vimball.vim, and Vimball.txt @@ -15,7 +15,7 @@ if &cp || exists("g:loaded_vimball") || v:version < 700 finish endif let s:keepcpo = &cpo -let g:loaded_vimball = "v27" +let g:loaded_vimball = "v29" set cpo&vim "DechoTabOn @@ -169,9 +169,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range call setline(lastline+1,0) " write the file from the tab - let svfilepath= s:Path(svfile,'') -" call Decho("exe $r ".fnameescape(svfilepath)) - exe "$r ".fnameescape(svfilepath) +" call Decho("exe $r ".fnameescape(svfile)) + exe "$r ".fnameescape(svfile) call setline(lastline+1,line("$") - lastline - 1) " call Decho("lastline=".lastline." line$=".line("$")) @@ -186,13 +185,11 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range call s:ChgDir(curdir) setlocal ff=unix if a:writelevel - let vbnamepath= s:Path(vbname,'') -" call Decho("exe w! ".fnameescape(vbnamepath)) - exe "w! ".fnameescape(vbnamepath) +" call Decho("exe w! ".fnameescape(vbname)) + exe "w! ".fnameescape(vbname) else - let vbnamepath= s:Path(vbname,'') -" call Decho("exe w ".fnameescape(vbnamepath)) - exe "w ".fnameescape(vbnamepath) +" call Decho("exe w ".fnameescape(vbname)) + exe "w ".fnameescape(vbname) endif " call Decho("Vimball<".vbname."> created") echo "Vimball<".vbname."> created" @@ -215,8 +212,8 @@ endfun fun! vimball#Vimball(really,...) " call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0) - if v:version < 701 || (v:version == 701 && !has("patch299")) - echoerr "This version of vimball requires vim 7.1 with patch 299" + if v:version < 701 || (v:version == 701 && !exists('*fnameescape')) + echoerr "your vim is missing the fnameescape() function" " call Dret("vimball#Vimball : needs 7.1 with patch 299") return endif @@ -338,7 +335,7 @@ fun! vimball#Vimball(really,...) " write tab to file if a:really - let fnamepath= s:Path(home."/".fname,'') + let fnamepath= home."/".fname " call Decho("exe w! ".fnameescape(fnamepath)) exe "silent w! ".fnameescape(fnamepath) echo "wrote ".fnamepath @@ -364,9 +361,9 @@ fun! vimball#Vimball(really,...) " set up help " call Decho("about to set up help: didhelp<".didhelp.">") if didhelp != "" - let htpath= s:Path(home."/".didhelp,"") + let htpath= home."/".didhelp " call Decho("exe helptags ".htpath) - exe "helptags ".htpath + exe "helptags ".fnameescape(htpath) echo "did helptags" endif @@ -577,27 +574,6 @@ fun! s:ChgDir(newdir) " call Dret("ChgDir : curdir<".getcwd().">") endfun -" --------------------------------------------------------------------- -" s:Path: prepend and append quotes and do escaping {{{2 -fun! s:Path(cmd,quote) -" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">") - if (has("win32") || has("win95") || has("win64") || has("win16")) -" let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote - let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote -" call Decho("cmdpath<".cmdpath."> (win32 mod)") - else - let cmdpath= a:quote.a:cmd.a:quote -" call Decho("cmdpath<".cmdpath."> (not-win32 mod)") - endif - if a:quote == "" && g:vimball_path_escape !~ ' ' - let cmdpath= escape(cmdpath,' ') -" call Decho("cmdpath<".cmdpath."> (empty quote case)") - endif - let cmdpath= escape(cmdpath,g:vimball_path_escape) -" call Dret("Path <".cmdpath.">") - return cmdpath -endfun - " --------------------------------------------------------------------- " s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2 fun! s:RecordInVar(home,cmd) @@ -719,14 +695,14 @@ fun! vimball#SaveSettings() let s:acdkeep = &acd endif let s:eikeep = &ei - let s:fenkeep = &fen + let s:fenkeep = &l:fen let s:hidkeep = &hidden let s:ickeep = &ic let s:lzkeep = &lz let s:pmkeep = &pm let s:repkeep = &report let s:vekeep = &ve - let s:ffkeep = &ff + let s:ffkeep = &l:ff if exists("&acd") setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix else @@ -745,7 +721,7 @@ fun! vimball#RestoreSettings() if exists("&acd") let &acd = s:acdkeep endif - let &fen = s:fenkeep + let &l:fen = s:fenkeep let &hidden = s:hidkeep let &ic = s:ickeep let &lz = s:lzkeep @@ -753,7 +729,7 @@ fun! vimball#RestoreSettings() let &report = s:repkeep let &ve = s:vekeep let &ei = s:eikeep - let &ff = s:ffkeep + let &l:ff = s:ffkeep if s:makeep[0] != 0 " restore mark a " call Decho("restore mark-a: makeep=".string(makeep)) diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim index b35a411d72..af56944ce3 100644 --- a/runtime/autoload/zip.vim +++ b/runtime/autoload/zip.vim @@ -1,7 +1,7 @@ " zip.vim: Handles browsing zipfiles " AUTOLOAD PORTION -" Date: Jul 12, 2008 -" Version: 21 (modified by Bram) +" Date: Jul 30, 2008 +" Version: 22 " Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1 @@ -22,7 +22,7 @@ if &cp || exists("g:loaded_zip") || v:version < 700 finish endif -let g:loaded_zip = "v21+b" +let g:loaded_zip = "v22" let s:zipfile_escape = ' ?&;\' let s:ERROR = 2 let s:WARNING = 1 @@ -58,6 +58,12 @@ fun! zip#Browse(zipfile) set report=10 " sanity checks + if !exists("*fnameescape") + if &verbose > 1 + echoerr "the zip plugin is not available (your vim doens't support fnameescape())" + endif + return + endif if !executable(g:zip_unzipcmd) redraw! echohl Error | echo "***error*** (zip#Browse) unzip not available on your system" @@ -99,8 +105,8 @@ fun! zip#Browse(zipfile) 0d $ -" call Decho("exe silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1)) - exe "silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1) +" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)) + exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1) if v:shell_error != 0 redraw! echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None @@ -193,8 +199,8 @@ fun! zip#Read(fname,mode) " call Decho("zipfile<".zipfile.">") " call Decho("fname <".fname.">") -" call Decho("exe r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1)) - exe "silent r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1) +" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)) + exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1) " cleanup 0d @@ -286,8 +292,8 @@ fun! zip#Write(fname) let fname = substitute(fname, '[', '[[]', 'g') endif -" call Decho(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0)) - call system(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0)) +" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0)) + call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0)) if v:shell_error != 0 redraw! echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None @@ -342,9 +348,8 @@ endfun fun! s:ChgDir(newdir,errlvl,errmsg) " call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)") - try - exe "cd ".fnameescape(newdir) + exe "cd ".fnameescape(a:newdir) catch /^Vim\%((\a\+)\)\=:E344/ redraw! if a:errlvl == s:NOTE diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim index c1800eaca8..4117122728 100644 --- a/runtime/colors/darkblue.vim +++ b/runtime/colors/darkblue.vim @@ -1,6 +1,6 @@ " Vim color file " Maintainer: Bohdan Vlasyuk -" Last Change: 2006 Apr 30 +" Last Change: 2008 Jul 18 " darkblue -- for those who prefer dark background " [note: looks bit uglier with come terminal palettes, @@ -58,3 +58,9 @@ hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none hi type ctermfg=green guifg=#60ff60 gui=none cterm=none hi Underlined cterm=underline term=underline hi Ignore guifg=bg ctermfg=bg + +" suggested by tigmoid, 2008 Jul 18 +hi Pmenu guifg=#c0c0c0 guibg=#404080 +hi PmenuSel guifg=#c0c0c0 guibg=#2050d0 +hi PmenuSbar guifg=blue guibg=darkgray +hi PmenuThumb guifg=#c0c0c0 diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index 3a289d7b04..2f697508b0 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -287,6 +287,11 @@ CONVERTED = \ vimdiff-it.UTF-8.1 \ vimtutor-it.UTF-8.1 \ xxd-it.UTF-8.1 \ + vim-pl.UTF-8.1 \ + evim-pl.UTF-8.1 \ + vimdiff-pl.UTF-8.1 \ + vimtutor-pl.UTF-8.1 \ + xxd-pl.UTF-8.1 \ vim-ru.UTF-8.1 \ evim-ru.UTF-8.1 \ vimdiff-ru.UTF-8.1 \ @@ -296,7 +301,7 @@ CONVERTED = \ .SUFFIXES: .SUFFIXES: .c .o .txt .html -all: tags vim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) +all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) # Use Vim to generate the tags file. Can only be used when Vim has been # compiled and installed. Supports multiple languages. @@ -314,6 +319,9 @@ doctags: doctags.c vim.man: vim.1 nroff -man vim.1 | sed -e s/.//g > vim.man +evim.man: evim.1 + nroff -man evim.1 | sed -e s/.//g > evim.man + vimdiff.man: vimdiff.1 nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man @@ -445,6 +453,21 @@ vimtutor-it.UTF-8.1: vimtutor-it.1 xxd-it.UTF-8.1: xxd-it.1 iconv -f latin1 -t utf-8 $< >$@ +vim-pl.UTF-8.1: vim-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +evim-pl.UTF-8.1: evim-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +vimdiff-pl.UTF-8.1: vimdiff-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +vimtutor-pl.UTF-8.1: vimtutor-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +xxd-pl.UTF-8.1: xxd-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + vim-ru.UTF-8.1: vim-ru.1 iconv -f KOI8-R -t utf-8 $< >$@ diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt index dc8e9b173f..164764c55e 100644 --- a/runtime/doc/arabic.txt +++ b/runtime/doc/arabic.txt @@ -1,4 +1,4 @@ -*arabic.txt* For Vim version 7.2b. Last change: 2005 Mar 29 +*arabic.txt* For Vim version 7.2c. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Nadim Shaikli diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index e892f4c497..271dd5cb83 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 7.2b. Last change: 2008 Jun 27 +*autocmd.txt* For Vim version 7.2c. Last change: 2008 Jun 27 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 65af5fc1c3..e38cc24e5f 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.2b. Last change: 2008 Jul 09 +*change.txt* For Vim version 7.2c. Last change: 2008 Jul 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1561,10 +1561,12 @@ found here: |sort()|. With [n] sorting is done on the first decimal number in the line (after or inside a {pattern} match). + One leading '-' is included in the number. With [x] sorting is done on the first hexadecimal number in the line (after or inside a {pattern} match). A leading "0x" or "0X" is ignored. + One leading '-' is included in the number. With [o] sorting is done on the first octal number in the line (after or inside a {pattern} match). diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 8f577c87ac..66a8de307e 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.2b. Last change: 2008 Jul 11 +*cmdline.txt* For Vim version 7.2c. Last change: 2008 Jul 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -99,19 +99,20 @@ CTRL-E or *c_CTRL-E* *c_* cursor to end of command-line *c_* - cursor to position of mouse click. + Move the cursor to the position of the mouse click. CTRL-H *c_* *c_CTRL-H* - delete the