summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvimboss <devnull@localhost>2005-09-14 21:40:12 +0000
committervimboss <devnull@localhost>2005-09-14 21:40:12 +0000
commitecce1a26328dcda3d717d50bb87c3349f4db527f (patch)
tree7807b185fcb0ba92a83113de61d7081fb1a84571
parent4772a041df76efd2008e5f744dead498dfe04cfd (diff)
downloadvim-ecce1a26328dcda3d717d50bb87c3349f4db527f.tar.gz
updated for version 7.0147
-rw-r--r--runtime/autoload/tar.vim164
-rw-r--r--runtime/doc/motion.txt4
-rw-r--r--runtime/doc/todo.txt4
-rw-r--r--runtime/syntax/tex.vim6
-rw-r--r--src/globals.h3
-rw-r--r--src/search.c82
-rw-r--r--src/syntax.c6
-rw-r--r--src/version.h4
8 files changed, 229 insertions, 44 deletions
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 25203d06..0234059b 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -1,11 +1,11 @@
-" vim:set ts=8 sts=4 sw=4:
"
" tar.vim -- a Vim plugin for browsing tarfiles
" Copyright (c) 2002, Michael C. Toren <mct@toren.net>
" Distributed under the GNU General Public License.
"
-" Version: 1.01
-" Last Change: 2005 Jul 26
+" Version: 2
+" Date: Sep 14, 2005
+" Modified By: Charles E. Campbell, Jr.
"
" Updates are available from <http://michael.toren.net/code/>. If you
" find this script useful, or have suggestions for improvements, please
@@ -13,14 +13,15 @@
" Also look there for further comments and documentation.
"
" This part defines the functions. The autocommands are in plugin/tar.vim.
-
-let s:version = "1.01"
-
-function! tar#Write(argument)
- echo "ERROR: Sorry, no write support for tarfiles yet"
-endfunction
-
-function! tar#Read(argument, cleanup)
+if exists("g:loaded_tar") || &cp
+ finish
+endif
+let g:loaded_tar= "v2"
+
+" ---------------------------------------------------------------------
+" tar#Read: {{{1
+fun! tar#Read(argument, cleanup)
+" call Dfunc("tar#Read(argument<".a:argument."> cleanup=".a:cleanup.")")
let l:argument = a:argument
let l:argument = substitute(l:argument, '^tarfile:', '', '')
let l:argument = substitute(l:argument, '^\~', $HOME, '')
@@ -28,7 +29,8 @@ function! tar#Read(argument, cleanup)
let l:tarfile = l:argument
while 1
if (l:tarfile == "" || l:tarfile == "/")
- echo "ERROR: Could not find a readable tarfile in path:" l:argument
+ echo "***error*** (tar#Read) Could not find a readable tarfile in path:" l:argument
+" call Dret("tar#Read")
return
endif
@@ -42,6 +44,7 @@ function! tar#Read(argument, cleanup)
let l:toextract = strpart(l:argument, strlen(l:tarfile) + 1)
if (l:toextract == "")
+" call Dret("tar#Read")
return
endif
@@ -52,12 +55,90 @@ function! tar#Read(argument, cleanup)
if (a:cleanup)
0d "blank line
execute "doautocmd BufReadPost " . expand("%")
- setlocal readonly
+ setlocal nomod
silent preserve
endif
-endfunction
+" call Dret("tar#Read")
+endfun
-function! tar#Browse(tarfile)
+" ---------------------------------------------------------------------
+" tar#Write: {{{1
+fun! tar#Write(argument)
+" call Dfunc("tar#Write(argument<".a:argument.">)")
+"
+ " sanity checks
+ if !executable("tar")
+ echo "***error*** (TarWrite) sorry, your system doesn't appear to have the tar pgm"
+" call Dret("tar#Write")
+ return
+ endif
+ if !exists("*mkdir")
+ echo "***error*** (TarWrite) sorry, mkdir() doesn't work on your system"
+" call Dret("tar#Write")
+ return
+ endif
+
+ let curdir= getcwd()
+ let tmpdir= tempname()
+" call Decho("orig tempname<".tmpdir.">")
+ if tmpdir =~ '\.'
+ let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
+ endif
+" call Decho("tmpdir<".tmpdir.">")
+ call mkdir(tmpdir,"p")
+
+ " attempt to change to the indicated directory
+ try
+ exe "cd ".escape(tmpdir,' \')
+ catch /^Vim\%((\a\+)\)\=:E344/
+ echo "***error*** (TarWrite) cannot cd to temporary directory"
+" call Dret("tar#Write")
+ return
+ endtry
+" call Decho("current directory now: ".getcwd())
+
+ " place temporary files under .../_TARVIM_/
+ if isdirectory("_TARVIM_")
+ call s:Rmdir("_TARVIM_")
+ endif
+ call mkdir("_TARVIM_")
+ cd _TARVIM_
+" call Decho("current directory now: ".getcwd())
+
+ let tarfile = curdir."/".substitute(a:argument,'tarfile:\([^/]\{-}\)/.*$','\1','')
+ let path = substitute(a:argument,'^.\{-}/','','')
+ let dirpath = substitute(path,'/\=[^/]\+$','','')
+" call Decho("path <".path.">")
+" call Decho("dirpath<".dirpath.">")
+ call mkdir(dirpath,"p")
+ exe "w! ".path
+ if executable("cygpath")
+ let path = substitute(system("cygpath ".path),'\n','','e')
+ let tarfile = substitute(system("cygpath ".tarfile),'\n','','e')
+ endif
+
+" call Decho("tar --delete -f ".tarfile." ".path)
+ call system("tar --delete -f ".tarfile." ".path)
+ if v:shell_error != 0
+ echo "***error*** (TarWrite) sorry, your tar pgm doesn't support deletion of ".path
+ else
+" call Decho("tar -rf ".tarfile." ".path)
+ call system("tar -rf ".tarfile." ".path)
+ endif
+
+ " cleanup and restore current directory
+ cd ..
+ call s:Rmdir("_TARVIM_")
+ exe "cd ".escape(curdir,' \')
+ setlocal nomod
+
+" call Dret("tar#Write")
+endfun
+
+" ---------------------------------------------------------------------
+" tar#Browse: {{{1
+fun! tar#Browse(tarfile)
+" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
setlocal noswapfile
setlocal buftype=nofile
setlocal bufhidden=hide
@@ -76,11 +157,12 @@ function! tar#Browse(tarfile)
endif
if ! filereadable(l:tarfile)
- echo "ERROR: File not readable:" l:tarfile
+ echo "***error*** (tar#Browse) File not readable:" l:tarfile
+" call Dret("tar#Browse")
return
endif
- call s:Say("\" tar.vim version " . s:version)
+ call s:Say("\" tar.vim version " . g:loaded_tar)
call s:Say("\" Browsing tarfile " . l:tarfile)
call s:Say("\" Hit ENTER to view a file in a new window")
call s:Say("")
@@ -89,12 +171,15 @@ function! tar#Browse(tarfile)
0d "blank line
/^$/1
- setlocal readonly
- setlocal nomodifiable
+ setlocal noma nomod ro
+
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
-endfunction
+" call Dret("tar#Browse")
+endfun
-function! s:TarBrowseSelect()
+" ---------------------------------------------------------------------
+" TarBrowseSelect: {{{1
+fun! s:TarBrowseSelect()
let l:line = getline(".")
if (l:line =~ '^" ')
@@ -110,10 +195,12 @@ function! s:TarBrowseSelect()
new
wincmd _
execute "e " . l:selection
-endfunction
+endfun
-" kludge to deal with compressed archives
-function! s:TarCatCommand(tarfile)
+" ---------------------------------------------------------------------
+" TarCatCommand: kludge to deal with compressed archives {{{1
+fun! s:TarCatCommand(tarfile)
+" call Dfunc("s:TarCatCommand(tarfile<".a:tarfile.">)")
if a:tarfile =~# '\.\(gz\|tgz\|Z\)$'
let l:cat = "gzip -d -c"
elseif a:tarfile =~# '\.bz2$'
@@ -121,10 +208,33 @@ function! s:TarCatCommand(tarfile)
else
let l:cat = "cat"
endif
+" call Dret("s:TarCatCommand ".l:cat)
return l:cat
-endfunction
+endfun
-function! s:Say(string)
+" ---------------------------------------------------------------------
+" Say: {{{1
+fun! s:Say(string)
let @" = a:string
$ put
-endfunction
+endfun
+
+" ---------------------------------------------------------------------
+" Rmdir: {{{1
+fun! s:Rmdir(fname)
+" call Dfunc("Rmdir(fname<".a:fname.">)")
+ if has("unix")
+ call system("/bin/rm -rf ".a:fname)
+ elseif has("win32") || has("win95") || has("win64") || has("win16")
+ if &shell =~? "sh$"
+ call system("/bin/rm -rf ".a:fname)
+ else
+ call system("del /S ".a:fname)
+ endif
+ endif
+" call Dret("Rmdir")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim:set ts=8 sts=4 sw=4 fdm=marker:
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 8494c8e8..8731f298 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt* For Vim version 7.0aa. Last change: 2005 Jul 31
+*motion.txt* For Vim version 7.0aa. Last change: 2005 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -642,6 +642,8 @@ i' *v_i'* *i'*
i` *v_i`* *i`*
Like a", a' and a`, but exclude the quotes and
repeating won't extend the Visual selection.
+ Special case: With a count of 2 the quotes are
+ included, but no extra white space as with a"/a'/a`.
When used after an operator:
For non-block objects:
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index ab14fb86..65e76b93 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0aa. Last change: 2005 Sep 13
+*todo.txt* For Vim version 7.0aa. Last change: 2005 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -36,8 +36,6 @@ ccomplete:
When 'foldcolumn' is 1 show more + to be able to open all folds? (Donohue)
-After vi" another i" should include the quotes.
-
Mac unicode patch (Da Woon Jung):
- selecting proportional font breaks display
- UTF-8 text causes display problems. Font replacement causes this.
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index b18d908f..424e653f 100644
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change: Aug 15, 2005
-" Version: 29
+" Last Change: Sep 14, 2005
+" Version: 30
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Notes: {{{1
@@ -73,7 +73,7 @@ endif
if !exists("g:tex_fold_enabled")
let g:tex_fold_enabled= 0
elseif g:tex_fold_enabled && !has("folding")
- let g:sh_fold_enabled= 0;
+ let g:tex_fold_enabled= 0
echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
endif
if g:tex_fold_enabled && &fdm == "manual"
diff --git a/src/globals.h b/src/globals.h
index 573dc984..4b916efd 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1418,7 +1418,10 @@ EXTERN char_u e_emptybuf[] INIT(= N_("E749: empty buffer"));
EXTERN char_u e_invalpat[] INIT(= N_("E682: Invalid search pattern or delimiter"));
#endif
EXTERN char_u e_bufloaded[] INIT(= N_("E139: File is loaded in another buffer"));
+#if defined(FEAT_SYN_HL) || \
+ (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
EXTERN char_u e_notset[] INIT(= N_("E764: Option '%s' is not set"));
+#endif
#ifdef MACOS_X_UNIX
EXTERN short disallow_gui INIT(= FALSE);
diff --git a/src/search.c b/src/search.c
index 21daaa33..456b6942 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4085,11 +4085,10 @@ find_prev_quote(line, col_start, quotechar, escape)
* Find quote under the cursor, cursor at end.
* Returns TRUE if found, else FALSE.
*/
-/*ARGSUSED*/
int
current_quote(oap, count, include, quotechar)
oparg_T *oap;
- long count; /* not used */
+ long count;
int include; /* TRUE == include quote char */
int quotechar; /* Quote character */
{
@@ -4100,15 +4099,51 @@ current_quote(oap, count, include, quotechar)
#ifdef FEAT_VISUAL
int vis_empty = TRUE; /* Visual selection <= 1 char */
int vis_bef_curs = FALSE; /* Visual starts before cursor */
+ int inside_quotes = FALSE; /* Looks like "i'" done before */
+ int selected_quote = FALSE; /* Has quote inside selection */
+ int i;
/* Correct cursor when 'selection' is exclusive */
if (VIsual_active)
{
+ vis_bef_curs = lt(VIsual, curwin->w_cursor);
if (*p_sel == 'e' && vis_bef_curs)
dec_cursor();
vis_empty = equalpos(VIsual, curwin->w_cursor);
- vis_bef_curs = lt(VIsual, curwin->w_cursor);
}
+
+ if (!vis_empty)
+ {
+ /* Check if the existing selection exactly spans the text inside
+ * quotes. */
+ if (vis_bef_curs)
+ {
+ inside_quotes = VIsual.col > 0
+ && line[VIsual.col - 1] == quotechar
+ && line[curwin->w_cursor.col] != NUL
+ && line[curwin->w_cursor.col + 1] == quotechar;
+ i = VIsual.col;
+ col_end = curwin->w_cursor.col;
+ }
+ else
+ {
+ inside_quotes = curwin->w_cursor.col > 0
+ && line[curwin->w_cursor.col - 1] == quotechar
+ && line[VIsual.col] != NUL
+ && line[VIsual.col + 1] == quotechar;
+ i = curwin->w_cursor.col;
+ col_end = VIsual.col;
+ }
+
+ /* Find out if we have a quote in the selection. */
+ while (i <= col_end)
+ if (line[i++] == quotechar)
+ {
+ selected_quote = TRUE;
+ break;
+ }
+ }
+
if (!vis_empty && line[col_start] == quotechar)
{
/* Already selecting something and on a quote character. Find the
@@ -4218,14 +4253,29 @@ current_quote(oap, count, include, quotechar)
--col_start;
}
- /* Set start position */
- if (!include)
+ /* Set start position. After vi" another i" must include the ".
+ * For v2i" include the quotes. */
+ if (!include && count < 2
+#ifdef FEAT_VISUAL
+ && (vis_empty || !inside_quotes)
+#endif
+ )
++col_start;
curwin->w_cursor.col = col_start;
#ifdef FEAT_VISUAL
if (VIsual_active)
{
- if (vis_empty)
+ /* Set the start of the Visual area when the Visual area was empty, we
+ * were just inside quotes or the Visual area didn't start at a quote
+ * and didn't include a quote.
+ */
+ if (vis_empty
+ || (vis_bef_curs
+ && !selected_quote
+ && (inside_quotes
+ || (line[VIsual.col] != quotechar
+ && (VIsual.col == 0
+ || line[VIsual.col - 1] != quotechar)))))
{
VIsual = curwin->w_cursor;
redraw_curbuf_later(INVERTED);
@@ -4240,7 +4290,12 @@ current_quote(oap, count, include, quotechar)
/* Set end position. */
curwin->w_cursor.col = col_end;
- if (include && inc_cursor() == 2)
+ if ((include || count > 1
+#ifdef FEAT_VISUAL
+ /* After vi" another i" must include the ". */
+ || (!vis_empty && inside_quotes)
+#endif
+ ) && inc_cursor() == 2)
inclusive = TRUE;
#ifdef FEAT_VISUAL
if (VIsual_active)
@@ -4253,7 +4308,18 @@ current_quote(oap, count, include, quotechar)
}
else
{
- /* Cursor is at start of Visual area. */
+ /* Cursor is at start of Visual area. Set the end of the Visual
+ * area when it was just inside quotes or it didn't end at a
+ * quote. */
+ if (inside_quotes
+ || (!selected_quote
+ && line[VIsual.col] != quotechar
+ && (line[VIsual.col] == NUL
+ || line[VIsual.col + 1] != quotechar)))
+ {
+ dec_cursor();
+ VIsual = curwin->w_cursor;
+ }
curwin->w_cursor.col = col_start;
}
if (VIsual_mode == 'V')
diff --git a/src/syntax.c b/src/syntax.c
index 116b724e..a04b81b3 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6163,6 +6163,12 @@ init_highlight(both, reset)
for (i = 0; pp[i] != NULL; ++i)
do_highlight((char_u *)pp[i], reset, TRUE);
+ /* Magenta background looks ugly, but grey may not work for 8 colors.
+ * Thus let it depend on the number of colors available. */
+ if (t_colors > 8)
+ do_highlight((char_u *)(*p_bg == 'l' ? "Visual ctermbg=LightGrey"
+ : "Visual ctermbg=DarkGrey"), reset, TRUE);
+
#ifdef FEAT_SYN_HL
/*
* If syntax highlighting is enabled load the highlighting for it.
diff --git a/src/version.h b/src/version.h
index d3e26201..9402b51e 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 13)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 13, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 14)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 14, compiled "