updated for version 7.1a
diff --git a/runtime/autoload/phpcomplete.vim b/runtime/autoload/phpcomplete.vim
index 1dbabc3..e5d910e 100644
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -1,7 +1,7 @@
" Vim completion script
" Language: PHP
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2006 Apr 30
+" Last Change: 2006 May 9
"
" TODO:
" - Class aware completion:
@@ -74,7 +74,7 @@
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'class\s\+')
let int_classes = {}
@@ -85,33 +85,43 @@
endif
endfor
- " Prepare list of functions from tags file
+ " Prepare list of classes from tags file
let ext_classes = {}
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- " [:space:] thing: we don't have to be so strict when
- " dealing with tags files - entries there were already
- " checked by ctags.
- let item = matchstr(field['text'], '^[^[:space:]]\+')
- let ext_classes[item] = ''
+ if len(qflist) > 0
+ for field in qflist
+ " [:space:] thing: we don't have to be so strict when
+ " dealing with tags files - entries there were already
+ " checked by ctags.
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
+ let ext_classes[item] = ''
+ endfor
+ endif
+ endif
+
+ " Prepare list of built in classes from g:php_builtin_functions
+ if !exists("g:php_omni_bi_classes")
+ let g:php_omni_bi_classes = {}
+ for i in keys(g:php_builtin_object_functions)
+ let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
endfor
endif
- call extend(int_classes, ext_classes)
+ let classes = sort(keys(int_classes))
+ let classes += sort(keys(ext_classes))
+ let classes += sort(keys(g:php_omni_bi_classes))
- for m in sort(keys(int_classes))
+ for m in classes
if m =~ '^'.a:base
call add(res, m)
endif
endfor
- let int_list = res
-
let final_menu = []
- for i in int_list
+ for i in res
let final_menu += [{'word':i, 'kind':'c'}]
endfor
@@ -138,6 +148,19 @@
let classlocation = ''
endif
+ if classlocation == 'VIMPHP_BUILTINOBJECT'
+
+ for object in keys(g:php_builtin_object_functions)
+ if object =~ '^'.classname
+ let res += [{'word':substitute(object, '.*::', '', ''),
+ \ 'info': g:php_builtin_object_functions[object]}]
+ endif
+ endfor
+
+ return res
+
+ endif
+
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
@@ -154,7 +177,7 @@
" Functions declared with public keyword or without any
" keyword are public
let functions = filter(deepcopy(sccontent),
- \ 'v:val =~ "^\\s*\\(public\\s\\*\\)\\?function"')
+ \ 'v:val =~ "^\\s*\\(static\\s\\+\\|public\\s\\+\\)*function"')
let jfuncs = join(functions, ' ')
let sfuncs = split(jfuncs, 'function\s\+')
let c_functions = {}
@@ -185,7 +208,6 @@
let all_values = {}
call extend(all_values, c_functions)
call extend(all_values, c_variables)
- call extend(all_values, g:php_builtin_object_functions)
for m in sort(keys(all_values))
if m =~ '^'.a:base && m !~ '::'
@@ -244,23 +266,25 @@
" ctags has good support for PHP, use tags file for external
" variables
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_vars = {}
if fnames != ''
let sbase = substitute(a:base, '^\$', '', '')
exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- let item = matchstr(field['text'], '^[^[:space:]]\+')
- " Add -> if it is possible object declaration
- let classname = ''
- if field['text'] =~ item.'\s*=\s*new\s\+'
- let item = item.'->'
- let classname = matchstr(field['text'],
- \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
- endif
- let ext_vars[adddollar.item] = classname
- endfor
+ if len(qflist) > 0
+ for field in qflist
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
+ " Add -> if it is possible object declaration
+ let classname = ''
+ if field['text'] =~ item.'\s*=\s*new\s\+'
+ let item = item.'->'
+ let classname = matchstr(field['text'],
+ \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+ endif
+ let ext_vars[adddollar.item] = classname
+ endfor
+ endif
endif
" Now we have all variables in int_vars dictionary
@@ -270,7 +294,7 @@
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'function\s\+')
let int_functions = {}
@@ -287,14 +311,16 @@
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- " File name
- let item = matchstr(field['text'], '^[^[:space:]]\+')
- let fname = matchstr(field['text'], '\t\zs\f\+\ze')
- let prototype = matchstr(field['text'],
- \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
- let ext_functions[item.'('] = prototype.') - '.fname
- endfor
+ if len(qflist) > 0
+ for field in qflist
+ " File name
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
+ let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+ let prototype = matchstr(field['text'],
+ \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+ let ext_functions[item.'('] = prototype.') - '.fname
+ endfor
+ endif
endif
let all_values = {}
@@ -375,23 +401,25 @@
call extend(int_vars,g:php_builtin_vars)
" ctags has support for PHP, use tags file for external variables
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_vars = {}
if fnames != ''
let sbase = substitute(a:base, '^\$', '', '')
exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
- let m_menu = ''
- " Add -> if it is possible object declaration
- if field['text'] =~ item.'\s*=\s*new\s\+'
- let item = item.'->'
- let m_menu = matchstr(field['text'],
- \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
- endif
- let ext_vars[item] = m_menu
- endfor
+ if len(qflist) > 0
+ for field in qflist
+ let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
+ let m_menu = ''
+ " Add -> if it is possible object declaration
+ if field['text'] =~ item.'\s*=\s*new\s\+'
+ let item = item.'->'
+ let m_menu = matchstr(field['text'],
+ \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+ endif
+ let ext_vars[item] = m_menu
+ endfor
+ endif
endif
call extend(int_vars, ext_vars)
@@ -433,7 +461,7 @@
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'function\s\+')
let int_functions = {}
@@ -450,14 +478,16 @@
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- " File name
- let item = matchstr(field['text'], '^[^[:space:]]\+')
- let fname = matchstr(field['text'], '\t\zs\f\+\ze')
- let prototype = matchstr(field['text'],
- \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
- let ext_functions[item.'('] = prototype.') - '.fname
- endfor
+ if len(qflist) > 0
+ for field in qflist
+ " File name
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
+ let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+ let prototype = matchstr(field['text'],
+ \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+ let ext_functions[item.'('] = prototype.') - '.fname
+ endfor
+ endif
endif
" All functions
@@ -480,15 +510,17 @@
endfor
" Prepare list of constants from tags file
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_constants = {}
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
let qflist = getqflist()
- for field in qflist
- let item = matchstr(field['text'], '^[^[:space:]]\+')
- let ext_constants[item] = ''
- endfor
+ if len(qflist) > 0
+ for field in qflist
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
+ let ext_constants[item] = ''
+ endfor
+ endif
endif
" All constants
@@ -558,7 +590,7 @@
endwhile
" OK, first way failed, now check tags file(s)
- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
exe 'silent! vimgrep /^'.object.'.*\$'.object.'.*=\s*new\s\+.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
if len(qflist) == 0
@@ -573,6 +605,17 @@
endfunction
" }}}
function! phpcomplete#GetClassLocation(classname) " {{{
+ " Check classname may be name of built in object
+ if !exists("g:php_omni_bi_classes")
+ let g:php_omni_bi_classes = {}
+ for i in keys(g:php_builtin_object_functions)
+ let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
+ endfor
+ endif
+ if has_key(g:php_omni_bi_classes, a:classname)
+ return 'VIMPHP_BUILTINOBJECT'
+ endif
+
" Get class location
for fname in tagfiles()
let fhead = fnamemodify(fname, ":h")
@@ -583,8 +626,12 @@
let fname = escape(fname, " \\")
exe 'silent! vimgrep /^'.a:classname.'.*\tc\(\t\|$\)/j '.fname
let qflist = getqflist()
- " As in GetClassName we can manage only one element
- let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
+ " As in GetClassName we can manage only one element if it exists
+ if len(qflist) > 0
+ let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
+ else
+ return ''
+ endif
" And only one class location
if classlocation != ''
let classlocation = fhead.classlocation
@@ -614,6 +661,7 @@
else
let extends_class = ''
endif
+ call search('{')
normal! %
let classc = getline(cfline, ".")
let classcontent = join(classc, "\n")
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index 146cf21..c803932 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -1,8 +1,8 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <fishburn@ianywhere.com>
-" Version: 4.0
-" Last Change: Wed Apr 26 2006 3:00:06 PM
+" Version: 5.0
+" Last Change: Mon Jun 05 2006 3:30:04 PM
" Usage: For detailed help
" ":help sql.txt"
" or ":help ft-sql-omni"
@@ -22,7 +22,7 @@
if exists('g:loaded_sql_completion')
finish
endif
-let g:loaded_sql_completion = 40
+let g:loaded_sql_completion = 50
" Maintains filename of dictionary
let s:sql_file_table = ""
@@ -113,7 +113,7 @@
" If lastword has already been set for column completion
" break from the loop, since we do not also want to pickup
" a table name if it was also supplied.
- if lastword != -1 && compl_type == 'column'
+ if lastword != -1 && compl_type == 'column'
break
endif
" If column completion was specified stop at the "." if
@@ -176,11 +176,19 @@
return []
endif
- if s:sql_file_{compl_type} == ""
- let compl_type = substitute(compl_type, '\w\+', '\u&', '')
- let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
+ " Allow the user to override the dbext plugin to specify whether
+ " the owner/creator should be included in the list
+ let saved_dbext_show_owner = 1
+ if exists('g:dbext_default_dict_show_owner')
+ let saved_dbext_show_owner = g:dbext_default_dict_show_owner
endif
- let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
+ let g:dbext_default_dict_show_owner = g:omni_sql_include_owner
+
+ let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
+ if s:sql_file_{compl_type} == ""
+ let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
+ endif
+ let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
if s:sql_file_{compl_type} != ""
if filereadable(s:sql_file_{compl_type})
let compl_list = readfile(s:sql_file_{compl_type})
@@ -194,7 +202,9 @@
" endif
endif
endif
- elseif compl_type == 'column'
+
+ let g:dbext_default_dict_show_owner = saved_dbext_show_owner
+ elseif compl_type =~? 'column'
" This type of completion relies upon the dbext.vim plugin
if s:SQLCCheck4dbext() == -1
@@ -209,33 +219,88 @@
let base = s:save_prev_table
endif
- if base != ""
- let compl_list = s:SQLCGetColumns(base, '')
+ let owner = ''
+ let column = ''
+
+ if base =~ '\.'
+ " Check if the owner/creator has been specified
+ let owner = matchstr( base, '^\zs.*\ze\..*\..*' )
+ let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
+ let column = matchstr( base, '.*\.\zs.*' )
+
+ " It is pretty well impossible to determine if the user
+ " has entered:
+ " owner.table
+ " table.column_prefix
+ " So there are a couple of things we can do to mitigate
+ " this issue.
+ " 1. Check if the dbext plugin has the option turned
+ " on to even allow owners
+ " 2. Based on 1, if the user is showing a table list
+ " and the DrillIntoTable (using <C-Right>) then
+ " this will be owner.table. In this case, we can
+ " check to see the table.column exists in the
+ " cached table list. If it does, then we have
+ " determined the user has actually chosen
+ " owner.table, not table.column_prefix.
+ let found = -1
+ if g:omni_sql_include_owner == 1 && owner == ''
+ if filereadable(s:sql_file_table)
+ let tbl_list = readfile(s:sql_file_table)
+ let found = index( tbl_list, ((table != '')?(table.'.'):'').column)
+ endif
+ endif
+ " If the table.column was found in the table list, we can safely assume
+ " the owner was not provided and shift the items appropriately.
+ " OR
+ " If the user has indicated not to use table owners at all and
+ " the base ends in a '.' we know they are not providing a column
+ " name, so we can shift the items appropriately.
+ if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
+ let owner = table
+ let table = column
+ let column = ''
+ endif
+ else
+ let table = base
+ endif
+
+ " Get anything after the . and consider this the table name
+ " If an owner has been specified, then we must consider the
+ " base to be a partial column name
+ " let base = matchstr( base, '^\(.*\.\)\?\zs.*' )
+
+ if table != ""
let s:save_prev_table = base
- let base = ''
- endif
- elseif compl_type == 'column_csv'
+ let list_type = ''
- " This type of completion relies upon the dbext.vim plugin
- if s:SQLCCheck4dbext() == -1
- return []
- endif
+ if compl_type == 'column_csv'
+ " Return one array element, with a comma separated
+ " list of values instead of multiple array entries
+ " for each column in the table.
+ let list_type = 'csv'
+ endif
- if base == ""
- " The last time we displayed a column list we stored
- " the table name. If the user selects a column list
- " without a table name of alias present, assume they want
- " the previous column list displayed.
- let base = s:save_prev_table
- endif
+ let compl_list = s:SQLCGetColumns(table, list_type)
+ if column != ''
+ " If no column prefix has been provided and the table
+ " name was provided, append it to each of the items
+ " returned.
+ let compl_list = map(compl_list, "table.'.'.v:val")
+ if owner != ''
+ " If an owner has been provided append it to each of the
+ " items returned.
+ let compl_list = map(compl_list, "owner.'.'.v:val")
+ endif
+ else
+ let base = ''
+ endif
- if base != ""
- let compl_list = s:SQLCGetColumns(base, 'csv')
- let s:save_prev_table = base
- " Join the column array into 1 single element array
- " but make the columns column separated
- let compl_list = [join(compl_list, ', ')]
- let base = ''
+ if compl_type == 'column_csv'
+ " Join the column array into 1 single element array
+ " but make the columns column separated
+ let compl_list = [join(compl_list, ', ')]
+ endif
endif
elseif compl_type == 'resetCache'
" Reset all cached items
@@ -256,7 +321,7 @@
if base != ''
" Filter the list based on the first few characters the user
" entered
- let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "^'.base.'"'
+ let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
let compl_list = filter(deepcopy(compl_list), expr)
endif
@@ -274,6 +339,8 @@
else
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
+ " For each group specified in the list, precache all
+ " the sytnax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
call s:SQLCGetSyntaxList(group_name)
@@ -444,9 +511,23 @@
return cols
endfunction
+function! s:SQLCGetObjectOwner(object)
+ " The owner regex matches a word at the start of the string which is
+ " followed by a dot, but doesn't include the dot in the result.
+ " ^ - from beginning of line
+ " "\? - ignore any quotes
+ " \zs - start the match now
+ " \w\+ - get owner name
+ " \ze - end the match
+ " "\? - ignore any quotes
+ " \. - must by followed by a .
+ let owner = matchstr( a:object, '^"\?\zs\w\+\ze"\?\.' )
+ return owner
+endfunction
+
function! s:SQLCGetColumns(table_name, list_type)
- let table_name = matchstr(a:table_name, '^\w\+')
- let table_name = matchstr(a:table_name, '^[a-zA-Z0-9_.]\+')
+ " Check if the table name was provided as part of the column name
+ let table_name = matchstr(a:table_name, '^[a-zA-Z0-9_]\+\ze\.\?')
let table_cols = []
let table_alias = ''
let move_to_top = 1
diff --git a/runtime/doc/getscript.txt b/runtime/doc/getscript.txt
deleted file mode 100644
index d43b9be..0000000
--- a/runtime/doc/getscript.txt
+++ /dev/null
@@ -1,303 +0,0 @@
-*getscript.txt* For Vim version 7.0. Last change: 2006 Apr 30
-
- Get the Latest VimScripts
-
-Authors: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamilyA.Mbiz>
- (remove NOSPAM from the email address)
- *GetLatestVimScripts-copyright*
-Copyright: (c) 2004-2005 by Charles E. Campbell, Jr.
- The VIM LICENSE applies to GetLatestVimScripts.vim and
- GetLatestVimScripts.txt (see |copyright|) except use
- "GetLatestVimScripts" instead of "Vim".
- No warranty, express or implied. Use At-Your-Own-Risk.
-
-
-==============================================================================
-1. Contents *glvs-contents*
-
- 1. Contents.......................................: |glvs-contents|
- 2. GetLatestVimScripts Usage......................: |glvs|
- 3. GetLatestVimScripts Data File..................: |glvs-data|
- 4. GetLatestVimScripts Plugins....................: |glvs-plugins|
- 5. GetLatestVimScripts AutoInstall................: |glvs-autoinstall|
- 6. GetLatestVimScripts Algorithm..................: |glvs-alg|
- 7. GetLatestVimScripts History....................: |glvs-hist|
-
-
-==============================================================================
-2. GetLatestVimScripts Usage *getlatestvimscripts* *getscript* *glvs*
-
- While in vim, type
->
- :GetLatestVimScripts
-<
- Unless its been defined elsewhere,
->
- :GLVS
-<
- will also work.
-
- The script will attempt to update and, if so directed, automatically
- install scripts from http://vim.sourceforge.net/. To do so it will
- peruse a file, [.vim|vimfiles]/GetLatest/GetLatestVimScripts.dat
- (see |glvs-data|), and examine plugins in your [.vim|vimfiles]/plugin
- directory (see |glvs-plugins|).
-
- Scripts which have been downloaded will appear in the .../GetLatest
- subdirectory.
-
- The <GetLatestVimScripts.dat> file will be automatically be updated to
- reflect the latest version of script(s) so downloaded.
-
-
-==============================================================================
-3. GetLatestVimScripts Data File *getlatestvimscripts-data* *glvs-data*
-
- The Data file has a header which should appear as:
->
- ScriptID SourceID Filename
- --------------------------
-<
- Below that are three columns; the first two are numeric followed by a
- text column.
-
- The first number on each line gives the script's ScriptID. When
- you're about to use a web browser to look at scripts on
- http://vim.sf.net/, just before you click on the script's link, you'll
- see a line resembling
-
- http://vim.sourceforge.net/scripts/script.php?script_id=40
-
- The "40" happens to be a ScriptID that GetLatestVimScripts needs to
- download the associated page.
-
- The second number on each line gives the script's SourceID. The
- SourceID records the count of uploaded scripts as determined by
- vim.sf.net; hence it serves to indicate "when" a script was uploaded.
- Setting the SourceID to 1 insures that GetLatestVimScripts will assume
- that the script it has is out-of-date.
-
- The SourceID is extracted by GetLatestVimScripts from the script's
- page on vim.sf.net; whenever its greater than the one stored in the
- GetLatestVimScripts.dat file, the script will be downloaded.
-
- If your script's author has included a special comment line in his/her
- plugin, the plugin itself will be used by GetLatestVimScripts to build
- your <GetLatestVimScripts.dat> file, including any dependencies on
- other scripts it may have.
-
- If your comment field begins with :AutoInstall:, GetLatestVimScripts
- will attempt to automatically install the script. Thus,
- GetLatestVimScripts thus provides a comprehensive ability to keep your
- plugins up-to-date!
-
-==============================================================================
-4. GetLatestVimScripts Plugins *getlatestvimscripts-plugins* *glvs-plugins*
-
-
- If a plugin author includes the following comment anywhere in their
- plugin, GetLatestVimScripts will find it and use it to build user's
- GetLatestVimScripts.dat files:
->
- src_id
- v
- " GetLatestVimScripts: ### ### yourscriptname
- ^
- scriptid
-<
- As an author, you should include such a line in to refer to your own
- script plus any additional lines describing any plugin dependencies it
- may have. Same format, of course!
-
- If your command is auto-installable (see |glvs-autoinstall|), and most
- scripts are, then you may include :AutoInstall: at the start of
- "yourscriptname".
-
- GetLatestVimScript commands for those scripts are then appended, if
- not already present, to the user's GetLatest/GetLatestVimScripts.dat
- file. Its a relatively painless way to automate the acquisition of
- any scripts your plugins depend upon.
-
- Now, as an author, you probably don't want GetLatestVimScripts to
- download your own scripts for you yourself, thereby overwriting your
- not-yet-released hard work. GetLatestVimScripts provides a solution
- for this: put
->
- 0 0 yourscriptname
-<
- into your <GetLatestVimScripts.dat> file and GetLatestVimScripts will
- skip examining the "yourscriptname" scripts for those
- GetLatestVimScript comment lines. As a result, those lines won't be
- inadvertently installed into your <GetLatestVimScripts.dat> file and
- subsequently used to download your own scripts. This is especially
- important to do if you've included the :AutoInstall: option.
-
- Be certain to use the same "yourscriptname" in the "0 0
- yourscriptname" line as you've used in your GetLatestVimScript
- comment!
-
-
-==============================================================================
-5. GetLatestVimScripts AutoInstall *getlatestvimscripts-autoinstall*
- *glvs-autoinstall*
-
- GetLatestVimScripts now supports "AutoInstall". Not all scripts are
- supportive of auto-install, as they may have special things you need
- to do to install them (please refer to the script's "install"
- directions). On the other hand, most scripts will be
- auto-installable.
-
- To let GetLatestVimScripts do an autoinstall, the data file's comment
- field should begin with (surrounding blanks are ignored):
-
- :AutoInstall:
-
- Both colons are needed, and it should begin the comment
- (yourscriptname) field.
-
- One may prevent any autoinstalling by putting the following line
- in your <.vimrc>:
->
- let g:GetLatestVimScripts_allowautoinstall= 0
-<
-
- With :AutoInstall: enabled, as it is by default, files which end with
-
- ---.tar.bz2 : decompressed and untarred in [.vim|vimfiles] directory
- ---.tar.gz : decompressed and untarred in [.vim|vimfiles] directory
- ---.vim.bz2 : decompressed and moved to the .vim/plugin directory
- ---.vim.gz : decompressed and moved to the .vim/plugin directory
- ---.zip : unzipped in [.vim|vimfiles] directory
- ---.vim : moved to [.vim|vimfiles]/plugin directory
-
- and which merely need to have their components placed by the
- untar/gunzip or move-to-plugin-directory process should be
- auto-installable.
-
- When is a script not auto-installable? Let me give an example:
->
- [.vim|vimfiles]/after/syntax/blockhl.vim
-<
- The <blockhl.vim> script provides block highlighting for C/C++
- programs; it is available at:
->
- http://vim.sourceforge.net/scripts/script.php?script_id=104
-<
- Currently, vim's after/syntax only supports by-filetype scripts (in
- blockhl.vim's case, that's after/syntax/c.vim). Hence, auto-install
- would possibly overwrite the current user's after/syntax/c.vim file.
-
- In my own case, I use <aftersyntax.vim> (renamed to
- after/syntax/c.vim) to allow a after/syntax/c/ directory:
->
- http://vim.sourceforge.net/scripts/script.php?script_id=1023
-<
- The script allows multiple syntax files to exist separately in the
- after/syntax/c subdirectory. I can't bundle aftersyntax.vim in and
- build an appropriate tarball for auto-install because of the potential
- for the after/syntax/c.vim contained in it to overwrite a user's
- c.vim.
-
-
-==============================================================================
-6. GetLatestVimScripts Algorithm *getlatestvimscripts-algorithm*
- *glvs-alg*
-
- The Vim sourceforge page dynamically creates a page by keying off of
- the so-called script-id. Within the webpage of
-
- http://vim.sourceforge.net/scripts/script.php?script_id=40
-
- is a line specifying the latest source-id (src_id). The source
- identifier numbers are always increasing, hence if the src_id is
- greater than the one recorded for the script in GetLatestVimScripts
- then its time to download a newer copy of that script.
-
- GetLatestVimScripts will then download the script and update its
- internal database of script ids, source ids, and scriptnames.
-
- The AutoInstall process will:
-
- Move the file from GetLatest/ to the following directory
- Unix : $HOME/.vim
- Windows: $HOME\vimfiles
-
- if the downloaded file ends with ".bz2"
- bunzip2 it
- else if the downloaded file ends with ".gz"
- gunzip it
- if the resulting file ends with ".zip"
- unzip it
- else if the resulting file ends with ".tar"
- tar -oxvf it
- else if the resulting file ends with ".vim"
- move it to the plugin subdirectory
-
-
-==============================================================================
-7. GetLatestVimScripts History *getlatestvimscripts-history* *glvs-hist*
-
- v20 Dec 23, 2005 : * Eric Haarbauer found&fixed a bug with unzip use;
- unzip needs the -o flag to overwrite.
- v19 Nov 28, 2005 : * v18's GetLatestVimScript line accessed the wrong
- script! Fixed.
- v18 Mar 21, 2005 : * bugfix to automatic database construction
- * bugfix - nowrapscan caused an error
- (tnx to David Green for the fix)
- Apr 01, 2005 * if shell is bash, "mv" instead of "ren" used in
- :AutoInstall:s, even though its o/s is windows
- Apr 01, 2005 * when downloading errors occurred, GLVS was
- terminating early. It now just goes on to trying
- the next script (after trying three times to
- download a script description page)
- Apr 20, 2005 * bugfix - when a failure to download occurred,
- GetLatestVimScripts would stop early and claim that
- everything was current. Fixed.
- v17 Aug 25, 2004 : * g:GetLatestVimScripts_allowautoinstall, which
- defaults to 1, can be used to prevent all
- :AutoInstall:
- v16 Aug 25, 2004 : * made execution of bunzip2/gunzip/tar/zip silent
- * fixed bug with :AutoInstall: use of helptags
- v15 Aug 24, 2004 : * bugfix: the "0 0 comment" download prevention wasn't
- always preventing downloads (just usually). Fixed.
- v14 Aug 24, 2004 : * bugfix -- helptags was using dotvim, rather than
- s:dotvim. Fixed.
- v13 Aug 23, 2004 : * will skip downloading a file if its scriptid or srcid
- is zero. Useful for script authors; that way their
- own GetLatestVimScripts activity won't overwrite
- their scripts.
- v12 Aug 23, 2004 : * bugfix - a "return" got left in the distribution that
- was intended only for testing. Removed, now works.
- * :AutoInstall: implemented
- v11 Aug 20, 2004 : * GetLatestVimScripts is now a plugin:
- * :GetLatestVimScripts command
- * (runtimepath)/GetLatest/GetLatestVimScripts.dat
- now holds scripts that need updating
- v10 Apr 19, 2004 : * moved history from script to doc
- v9 Jan 23, 2004 : windows (win32/win16/win95) will use
- double quotes ("") whereas other systems will use
- single quotes ('') around the urls in calls via wget
- v8 Dec 01, 2003 : makes three tries at downloading
- v7 Sep 02, 2003 : added error messages if "Click on..." or "src_id="
- not found in downloaded webpage
- Uses t_ti, t_te, and rs to make progress visible
- v6 Aug 06, 2003 : final status messages now display summary of work
- ( "Downloaded someqty scripts" or
- "Everything was current")
- Now GetLatestVimScripts is careful about downloading
- GetLatestVimScripts.vim itself!
- (goes to <NEW_GetLatestVimScripts.vim>)
- v5 Aug 04, 2003 : missing an endif near bottom
- v4 Jun 17, 2003 : redraw! just before each "considering" message
- v3 May 27, 2003 : Protects downloaded files from errant shell
- expansions with single quotes: '...'
- v2 May 14, 2003 : extracts name of item to be obtained from the
- script file. Uses it instead of comment field
- for output filename; comment is used in the
- "considering..." line and is now just a comment!
- * Fixed a bug: a string-of-numbers is not the
- same as a number, so I added zero to them
- and they became numbers. Fixes comparison.
-
-==============================================================================
-vim:tw=78:ts=8:ft=help
diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man
index 935751c..057c8e9 100644
--- a/runtime/doc/xxd.man
+++ b/runtime/doc/xxd.man
@@ -86,13 +86,12 @@
found in hexdump.
-s [+][-]seek
- start at <seek> bytes abs. (or rel.) infile offset. + fRindi-
- cates that the seek is relative to the current stdin file posi-
- tion (meaningless when not reading from stdin). - indicates
- that the seek should be that many characters from the end of the
- input (or if combined with +: before the current stdin file
- position). Without -s option, xxd starts at the current file
- position.
+ start at <seek> bytes abs. (or rel.) infile offset. + indicates
+ that the seek is relative to the current stdin file position
+ (meaningless when not reading from stdin). - indicates that the
+ seek should be that many characters from the end of the input
+ (or if combined with +: before the current stdin file position).
+ Without -s option, xxd starts at the current file position.
-u use upper case hex letters. Default is lower case.
@@ -101,20 +100,20 @@
CAVEATS
xxd -r has some builtin magic while evaluating line number information.
- If the output file is seekable, then the linenumbers at the start of
- each hexdump line may be out of order, lines may be missing, or over-
- lapping. In these cases xxd will lseek(2) to the next position. If the
- output file is not seekable, only gaps are allowed, which will be
+ If the output file is seekable, then the linenumbers at the start of
+ each hexdump line may be out of order, lines may be missing, or over-
+ lapping. In these cases xxd will lseek(2) to the next position. If the
+ output file is not seekable, only gaps are allowed, which will be
filled by null-bytes.
xxd -r never generates parse errors. Garbage is silently skipped.
- When editing hexdumps, please note that xxd -r skips everything on the
+ When editing hexdumps, please note that xxd -r skips everything on the
input line after reading enough columns of hexadecimal data (see option
- -c). This also means, that changes to the printable ascii (or ebcdic)
- columns are always ignored. Reverting a plain (or postscript) style
- hexdump with xxd -r -p does not depend on the correct number of col-
- umns. Here anything that looks like a pair of hex-digits is inter-
+ -c). This also means, that changes to the printable ascii (or ebcdic)
+ columns are always ignored. Reverting a plain (or postscript) style
+ hexdump with xxd -r -p does not depend on the correct number of col-
+ umns. Here anything that looks like a pair of hex-digits is inter-
preted.
Note the difference between
@@ -122,28 +121,28 @@
and
% xxd -i < file
- xxd -s +seek may be different from xxd -s seek, as lseek(2) is used to
+ xxd -s +seek may be different from xxd -s seek, as lseek(2) is used to
"rewind" input. A '+' makes a difference if the input source is stdin,
- and if stdin's file position is not at the start of the file by the
- time xxd is started and given its input. The following examples may
+ and if stdin's file position is not at the start of the file by the
+ time xxd is started and given its input. The following examples may
help to clarify (or further confuse!)...
- Rewind stdin before reading; needed because the `cat' has already read
+ Rewind stdin before reading; needed because the `cat' has already read
to the end of stdin.
% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file
- Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign
+ Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign
means "relative to the current position", thus the `128' adds to the 1k
where dd left off.
- % sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet"
+ % sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet"
< file
Hexdump from file position 0x100 ( = 1024-768) on.
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet"
< file
- However, this is a rare situation and the use of `+' is rarely needed.
- The author prefers to monitor the effect of xxd with strace(1) or
+ However, this is a rare situation and the use of `+' is rarely needed.
+ The author prefers to monitor the effect of xxd with strace(1) or
truss(1), whenever -s is used.
EXAMPLES
@@ -153,7 +152,7 @@
Print 3 lines (hex 0x30 bytes) from the end of file.
% xxd -s -0x30 file
- Print 120 bytes as continuous hexdump with 40 octets per line.
+ Print 120 bytes as continuous hexdump with 20 octets per line.
% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
@@ -187,7 +186,7 @@
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
- Create a 65537 byte file with all bytes 0x00, except for the last one
+ Create a 65537 byte file with all bytes 0x00, except for the last one
which is 'A' (hex 0x41).
% echo "010000: 41" | xxd -r > file
@@ -197,7 +196,7 @@
*
000fffc: 0000 0000 40 ....A
- Create a 1 byte file containing a single 'A' character. The number
+ Create a 1 byte file containing a single 'A' character. The number
after '-r -s' adds to the linenumbers found in the file; in effect, the
leading bytes are suppressed.
% echo "010000: 41" | xxd -r -s -0x10000 > file
@@ -239,7 +238,7 @@
uuencode(1), uudecode(1), patch(1)
WARNINGS
- The tools weirdness matches its creators brain. Use entirely at your
+ The tools weirdness matches its creators brain. Use entirely at your
own risk. Copy files. Trace it. Become a wizard.
VERSION
diff --git a/runtime/keymap/tamil_tscii.vim b/runtime/keymap/tamil_tscii.vim
index 92dbdc9..df85a4e 100644
--- a/runtime/keymap/tamil_tscii.vim
+++ b/runtime/keymap/tamil_tscii.vim
@@ -1,7 +1,7 @@
" Keymap file for the editing Tamil language files in TSCII encoding.
"
" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
-" Last updated: August 4, 2005
+" Last updated: 2006 June 17
"
" You will need a fixed width TSCII font to use this encoding. The
" Avarangal TSCII fixed width font (TSC_AvarangalFxd) is used to test
@@ -118,7 +118,7 @@
si <char-186><char-162>
sii <char-186><char-163>
sI <char-186><char-163>
-su <char-204>
+su <char-205>
suu <char-221>
sU <char-221>
se <char-166><char-186>
diff --git a/runtime/plugin/getscript.vim b/runtime/plugin/getscript.vim
deleted file mode 100644
index d00e59d..0000000
--- a/runtime/plugin/getscript.vim
+++ /dev/null
@@ -1,470 +0,0 @@
-" ---------------------------------------------------------------------
-" GetLatestVimScripts.vim
-" Author: Charles E. Campbell, Jr.
-" Date: Feb 15, 2006
-" Version: 20
-" Installing: :help glvs-install
-" Usage: :help glvs
-"
-" GetLatestVimScripts: 642 1 :AutoInstall: GetLatestVimScripts.vim
-" ---------------------------------------------------------------------
-" Initialization: {{{1
-" if you're sourcing this file, surely you can't be
-" expecting vim to be in its vi-compatible mode
-if &cp
- if &verbose
- echo "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
- endif
- finish
-endif
-let s:keepfo = &fo
-let s:keepcpo = &cpo
-set cpo&vim
-
-if exists("loaded_GetLatestVimScripts")
- finish
-endif
-let g:loaded_GetLatestVimScripts= "v20"
-
-" ---------------------------------------------------------------------
-" Global Variables: {{{1
-" allow user to change the command for obtaining scripts (does fetch work?)
-if !exists("g:GetLatestVimScripts_wget")
- let g:GetLatestVimScripts_wget= "wget"
-endif
-if !exists("g:GetLatestVimScripts_options")
- let g:GetLatestVimScripts_options= "-q -O"
-endif
-if !exists("g:GetLatestVimScripts_allowautoinstall")
- let g:GetLatestVimScripts_allowautoinstall= 1
-endif
-
-"" For debugging:
-"let g:GetLatestVimScripts_wget = "echo"
-"let g:GetLatestVimScripts_options = "options"
-
-" check if s:autoinstall is possible
-let s:autoinstall= ""
-if g:GetLatestVimScripts_allowautoinstall
-
- if (has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")) && &shell != "bash"
- " windows (but not cygwin/bash)
- let s:dotvim= "vimfiles"
- if !exists("g:GetLatestVimScripts_mv")
- let g:GetLatestVimScripts_mv= "ren"
- endif
-
- else
- " unix
- let s:dotvim= ".vim"
- if !exists("g:GetLatestVimScripts_mv")
- let g:GetLatestVimScripts_mv= "mv"
- endif
- endif
-
- if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
- let s:autoinstall= $HOME."/".s:dotvim
- endif
-" call Decho("s:autoinstall<".s:autoinstall.">")
-else
-" call Decho("g:GetLatestVimScripts_allowautoinstall=".g:GetLatestVimScripts_allowautoinstall.": :AutoInstall: disabled")
-endif
-
-" ---------------------------------------------------------------------
-" Public Interface: {{{1
-com! -nargs=0 GetLatestVimScripts call <SID>GetLatestVimScripts()
-silent! com -nargs=0 GLVS call <SID>GetLatestVimScripts()
-
-" ---------------------------------------------------------------------
-" GetOneScript: (Get Latest Vim Script) this function operates {{{1
-" on the current line, interpreting two numbers and text as
-" ScriptID, SourceID, and Filename.
-" It downloads any scripts that have newer versions from vim.sf.net.
-fun! <SID>GetOneScript(...)
-" call Dfunc("GetOneScript()")
-
- " set options to allow progress to be shown on screen
- let t_ti= &t_ti
- let t_te= &t_te
- let rs = &rs
- set t_ti= t_te= nors
-
- " put current line on top-of-screen and interpret it into
- " a script identifer : used to obtain webpage
- " source identifier : used to identify current version
- " and an associated comment: used to report on what's being considered
- if a:0 >= 3
- let scriptid = a:1
- let srcid = a:2
- let cmmnt = a:3
-" call Decho("scriptid<".scriptid.">")
-" call Decho("srcid <".srcid.">")
-" call Decho("cmmnt <".cmmnt.">")
- else
- let curline = getline(".")
- let parsepat = '^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(.\{-}\)$'
- try
- let scriptid = substitute(curline,parsepat,'\1','e')
- catch /^Vim\%((\a\+)\)\=:E486/
- let scriptid= 0
- endtry
- try
- let srcid = substitute(curline,parsepat,'\2','e')
- catch /^Vim\%((\a\+)\)\=:E486/
- let srcid= 0
- endtry
- try
- let cmmnt = substitute(curline,parsepat,'\3','e')
- catch /^Vim\%((\a\+)\)\=:E486/
- let cmmnt= ""
- endtry
-" call Decho("curline <".curline.">")
-" call Decho("parsepat<".parsepat.">")
-" call Decho("scriptid<".scriptid.">")
-" call Decho("srcid <".srcid.">")
-" call Decho("cmmnt <".cmmnt.">")
- endif
-
- if scriptid == 0 || srcid == 0
- " When looking for :AutoInstall: lines, skip scripts that
- " have 0 0 scriptname
-" call Dret("GetOneScript : skipping a scriptid==srcid==0 line")
- return
- endif
-
- let doautoinstall= 0
- if cmmnt =~ ":AutoInstall:"
-" call Decho("cmmnt<".cmmnt."> has :AutoInstall:...")
- let aicmmnt= substitute(cmmnt,'\s\+:AutoInstall:\s\+',' ','')
-" call Decho("aicmmnt<".aicmmnt."> s:autoinstall=".s:autoinstall)
- if s:autoinstall != ""
- let doautoinstall = g:GetLatestVimScripts_allowautoinstall
- endif
- else
- let aicmmnt= cmmnt
- endif
-" call Decho("aicmmnt<".aicmmnt.">: doautoinstall=".doautoinstall)
-
- exe "norm z\<CR>"
- redraw!
-" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
- echomsg 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
-
- " grab a copy of the plugin's vim.sf.net webpage
- let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid
- let tmpfile = tempname()
- let v:errmsg = ""
-
- " make three tries at downloading the description
- let itry= 1
- while itry <= 3
-" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
- if has("win32") || has("win16") || has("win95")
-" call Decho("silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile.' "'.scriptaddr.'"')
- exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile.' "'.scriptaddr.'"'
- else
-" call Decho("silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile." '".scriptaddr."'")
- exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile." '".scriptaddr."'"
- endif
- if itry == 1
- exe "silent vsplit ".tmpfile
- else
- silent! e %
- endif
-
- " find the latest source-id in the plugin's webpage
- silent! 1
- let findpkg= search('Click on the package to download','W')
- if findpkg > 0
- break
- endif
- let itry= itry + 1
- endwhile
-" call Decho(" --- end downloading tries while loop --- itry=".itry)
-
- " testing: did finding /Click on the package.../ fail?
- if findpkg == 0 || itry >= 4
- silent q!
- call delete(tmpfile)
- " restore options
- let &t_ti = t_ti
- let &t_te = t_te
- let &rs = rs
- let s:downerrors = s:downerrors + 1
-" call Decho("***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">")
- echomsg "***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">"
-" call Dret("GetOneScript : srch for /Click on the package/ failed")
- return
- endif
-" call Decho('found "Click on the package to download"')
-
- let findsrcid= search('src_id=','W')
- if findsrcid == 0
- silent q!
- call delete(tmpfile)
- " restore options
- let &t_ti = t_ti
- let &t_te = t_te
- let &rs = rs
- let s:downerrors = s:downerrors + 1
-" call Decho("***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">")
- echomsg "***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">"
-" call Dret("GetOneScript : srch for /src_id/ failed")
- return
- endif
-" call Decho('found "src_id=" in description page')
-
- let srcidpat = '^\s*<td class.*src_id=\(\d\+\)">\([^<]\+\)<.*$'
- let latestsrcid= substitute(getline("."),srcidpat,'\1','')
- let fname = substitute(getline("."),srcidpat,'\2','')
-" call Decho("srcidpat<".srcidpat."> latestsrcid<".latestsrcid."> fname<".fname.">")
- silent q!
- call delete(tmpfile)
-
- " convert the strings-of-numbers into numbers
- let srcid = srcid + 0
- let latestsrcid = latestsrcid + 0
-" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." fname<".fname.">")
-
- " has the plugin's most-recent srcid increased, which indicates
- " that it has been updated
- if latestsrcid > srcid
- let s:downloads= s:downloads + 1
- if fname == bufname("%")
- " GetLatestVimScript has to be careful about downloading itself
- let fname= "NEW_".fname
- endif
-
- " the plugin has been updated since we last obtained it, so download a new copy
-" call Decho("...downloading new <".fname.">")
- echomsg "...downloading new <".fname.">"
- if has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")
-" call Decho("windows: silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname.' "'.'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid.'"')
- exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname.' "'.'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid.'"'
- else
-" call Decho("unix: silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname." '".'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid."'")
- exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname." '".'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid."'"
- endif
-
- " AutoInstall: only if doautoinstall is so indicating
- if doautoinstall
-" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".fname.")=".filereadable(fname))
- if filereadable(fname)
-" call Decho("move <".fname."> to ".s:autoinstall)
-" call Decho("DISABLED for testing")
- exe "silent !"g:GetLatestVimScripts_mv." ".fname." ".s:autoinstall
- let curdir= escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
- exe "cd ".s:autoinstall
- if fname =~ '\.bz2$'
-" call Decho("attempt to bunzip2 ".fname)
- exe "silent !bunzip2 ".fname
- let fname= substitute(fname,'\.bz2$','','')
- elseif fname =~ '\.gz$'
-" call Decho("attempt to gunzip ".fname)
- exe "silent !gunzip ".fname
- let fname= substitute(fname,'\.gz$','','')
- endif
- if fname =~ '\.zip$'
-" call Decho("attempt to unzip ".fname)
- exe "silent !unzip -o".fname
- elseif fname =~ '\.tar$'
-" call Decho("attempt to untar ".fname)
- exe "silent !tar -oxvf ".fname
- endif
- if fname =~ '.vim$'
-" call Decho("attempt to simply move ".fname." to plugin")
- exe "silent !".g:GetLatestVimScripts_mv." ".fname." plugin"
- endif
- exe "helptags ../".s:dotvim."/doc"
- exe "cd ".curdir
- endif
- endif
-
- " update the data in the <GetLatestVimScripts.dat> file
- let modline=scriptid." ".latestsrcid." ".cmmnt
- call setline(line("."),modline)
-" call Decho("modline<".modline."> (updated GetLatestVimScripts.dat file)")
- endif
-
- " restore options
- let &t_ti= t_ti
- let &t_te= t_te
- let &rs = rs
-
-" call Dret("GetOneScript")
-endfun
-
-" ---------------------------------------------------------------------
-" GetLatestVimScripts: this function gets the latest versions of {{{1
-" scripts based on the list in
-"
-" (first dir in runtimepath)/GetLatest/GetLatestVimScripts.dat
-fun! <SID>GetLatestVimScripts()
-" call Dfunc("GetLatestVimScripts() autoinstall<".s:autoinstall.">")
-
-" insure that wget is executable
- if executable(g:GetLatestVimScripts_wget) != 1
- echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system"
-" call Dret("GetLatestVimScripts : wget not executable/availble")
- return
- endif
-
- " Find the .../GetLatest sudirectory under the runtimepath
- let rtplist= &rtp
- while rtplist != ""
- let datadir= substitute(rtplist,',.*$','','e')."/GetLatest"
- if isdirectory(datadir)
-" call Decho("found directory<".datadir.">")
- break
- endif
- unlet datadir
- if rtplist =~ ','
- let rtplist= substitute(rtplist,'^.\{-},','','e')
- else
- let rtplist= ""
- endif
- endwhile
-
- " Sanity checks: readability and writability
- if !exists("datadir")
- echoerr "Unable to find a GetLatest subdirectory on your runtimepath"
-" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
- return
- endif
- if filewritable(datadir) != 2
- echoerr "Your ".datadir." isn't writable"
-" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
- return
- endif
- let datafile= datadir."/GetLatestVimScripts.dat"
- if !filereadable(datafile)
- echoerr "Your data file<".datafile."> isn't readable"
-" call Dret("GetLatestVimScripts : non-readable datafile<".datafile.">")
- return
- endif
- if !filewritable(datafile)
- echoerr "Your data file<".datafile."> isn't writable"
-" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
- return
- endif
-" call Decho("datadir <".datadir.">")
-" call Decho("datafile <".datafile.">")
-
- " don't let any events interfere (like winmanager's, taglist's, etc)
- let eikeep= &ei
- set ei=all
-
- " record current directory, change to datadir, open split window with
- " datafile
- let origdir= getcwd()
- exe "cd ".escape(substitute(datadir,'\','/','ge'),"|[]*'\" #")
- split
- exe "e ".escape(substitute(datafile,'\','/','ge'),"|[]*'\" #")
- res 1000
- let s:downloads = 0
- let s:downerrors= 0
-
- " Check on dependencies mentioned in plugins
-" call Decho(" ")
-" call Decho("searching plugins for GetLatestVimScripts dependencies")
- let lastline = line("$")
- let plugins = globpath(&rtp,"plugin/*.vim")
- let foundscript = 0
-
-" call Decho("plugins<".plugins."> lastline#".lastline)
- while plugins != ""
- let plugin = substitute(plugins,'\n.*$','','e')
- let plugins= (plugins =~ '\n')? substitute(plugins,'^.\{-}\n\(.*\)$','\1','e') : ""
- $
-" call Decho(".dependency checking<".plugin."> line$=".line("$"))
- exe "silent r ".plugin
- while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
- let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
- let llp1 = lastline+1
-
- if newscript !~ '^"'
- " found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile
- let curline = line(".")
- let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e')
- exe llp1
- let srchline = search('\<'.noai_script.'\>','bW')
-" call Decho("..newscript<".newscript."> noai_script<".noai_script."> srch=".srchline." lastline=".lastline)
-
- if srchline == 0
- " found a new script to permanently include in the datafile
- let keep_rega = @a
- let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
- exe lastline."put a"
- echomsg "Appending <".@a."> to ".datafile." for ".newscript
-" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
- let @a = keep_rega
- let lastline = llp1
- let curline = curline + 1
- let foundscript = foundscript + 1
-" else " Decho
-" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
- endif
-
- let curline = curline + 1
- exe curline
- endif
-
- endwhile
- let llp1= lastline + 1
-" call Decho(".deleting lines: ".llp1.",$d")
- exe "silent! ".llp1.",$d"
- endwhile
-
- if foundscript == 0
- set nomod
- endif
-
- " Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
- set lz
-" call Decho(" --- end of dependency checking loop --- ")
-" call Decho("call GetOneScript on lines at end of datafile<".datafile.">")
- 1
- /^-----/,$g/^\s*\d/call <SID>GetOneScript()
-
- " Final report (an echomsg)
- try
- silent! ?^-------?
- catch /^Vim\%((\a\+)\)\=:E114/
-" call Dret("GetLatestVimScripts : nothing done!")
- return
- endtry
- exe "norm! kz\<CR>"
- let s:msg = ""
- if s:downloads == 1
- let s:msg = "Downloaded one updated script to <".datadir.">"
- elseif s:downloads == 2
- let s:msg= "Downloaded two updated scripts to <".datadir.">"
- elseif s:downloads > 1
- let s:msg= "Downloaded ".s:downloads." updated scripts to <".datadir.">"
- else
- let s:msg= "Everything was already current"
- endif
- if s:downerrors > 0
- let s:msg= s:msg." (".s:downerrors." downloading errors)"
- endif
- echomsg s:msg
- " save the file
- if &mod
- wq
- else
- q
- endif
-
- " restore events and current directory
- exe "cd ".escape(substitute(origdir,'\','/','ge'),"|[]*'\" #")
- let &ei= eikeep
- set nolz
-" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
-endfun
-" ---------------------------------------------------------------------
-
-" Restore Options: {{{1
-let &fo = s:keepfo
-let &cpo= s:keepcpo
-
-" vim: ts=8 sts=2 fdm=marker nowrap
diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim
index 506b431..e1b87fe 100644
--- a/runtime/plugin/tarPlugin.vim
+++ b/runtime/plugin/tarPlugin.vim
@@ -1,5 +1,6 @@
" tarPlugin.vim -- a Vim plugin for browsing tarfiles
-" Copyright (c) 2002, Michael C. Toren <mct@toren.net>
+" Original was copyright (c) 2002, Michael C. Toren <mct@toren.net>
+" Modified by Charles E. Campbell, Jr.
" Distributed under the GNU General Public License.
"
" Updates are available from <http://michael.toren.net/code/>. If you
@@ -8,7 +9,17 @@
" Also look there for further comments and documentation.
"
" This part only sets the autocommands. The functions are in autoload/tar.vim.
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if &cp || exists("g:loaded_tarPlugin")
+ finish
+endif
+let g:loaded_tarPlugin = 1
+let s:keepcpo = &cpo
+set cpo&vim
+" ---------------------------------------------------------------------
+" Public Interface: {{{1
augroup tar
au!
au BufReadCmd tarfile:* call tar#Read(expand("<amatch>"), 1)
@@ -30,4 +41,8 @@
au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
augroup END
-" vim: ts=8
+" ---------------------------------------------------------------------
+" Restoration And Modelines: {{{1
+" vim: fdm=marker
+let &cpo= s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim
index 68b8e9d..aa123b7 100644
--- a/runtime/syntax/mysql.vim
+++ b/runtime/syntax/mysql.vim
@@ -249,6 +249,7 @@
syn region mysqlFunction start="subdate(" end=")" contains=ALL
syn region mysqlFunction start="substring(" end=")" contains=ALL
syn region mysqlFunction start="substring_index(" end=")" contains=ALL
+syn region mysqlFunction start="subtime(" end=")" contains=ALL
syn region mysqlFunction start="sum(" end=")" contains=ALL
syn region mysqlFunction start="sysdate(" end=")" contains=ALL
syn region mysqlFunction start="system_user(" end=")" contains=ALL
diff --git a/src/po/it.po b/src/po/it.po
index ed3336b..04ea657 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -12,12 +12,13 @@
msgid ""
msgstr ""
"Project-Id-Version: vim 7.0\n"
-"POT-Creation-Date: 2006-04-25 12:03+0200\n"
-"PO-Revision-Date: 2006-05-03 00:02+0200\n"
+"POT-Creation-Date: 2007-04-29 13:02+0200\n"
+"PO-Revision-Date: 2007-04-29 18:02+0200\n"
"Last-Translator: Vlad Sandrini <vlad.gently@gmail.com>\n"
"Language-Team: Italian"
" Antonio Colombo <azc100@gmail.com>"
-" Vlad Sandrini <vlad.gently@gmail.com>\n"
+" Vlad Sandrini <vlad.gently@gmail.com>"
+" Luciano Montanaro <mikelima@cirulla.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO_8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
@@ -196,6 +197,9 @@
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: Buffer corrente non in modalità 'diff'"
+msgid "E793: No other buffer in diff mode is modifiable"
+msgstr "E793: Nessun altro buffer è modificabile in modalità 'diff'"
+
msgid "E100: No other buffer in diff mode"
msgstr "E100: Non c'è nessun altro buffer in modalità 'diff'"
@@ -621,6 +625,10 @@
msgstr "E706: Tipo di variabile non corrispondente per: %s"
#, c-format
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: Non posso cancellare la variabile %s"
+
+#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: Valore di %s non modificabile"
@@ -754,6 +762,7 @@
msgid " FAILED"
msgstr " FALLITO"
+#. avoid a wait_return for this message, it's annoying
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: File viminfo \"%s\" inaccessibile in scrittura"
@@ -1299,7 +1308,7 @@
#, no-c-format
msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
-msgstr "E499: Un nome di file nullo per '%' or '#', va bene solo con \":p:h\""
+msgstr "E499: Un nome di file nullo per '%' o '#', va bene solo con \":p:h\""
msgid "E500: Evaluates to an empty string"
msgstr "E500: Il valore è una stringa nulla"
@@ -1464,6 +1473,9 @@
msgid "is not a file"
msgstr "non è un file"
+msgid "is a device (disabled with 'opendevice' option"
+msgstr "è una periferica (disabilitata con l'opzione 'opendevice'"
+
msgid "[New File]"
msgstr "[File nuovo]"
@@ -1546,7 +1558,7 @@
msgstr "E676: Nessun autocomando corrispondente per buffer acwrite"
msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr "E203: Buffer in scrittuta cancellato o scaricato dagli autocomandi"
+msgstr "E203: Buffer in scrittura cancellato o scaricato dagli autocomandi"
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: L'autocomando ha modificato numero linee in maniera imprevista"
@@ -1560,6 +1572,9 @@
msgid "is not a file or writable device"
msgstr "non è un file o un dispositivo su cui si possa scrivere"
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "scrittura su periferica disabilitata con l'opzione 'opendevice'"
+
msgid "is read-only (add ! to override)"
msgstr "è in sola letture (aggiungi ! per eseguire comunque)"
@@ -2195,7 +2210,7 @@
msgstr "Stampato: %s"
msgid "Printing aborted"
-msgstr "Stampa non completata'"
+msgstr "Stampa non completata"
msgid "E455: Error writing to PostScript output file"
msgstr "E455: Errore in scrittura a file PostScript di output"
@@ -2458,19 +2473,6 @@
msgid "not allowed in the Vim sandbox"
msgstr "non ammesso in ambiente protetto"
-#, c-format
-msgid "E370: Could not load library %s"
-msgstr "E370: Non posso caricare la libreria %s"
-
-msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-msgstr ""
-"Spiacente, comando non disponibile, non riesco a caricare libreria programmi "
-"Perl."
-
-msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-msgstr ""
-"E299: Valorizzazione Perl vietata in ambiente protetto senza il modulo Safe"
-
msgid ""
"E263: Sorry, this command is disabled, the Python library could not be "
"loaded."
@@ -2488,7 +2490,7 @@
msgstr "softspace deve essere un numero intero"
msgid "invalid attribute"
-msgstr "atrributo non valido"
+msgstr "attributo non valido"
msgid "writelines() requires list of strings"
msgstr "writelines() richiede una lista di stringhe"
@@ -2645,7 +2647,7 @@
msgstr "E275: Richiesta SNiFF+ sconosciuta: %s"
msgid "E276: Error connecting to SNiFF+"
-msgstr "E276: Errore connettendosi a SNiFF+"
+msgstr "E276: Errore di connessione a SNiFF+"
msgid "E278: SNiFF+ not connected"
msgstr "E278: SNiFF+ non connesso"
@@ -2994,17 +2996,17 @@
msgstr "--remote <file>\tApri <file> in un server Vim se possibile"
msgid "--remote-silent <files> Same, don't complain if there is no server"
-msgstr "--remote-silent <files> Stessa cosa, ignora se non esiste un server"
+msgstr "--remote-silent <file> Stessa cosa, ignora se non esiste un server"
msgid ""
"--remote-wait <files> As --remote but wait for files to have been edited"
msgstr ""
-"--remote-wait <file> Come --remote ma aspetta che file siano elaborati"
+"--remote-wait <file> Come --remote ma aspetta che i file siano elaborati"
msgid ""
"--remote-wait-silent <files> Same, don't complain if there is no server"
msgstr ""
-"--remote-wait-silent <files> Stessa cosa, ignora se non esiste un server"
+"--remote-wait-silent <file> Stessa cosa, ignora se non esiste un server"
msgid "--remote-tab <files> As --remote but open tab page for each file"
msgstr "--remote-tab <file> Come --remote ma apre una linguetta per ogni file"
@@ -3207,7 +3209,7 @@
"# History of marks within files (newest to oldest):\n"
msgstr ""
"\n"
-"# Storia dei mark all'interno dei files (dai più recenti ai meno recenti):\n"
+"# Storia dei mark all'interno dei file (dai più recenti ai meno recenti):\n"
msgid "Missing '>'"
msgstr "Manca '>'"
@@ -3329,6 +3331,10 @@
",\n"
"o il file è stato danneggiato."
+msgid " has been damaged (page size is smaller than minimum value).\n"
+msgstr ""
+" è stato danneggiato (la dimensione della pagina è inferiore al minimo).\n"
+
#, c-format
msgid "Using swap file \"%s\""
msgstr "Uso swap file \"%s\""
@@ -3671,6 +3677,10 @@
msgid "E329: No menu \"%s\""
msgstr "E329: Nessun Menu \"%s\""
+#. Only a mnemonic or accelerator is not valid.
+msgid "E792: Empty menu name"
+msgstr "E792: Nome menu non valido"
+
msgid "E330: Menu path must not lead to a sub-menu"
msgstr "E330: Il percorso del Menu non deve condurre a un sotto-Menu"
@@ -4558,7 +4568,7 @@
msgstr "E66: \\z( non consentito qui"
msgid "E67: \\z1 et al. not allowed here"
-msgstr "E67: \\z1 et al. non consentiti qui"
+msgstr "E67: \\z1 ecc. non consentiti qui"
msgid "E68: Invalid character after \\z"
msgstr "E68: Carattere non ammesso dopo \\z"
@@ -5025,6 +5035,7 @@
msgid "Sorry, only %ld suggestions"
msgstr "Spiacente, solo %ld suggerimenti"
+#. for when 'cmdheight' > 1
#. avoid more prompt
#, c-format
msgid "Change \"%.*s\" to:"
@@ -5450,6 +5461,13 @@
msgid ""
"\n"
+"MS-Windows 64 bit GUI version"
+msgstr ""
+"\n"
+"Versione MS-Windows 64 bit GUI"
+
+msgid ""
+"\n"
"MS-Windows 32 bit GUI version"
msgstr ""
"\n"
@@ -5765,6 +5783,19 @@
msgid "E447: Can't find file \"%s\" in path"
msgstr "E447: Non riesco a trovare il file \"%s\" nel percorso"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: Non posso caricare la libreria %s"
+
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"Spiacente, comando non disponibile, non riesco a caricare libreria programmi "
+"Perl."
+
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr ""
+"E299: Valorizzazione Perl vietata in ambiente protetto senza il modulo Safe"
+
msgid "Edit with &multiple Vims"
msgstr "Apri con &molti Vim"
@@ -6033,9 +6064,9 @@
msgstr "E46: Non posso cambiare la variabile read-only \"%s\""
#, c-format
-msgid "E46: Cannot set variable in the sandbox: \"%s\""
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
msgstr ""
-"E46: Non posso impostare la variabile read-only in ambiente protetto: \"%s\""
+"E794: Non posso impostare la variabile read-only in ambiente protetto: \"%s\""
msgid "E47: Error while reading errorfile"
msgstr "E47: Errore leggendo il file errori"
diff --git a/src/proto/tag.pro b/src/proto/tag.pro
index 9840843..01388f6 100644
--- a/src/proto/tag.pro
+++ b/src/proto/tag.pro
@@ -1,12 +1,12 @@
/* tag.c */
-extern int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose));
-extern void tag_freematch __ARGS((void));
-extern void do_tags __ARGS((exarg_T *eap));
-extern int find_tags __ARGS((char_u *pat, int *num_matches, char_u ***matchesp, int flags, int mincount, char_u *buf_ffname));
-extern void free_tag_stuff __ARGS((void));
-extern int get_tagfname __ARGS((tagname_T *tnp, int first, char_u *buf));
-extern void tagname_free __ARGS((tagname_T *tnp));
-extern void simplify_filename __ARGS((char_u *filename));
-extern int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file, char_u ***file));
-extern int get_tags __ARGS((list_T *list, char_u *pat));
+int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose));
+void tag_freematch __ARGS((void));
+void do_tags __ARGS((exarg_T *eap));
+int find_tags __ARGS((char_u *pat, int *num_matches, char_u ***matchesp, int flags, int mincount, char_u *buf_ffname));
+void free_tag_stuff __ARGS((void));
+int get_tagfname __ARGS((tagname_T *tnp, int first, char_u *buf));
+void tagname_free __ARGS((tagname_T *tnp));
+void simplify_filename __ARGS((char_u *filename));
+int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file, char_u ***file));
+int get_tags __ARGS((list_T *list, char_u *pat));
/* vim: set ft=c : */