Compare commits

...

19 Commits

Author SHA1 Message Date
Bram Moolenaar
94127e4abc updated for version 7.2.403
Problem:    Compiler warning for pointer type. (Tony Mechelynck)
Solution:   Move type cast to the right place.
2010-03-19 23:08:48 +01:00
Bram Moolenaar
b52073ac11 Updated runtime and language files. 2010-03-17 20:02:06 +01:00
Bram Moolenaar
baff0fec3f updated for version 7.2.402
Problem:    This gives a #705 error: let X = function('haslocaldir')
            let X = function('getcwd')
Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
            Khorev)
2010-03-17 19:53:49 +01:00
Bram Moolenaar
b91e59b0f3 updated for version 7.2.401
Problem:    ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
            directory names with a space. (Alexandre Provencio)
Solution:   Remove the backslash before checking if the name is a directory.
            (Dominique Pelle)
2010-03-17 19:13:27 +01:00
Bram Moolenaar
639a2554e4 updated for version 7.2.400
Problem:    Dynamic Ruby is not initialised properly for version 1.9.1.
            Ruby cannot create strings from NULL.
Solution:   Cleanup #ifdefs.  Handle NULL like an empty string.  Add
            ruby_init_stack. (Sergey Khorev)
2010-03-17 18:15:23 +01:00
Bram Moolenaar
8c79cafcfa updated for version 7.2.399
Problem:    Cannot compile on MingW
Solution:   Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
2010-03-17 17:25:09 +01:00
Bram Moolenaar
9b73a78ed7 updated for version 7.2.398
Problem:    When moving windows the cursor ends up in the wrong line.
Solution:   Set the window width and height properly. (Lech Lorens)
2010-03-17 16:54:57 +01:00
Bram Moolenaar
08bb82e8c5 updated for version 7.2.397
Problem:    Redundant check for w_lines_valid.
Solution:   Remove the if.  (Lech Lorens)
2010-03-17 16:45:12 +01:00
Bram Moolenaar
9c27fc3dba updated for version 7.2.396
Problem:    Get E38 errors. (Dasn)
Solution:   Set cursor to line 1 instead of 0. (Dominique Pelle)
2010-03-17 14:48:24 +01:00
Bram Moolenaar
97e7a84b6d updated for version 7.2.395
Problem:    In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
            Mechelynck)
Solution:   Don't escape ? for a help command. (Sergey Khorev)
2010-03-17 13:07:08 +01:00
Bram Moolenaar
33cfa2b0ee updated for version 7.2.394
Problem:    .xz files are not supported.
Solution:   Recognize .xz files so that they can be edited.
2010-03-10 17:16:12 +01:00
Bram Moolenaar
595a7bee57 updated for version 7.2.393
Problem:    Mac: Can't build with different Xcode developer tools directory.
Solution:   make "Developer" directory name configurable. (Rainer Muller)
2010-03-10 16:28:12 +01:00
Bram Moolenaar
581f6dc94d updated for version 7.2.392
Problem:    Netbeans hangs reading from a socket at the maximum block size.
Solution:   Use select() or poll(). (Xavier de Gaye)
2010-03-10 16:12:48 +01:00
Bram Moolenaar
37d619f896 updated for version 7.2.391
Problem:    Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
Solution:   Fix computations in getvcol(). (partly by Lech Lorens)
2010-03-10 14:46:26 +01:00
Bram Moolenaar
be678f86d1 updated for version 7.2.390
Problem:    In some situations the popup menu can be displayed wrong.
Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)
2010-03-10 14:15:54 +01:00
Bram Moolenaar
12682fda7a updated for version 7.2.389
Problem:    synIDattr() cannot return the font.
Solution:   Support the "font" argument. (Christian Brabandt)
2010-03-10 13:43:49 +01:00
Bram Moolenaar
66ca320d9e updated for version 7.2.388
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   Different approach to build file. (Sergey Khorev)
2010-03-10 13:20:40 +01:00
Bram Moolenaar
42d57f0017 updated for version 7.2.387
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   More #ifdefs for the  Ruby code. (Sergey Khorev)
2010-03-10 12:47:00 +01:00
Bram Moolenaar
42624592cb updated for version 7.2.386
Problem:    Focus hack for KDE 3.1 causes problems for other window managers.
Solution:   Remove the hack. (forwarded by Joel Bradshaw)
2010-03-10 12:25:03 +01:00
30 changed files with 508 additions and 283 deletions

View File

@@ -2893,7 +2893,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
let wlastline = line('w$')
let lastline = line('$')
" call Decho("v:mouse_lnum=".mouse_lnum." line(w$)=".wlastline." line($)=".lastline)
if mouse_lnum == wlastline + 1
if mouse_lnum == wlastline + 1 || v:mouse_win != winnr()
" call Decho("appears to be a status bar leftmouse click")
" appears to be a status bar leftmouse click
return

View File

@@ -1,17 +1,28 @@
"pythoncomplete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.7
" Last Updated: 19 Oct 2006
" Version: 0.9
" Last Updated: 18 Jun 2009
"
" Changes
" TODO:
" User defined docstrings aren't handled right...
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
" i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
" * Fixed docstring parsing for classes and functions
" * Fixed parsing of *args and **kwargs type arguments
" * Better function param parsing to handle things like tuples and
" lambda defaults args
"
" v 0.8
" * Fixed an issue where the FIRST assignment was always used instead of
" using a subsequent assignment for a variable
" * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
" * Fixed function list sorting (_ and __ at the bottom)
" * Removed newline removal from docs. It appears vim handles these better in
@@ -63,7 +74,7 @@ function! pythoncomplete#Complete(findstart, base)
while idx > 0
let idx -= 1
let c = line[idx]
if c =~ '\w' || c =~ '\.' || c == '('
if c =~ '\w' || c =~ '\.'
let cword = c . cword
continue
elseif strlen(cword) > 0 || idx == 0
@@ -206,7 +217,7 @@ class Completer(object):
if len(stmt) > 0 and stmt[-1] == '(':
result = eval(_sanitize(stmt[:-1]), self.compldict)
doc = result.__doc__
if doc == None: doc = ''
if doc is None: doc = ''
args = self.get_arguments(result)
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
elif ridx == -1:
@@ -223,18 +234,18 @@ class Completer(object):
try: maindoc = result.__doc__
except: maindoc = ' '
if maindoc == None: maindoc = ' '
if maindoc is None: maindoc = ' '
for m in all:
if m == "_PyCmplNoType": continue #this is internal
try:
dbg('possible completion: %s' % m)
if m.find(match) == 0:
if result == None: inst = all[m]
if result is None: inst = all[m]
else: inst = getattr(result,m)
try: doc = inst.__doc__
except: doc = maindoc
typestr = str(inst)
if doc == None or doc == '': doc = maindoc
if doc is None or doc == '': doc = maindoc
wrd = m[len(match):]
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
@@ -260,9 +271,9 @@ class Completer(object):
return []
class Scope(object):
def __init__(self,name,indent):
def __init__(self,name,indent,docstr=''):
self.subscopes = []
self.docstr = ''
self.docstr = docstr
self.locals = []
self.parent = None
self.name = name
@@ -281,29 +292,28 @@ class Scope(object):
while d.find(' ') > -1: d = d.replace(' ',' ')
while d[0] in '"\'\t ': d = d[1:]
while d[-1] in '"\'\t ': d = d[:-1]
dbg("Scope(%s)::docstr = %s" % (self,d))
self.docstr = d
def local(self,loc):
if not self._hasvaralready(loc):
self.locals.append(loc)
self._checkexisting(loc)
self.locals.append(loc)
def copy_decl(self,indent=0):
""" Copy a scope's declaration only, at the specified indent level - not local variables """
return Scope(self.name,indent)
return Scope(self.name,indent,self.docstr)
def _hasvaralready(self,test):
def _checkexisting(self,test):
"Convienance function... keep out duplicates"
if test.find('=') > -1:
var = test.split('=')[0].strip()
for l in self.locals:
if l.find('=') > -1 and var == l.split('=')[0].strip():
return True
return False
self.locals.remove(l)
def get_code(self):
# we need to start with this, to fix up broken completions
# hopefully this name is unique enough...
str = '"""'+self.docstr+'"""\n'
str = ""
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
for l in self.locals:
if l.startswith('import'): str += l+'\n'
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
@@ -330,11 +340,11 @@ class Scope(object):
return ' '*(self.indent+1)
class Class(Scope):
def __init__(self, name, supers, indent):
Scope.__init__(self,name,indent)
def __init__(self, name, supers, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.supers = supers
def copy_decl(self,indent=0):
c = Class(self.name,self.supers,indent)
c = Class(self.name,self.supers,indent, self.docstr)
for s in self.subscopes:
c.add(s.copy_decl(indent+1))
return c
@@ -351,11 +361,11 @@ class Class(Scope):
class Function(Scope):
def __init__(self, name, params, indent):
Scope.__init__(self,name,indent)
def __init__(self, name, params, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.params = params
def copy_decl(self,indent=0):
return Function(self.name,self.params,indent)
return Function(self.name,self.params,indent, self.docstr)
def get_code(self):
str = "%sdef %s(%s):\n" % \
(self.currentindent(),self.name,','.join(self.params))
@@ -371,7 +381,7 @@ class PyParser:
def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken)
name = []
if pre == None:
if pre is None:
tokentype, token, indent = self.next()
if tokentype != NAME and token != '*':
return ('', token)
@@ -405,17 +415,20 @@ class PyParser:
while True:
tokentype, token, indent = self.next()
if token in (')', ',') and level == 1:
names.append(name)
if '=' not in name: name = name.replace(' ', '')
names.append(name.strip())
name = ''
if token == '(':
level += 1
name += "("
elif token == ')':
level -= 1
if level == 0: break
else: name += ")"
elif token == ',' and level == 1:
pass
else:
name += str(token)
name += "%s " % str(token)
return names
def _parsefunction(self,indent):
@@ -495,16 +508,26 @@ class PyParser:
#Handle 'self' params
if scp.parent != None and type(scp.parent) == Class:
slice = 1
p = scp.params[0]
i = p.find('=')
if i != -1: p = p[:i]
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
for p in scp.params[slice:]:
i = p.find('=')
if len(p) == 0: continue
pvar = ''
ptype = ''
if i == -1:
newscope.local('%s = _PyCmplNoType()' % p)
pvar = p
ptype = '_PyCmplNoType()'
else:
newscope.local('%s = %s' % (p[:i],_sanitize(p[i+1])))
pvar = p[:i]
ptype = _sanitize(p[i+1:])
if pvar.startswith('**'):
pvar = pvar[2:]
ptype = '{}'
elif pvar.startswith('*'):
pvar = pvar[1:]
ptype = '[]'
newscope.local('%s = %s' % (pvar,ptype))
for s in scp.subscopes:
ns = s.copy_decl(0)
@@ -532,17 +555,19 @@ class PyParser:
self.scope = self.scope.pop(indent)
elif token == 'def':
func = self._parsefunction(indent)
if func == None:
if func is None:
print "function: syntax error..."
continue
dbg("new scope: function")
freshscope = True
self.scope = self.scope.add(func)
elif token == 'class':
cls = self._parseclass(indent)
if cls == None:
if cls is None:
print "class: syntax error..."
continue
freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls)
elif token == 'import':
@@ -569,6 +594,7 @@ class PyParser:
name,token = self._parsedotname(token)
if token == '=':
stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
if stmt != None:
self.scope.local("%s = %s" % (name,stmt))
freshscope = False

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.2. Last change: 2010 Jan 19
*eval.txt* For Vim version 7.2. Last change: 2010 Mar 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5388,6 +5388,8 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
the color, cterm: color number as a string,
term: empty string)
"bg" background color (as with "fg")
"font" font name (only available in the GUI)
|highlight-font|
"sp" special color (as with "fg") |highlight-guisp|
"fg#" like "fg", but for the GUI and the GUI is
running the name in "#RRGGBB" form
@@ -5397,6 +5399,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
"italic" "1" if italic
"reverse" "1" if reverse
"inverse" "1" if inverse (= reverse)
"standout" "1" if standout
"underline" "1" if underlined
"undercurl" "1" if undercurled

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.2. Last change: 2009 Jul 14
*insert.txt* For Vim version 7.2. Last change: 2010 Mar 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -639,6 +639,7 @@ completion operation: >
return "\<Tab>"
else
return "\<C-N>"
endif
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.2. Last change: 2010 Mar 02
*todo.txt* For Vim version 7.2. Last change: 2010 Mar 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,22 +30,22 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Patch for access to freed memory. (Dominique Pelle, 2010 Feb 28)
":s" summary in :folddo is not correct. (Jean Johner, 2010 Feb 20)
Patch from Lech Lorens, 2010 Mar 13.
Update pythoncomplete. (Aaron Griffin, 2010 Feb 25)
Vim tries to set the background or foreground color in a terminal to -1.
(Graywh) Appears to happen with ":hi Normal ctermbg=NONE".
Possible solution from Matt Wozniski, 2010 Mar 17.
Patch for Visual Studio 2010. (George Reilly, 2010 Feb 26)
Test 69 breaks.
With cmdline window open, can drag the status line above it, but not another
one. (Jean Johner, 2010 Feb 27)
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle.
I often see pasted text (from Firefox, to Vim in xterm) appear twice.
Also, Vim in xterm sometimes loses copy/paste ability (probably after running
an external command).
In netrw, click on last status lines causes netrw to open the last entry in
the window. (Jean Johner, 2010 Feb 26)
Problem with transparent cmdline. Also: Terminal title is wrong with
non-ASCII character. (Lily White, 2010 Mar 7)
iconv() doesn't fail on an illegal character, as documented. (Yongwei Wu, 2009
Nov 15, example Nov 26) Add argument to specify whether iconv() should fail
@@ -55,8 +55,6 @@ Add local time at start of --startuptime output.
Requires configure check for localtime().
Use format year-month-day hr:min:sec.
":s" summary in :folddo is not correct. (Jean Johner, 2010 Feb 20)
Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
Find tail? Might have a / in argument. Find space? Might have space in
path.
@@ -67,6 +65,9 @@ Now with Mercurial repository (2010 Jan 2)
Crash when assigning s: to variable, pointer becomes invalid later.
(Yukihiro Nakadaira, 2009 Oct 12, confirmed by Dominique Pelle)
Test 69 breaks on MS-Windows, both 32 and 64 builds. (George Reilly, 2010 Feb
26)
Coverity: ask someone to create new user: Dominique.
look into reported defects: http://scan.coverity.com/rung2.html
@@ -97,16 +98,11 @@ http://blog.flameeyes.eu/2008/01/17/today-how-to-identify-unused-exported-functi
In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
Jun 1)
Why does this give a #705 error:
let X = function('haslocaldir')
let X = function('getcwd')
Inserting "unlet X" helps.
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
Reproducable crash in syntax HL. (George Reilly, Dominique Pelle, 2009 May 9)
Reproducible crash in syntax HL. (George Reilly, Dominique Pelle, 2009 May 9)
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
@@ -143,9 +139,6 @@ Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)
Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
2009 Jul 18)
":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight directory names
with a space. (Alexandre Provencio, 2009 Jun 9)
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
@@ -1141,6 +1134,7 @@ Vim 7.3:
Kocher (LGPL), close to original. Mohsin also has some ideas.
Take four bytes and turn them into unsigned to avoid byte-order problems.
Need to buffer up to 7 bytes to align on 8 byte boundaries.
Patch from Moshin, 2010 Mar 15.
- ":{range}source": source the lines from the current file.
You can already yank lines and use :@" to execute them.
Most of do_source() would not be used, need a new function.

View File

@@ -1,6 +1,6 @@
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2009 Jul 01
" Last Change: 2010 Mar 10
" Exit quickly when:
" - this plugin was already loaded
@@ -20,21 +20,25 @@ augroup gzip
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma setlocal bin
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
autocmd FileAppendPost *.gz call gzip#write("gzip")
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
autocmd FileAppendPost *.Z call gzip#write("compress -f")
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
autocmd FileAppendPost *.xz call gzip#write("xz -z")
augroup END

View File

@@ -1,22 +1,15 @@
" Vim syntax file
" Language: Vim syntax file for SNMPv1 and SNMPv2 MIB and SMI files
" Author: David Pascoe <pascoedj@spamcop.net>
" Written: Wed Jan 28 14:37:23 GMT--8:00 1998
" Last Changed: Thu Feb 27 10:18:16 WST 2003
" Language: Vim syntax file for SNMPv1 and SNMPv2 MIB and SMI files
" Maintainer: Martin Smat <msmat@post.cz>
" Original Author: David Pascoe <pascoedj@spamcop.net>
" Written: Wed Jan 28 14:37:23 GMT--8:00 1998
" Last Changed: Mon Mar 15 2010
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
if exists("b:current_syntax")
finish
endif
if version >= 600
setlocal iskeyword=@,48-57,_,128-167,224-235,-,:,=
else
set iskeyword=@,48-57,_,128-167,224-235,-,:,=
endif
setlocal iskeyword=@,48-57,_,128-167,224-235,-,:,=
syn keyword mibImplicit ACCESS ANY AUGMENTS BEGIN BIT BITS BOOLEAN CHOICE
syn keyword mibImplicit COMPONENTS CONTACT-INFO DEFINITIONS DEFVAL
@@ -47,31 +40,16 @@ syn keyword mibEpilogue test-function-async next-function next-function-async
syn keyword mibEpilogue leaf-name
syn keyword mibEpilogue DEFAULT contained
syn match mibComment "\ *--.*$"
syn match mibNumber "\<['0-9a-fA-FhH]*\>"
syn match mibComment "\ *--.\{-}\(--\|$\)"
syn match mibNumber "\<['0-9a-fA-FhH]*\>"
syn region mibDescription start="\"" end="\"" contains=DEFAULT
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_mib_syn_inits")
if version < 508
let did_mib_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink mibImplicit Statement
HiLink mibComment Comment
HiLink mibConstants String
HiLink mibNumber Number
HiLink mibDescription Identifier
HiLink mibEpilogue SpecialChar
HiLink mibValue Structure
delcommand HiLink
endif
hi def link mibImplicit Statement
hi def link mibComment Comment
hi def link mibConstants String
hi def link mibNumber Number
hi def link mibDescription Identifier
hi def link mibEpilogue SpecialChar
hi def link mibValue Structure
let b:current_syntax = "mib"
" vim: ts=8

View File

@@ -212,23 +212,27 @@ ifndef RUBY_VER_LONG
RUBY_VER_LONG = 1.6
endif
ifndef RUBY_PLATFORM
ifeq ($(RUBY_VER), 16)
ifndef RUBY_PLATFORM
RUBY_PLATFORM = i586-mswin32
endif
ifndef RUBY_INSTALL_NAME
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
endif
else
ifndef RUBY_PLATFORM
ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
RUBY_PLATFORM = i386-mingw32
else
RUBY_PLATFORM = i386-mswin32
endif
endif
endif
ifndef RUBY_INSTALL_NAME
ifeq ($(RUBY_VER), 16)
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
else
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
endif
endif
RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
ifeq (no, $(DYNAMIC_RUBY))
RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
endif

76
src/auto/configure vendored
View File

@@ -718,6 +718,7 @@ EXNAME
VIMNAME
OS_EXTRA_OBJ
OS_EXTRA_SRC
XCODE_SELECT
CPP_MM
STRIP
AWK
@@ -774,6 +775,7 @@ ac_user_opts='
enable_option_checking
enable_darwin
with_mac_arch
with_developer_dir
with_local_dir
with_vim_name
with_ex_name
@@ -1492,6 +1494,7 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-mac-arch=ARCH current, intel, ppc or both
--with-developer-dir=PATH use PATH as location for Xcode developer tools
--with-local-dir=PATH search PATH instead of /usr/local for local libraries.
--without-local-dir do not search /usr/local for local libraries.
--with-vim-name=NAME what to call the Vim executable
@@ -3833,13 +3836,78 @@ $as_echo "defaulting to $MACARCH" >&6; }
fi
{ $as_echo "$as_me:$LINENO: checking --with-developer-dir argument" >&5
$as_echo_n "checking --with-developer-dir argument... " >&6; }
# Check whether --with-developer-dir was given.
if test "${with_developer_dir+set}" = set; then
withval=$with_developer_dir; DEVELOPER_DIR="$withval"; { $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
$as_echo "$DEVELOPER_DIR" >&6; }
else
DEVELOPER_DIR=""; { $as_echo "$as_me:$LINENO: result: not present" >&5
$as_echo "not present" >&6; }
fi
if test "x$DEVELOPER_DIR" = "x"; then
# Extract the first word of "xcode-select", so it can be a program name with args.
set dummy xcode-select; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_XCODE_SELECT+set}" = set; then
$as_echo_n "(cached) " >&6
else
case $XCODE_SELECT in
[\\/]* | ?:[\\/]*)
ac_cv_path_XCODE_SELECT="$XCODE_SELECT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_XCODE_SELECT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
XCODE_SELECT=$ac_cv_path_XCODE_SELECT
if test -n "$XCODE_SELECT"; then
{ $as_echo "$as_me:$LINENO: result: $XCODE_SELECT" >&5
$as_echo "$XCODE_SELECT" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$XCODE_SELECT" != "x"; then
{ $as_echo "$as_me:$LINENO: checking for developer dir using xcode-select" >&5
$as_echo_n "checking for developer dir using xcode-select... " >&6; }
DEVELOPER_DIR=`$XCODE_SELECT -print-path`
{ $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
$as_echo "$DEVELOPER_DIR" >&6; }
else
DEVELOPER_DIR=/Developer
fi
fi
if test "x$MACARCH" = "xboth"; then
{ $as_echo "$as_me:$LINENO: checking for 10.4 universal SDK" >&5
$as_echo_n "checking for 10.4 universal SDK... " >&6; }
save_cppflags="$CPPFLAGS"
save_cflags="$CFLAGS"
save_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -3960,9 +4028,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
if test "x$MACARCH" = "xboth"; then
CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
else
CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
fi
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
@@ -17319,7 +17387,7 @@ $as_echo "no" >&6; }
fi
fi
if test "x$MACARCH" = "xboth"; then
LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
fi
DEPEND_CFLAGS_FILTER=

View File

@@ -1255,7 +1255,10 @@ getvcol(wp, pos, start, cursor, end)
vcol = 0;
ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
posptr = ptr + pos->col;
if (pos->col == MAXCOL)
posptr = NULL; /* continue until the NUL */
else
posptr = ptr + pos->col;
/*
* This function is used very often, do some speed optimizations.
@@ -1313,7 +1316,7 @@ getvcol(wp, pos, start, cursor, end)
incr = CHARSIZE(c);
}
if (ptr >= posptr) /* character at pos->col */
if (posptr != NULL && ptr >= posptr) /* character at pos->col */
break;
vcol += incr;
@@ -1334,7 +1337,7 @@ getvcol(wp, pos, start, cursor, end)
break;
}
if (ptr >= posptr) /* character at pos->col */
if (posptr != NULL && ptr >= posptr) /* character at pos->col */
break;
vcol += incr;

View File

@@ -116,6 +116,22 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
AC_MSG_CHECKING(--with-developer-dir argument)
AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
if test "x$DEVELOPER_DIR" = "x"; then
AC_PATH_PROG(XCODE_SELECT, xcode-select)
if test "x$XCODE_SELECT" != "x"; then
AC_MSG_CHECKING(for developer dir using xcode-select)
DEVELOPER_DIR=`$XCODE_SELECT -print-path`
AC_MSG_RESULT([$DEVELOPER_DIR])
else
DEVELOPER_DIR=/Developer
fi
fi
if test "x$MACARCH" = "xboth"; then
AC_MSG_CHECKING(for 10.4 universal SDK)
dnl There is a terrible inconsistency (but we appear to get away with it):
@@ -127,7 +143,7 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
save_cppflags="$CPPFLAGS"
save_cflags="$CFLAGS"
save_ldflags="$LDFLAGS"
CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
AC_TRY_LINK([ ], [ ],
AC_MSG_RESULT(found, will make universal binary),
@@ -157,9 +173,9 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
dnl TODO: use -arch i386 on Intel machines
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
if test "x$MACARCH" = "xboth"; then
CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
else
CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
fi
dnl If Carbon is found, assume we don't want X11
@@ -3233,7 +3249,7 @@ if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
fi
fi
if test "x$MACARCH" = "xboth"; then
LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
fi
dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to

View File

@@ -4684,6 +4684,7 @@ ins_complete(c)
int startcol = 0; /* column where searched text starts */
colnr_T curs_col; /* cursor column */
int n;
int save_w_wrow;
compl_direction = ins_compl_key2dir(c);
if (!compl_started)
@@ -5067,6 +5068,7 @@ ins_complete(c)
/*
* Find next match (and following matches).
*/
save_w_wrow = curwin->w_wrow;
n = ins_compl_next(TRUE, ins_compl_key2count(c), ins_compl_use_match(c));
/* may undisplay the popup menu */
@@ -5220,6 +5222,12 @@ ins_complete(c)
/* RedrawingDisabled may be set when invoked through complete(). */
n = RedrawingDisabled;
RedrawingDisabled = 0;
/* If the cursor moved we need to remove the pum first. */
setcursor();
if (save_w_wrow != curwin->w_wrow)
ins_compl_del_pum();
ins_compl_show_pum();
setcursor();
RedrawingDisabled = n;

View File

@@ -16627,7 +16627,7 @@ f_synIDattr(argvars, rettv)
p = highlight_has_attr(id, HL_BOLD, modec);
break;
case 'f': /* fg[#] */
case 'f': /* fg[#] or font */
p = highlight_color(id, what, modec);
break;
@@ -19103,6 +19103,14 @@ set_var(name, tv, copy)
hashtab_T *ht;
char_u *p;
ht = find_var_ht(name, &varname);
if (ht == NULL || *varname == NUL)
{
EMSG2(_(e_illvar), name);
return;
}
v = find_var_in_ht(ht, varname, TRUE);
if (tv->v_type == VAR_FUNC)
{
if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
@@ -19112,7 +19120,10 @@ set_var(name, tv, copy)
EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
return;
}
if (function_exists(name))
/* Don't allow hiding a function. When "v" is not NULL we migth be
* assigning another function to the same var, the type is checked
* below. */
if (v == NULL && function_exists(name))
{
EMSG2(_("E705: Variable name conflicts with existing function: %s"),
name);
@@ -19120,14 +19131,6 @@ set_var(name, tv, copy)
}
}
ht = find_var_ht(name, &varname);
if (ht == NULL || *varname == NUL)
{
EMSG2(_(e_illvar), name);
return;
}
v = find_var_in_ht(ht, varname, TRUE);
if (v != NULL)
{
/* existing variable, need to clear the value */

View File

@@ -3948,8 +3948,12 @@ showmatches(xp, wildmenu)
|| xp->xp_context == EXPAND_SHELLCMD
|| xp->xp_context == EXPAND_BUFFERS)
{
/* highlight directories */
j = (mch_isdir(files_found[k]));
char_u *halved_slash;
/* highlight directories */
halved_slash = backslash_halve_save(files_found[k]);
j = mch_isdir(halved_slash);
vim_free(halved_slash);
if (showtail)
p = L_SHOWFILE(k);
else

View File

@@ -1053,15 +1053,14 @@ find_wl_entry(win, lnum)
{
int i;
if (win->w_lines_valid > 0)
for (i = 0; i < win->w_lines_valid; ++i)
if (win->w_lines[i].wl_valid)
{
if (lnum < win->w_lines[i].wl_lnum)
return -1;
if (lnum <= win->w_lines[i].wl_lastlnum)
return i;
}
for (i = 0; i < win->w_lines_valid; ++i)
if (win->w_lines[i].wl_valid)
{
if (lnum < win->w_lines[i].wl_lnum)
return -1;
if (lnum <= win->w_lines[i].wl_lastlnum)
return i;
}
return -1;
}

View File

@@ -2313,19 +2313,6 @@ gui_mch_dialog(int type, /* type of dialog */
gtk_widget_destroy(dialog);
}
/* Terrible hack: When the text area still has focus when we remove the
* dialog, somehow gvim loses window focus. This is with "point to type"
* in the KDE 3.1 window manager. Warp the mouse pointer to outside the
* window and back to avoid that. */
if (!gui.in_focus)
{
int x, y;
gdk_window_get_pointer(gui.drawarea->window, &x, &y, NULL);
gui_mch_setmouse(-100, -100);
gui_mch_setmouse(x, y);
}
return response > 0 ? response : 0;
}

View File

@@ -39,8 +39,8 @@
# define rb_cTrueClass (*dll_rb_cTrueClass)
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
/*
* On ver 1.8, all Ruby functions are exported with "__declspce(dllimport)"
* in ruby.h. But it cause trouble for these variables, because it is
* On ver 1.8, all Ruby functions are exported with "__declspec(dllimport)"
* in ruby.h. But it causes trouble for these variables, because it is
* defined in this file. When defined this RUBY_EXPORT it modified to
* "extern" and be able to avoid this problem.
*/
@@ -53,8 +53,20 @@
# undef _WIN32_WINNT
#endif
#if (defined(RUBY_VERSION) && RUBY_VERSION >= 19) \
|| (defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19)
# define RUBY19_OR_LATER 1
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
/* Ruby 1.9 defines a number of static functions which use rb_num2long and
* rb_int2big */
# define rb_num2long rb_num2long_stub
# define rb_int2big rb_int2big_stub
#endif
#include <ruby.h>
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
# include <ruby/encoding.h>
#endif
@@ -159,7 +171,13 @@ static void ruby_vim_init(void);
#define rb_str_concat dll_rb_str_concat
#define rb_str_new dll_rb_str_new
#define rb_str_new2 dll_rb_str_new2
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
# define rb_string_value_ptr dll_rb_string_value_ptr
# define rb_float_new dll_rb_float_new
# define rb_ary_new dll_rb_ary_new
# define rb_ary_push dll_rb_ary_push
#endif
#ifdef RUBY19_OR_LATER
# define rb_errinfo dll_rb_errinfo
#else
# define ruby_errinfo (*dll_ruby_errinfo)
@@ -171,12 +189,13 @@ static void ruby_vim_init(void);
# define rb_w32_snprintf dll_rb_w32_snprintf
#endif
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
# define ruby_script dll_ruby_script
# define rb_enc_find_index dll_rb_enc_find_index
# define rb_enc_find dll_rb_enc_find
# define rb_enc_str_new dll_rb_enc_str_new
# define rb_sprintf dll_rb_sprintf
# define ruby_init_stack dll_ruby_init_stack
#endif
/*
@@ -226,7 +245,7 @@ static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
static VALUE (*dll_rb_str_new) (const char*, long);
static VALUE (*dll_rb_str_new2) (const char*);
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
static VALUE (*dll_rb_errinfo) (void);
#else
static VALUE *dll_ruby_errinfo;
@@ -235,15 +254,36 @@ static void (*dll_ruby_init) (void);
static void (*dll_ruby_init_loadpath) (void);
static void (*dll_NtInitialize) (int*, char***);
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
static VALUE (*dll_rb_float_new) (double);
static VALUE (*dll_rb_ary_new) (void);
static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
#endif
#ifdef RUBY19_OR_LATER
static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
#endif
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
static void (*dll_ruby_script) (const char*);
static int (*dll_rb_enc_find_index) (const char*);
static rb_encoding* (*dll_rb_enc_find) (const char*);
static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
static VALUE (*dll_rb_sprintf) (const char*, ...);
static void (*ruby_init_stack)(VALUE*);
#endif
#ifdef RUBY19_OR_LATER
static SIGNED_VALUE rb_num2long_stub(VALUE x)
{
return dll_rb_num2long(x);
}
static VALUE rb_int2big_stub(SIGNED_VALUE x)
{
return dll_rb_int2big(x);
}
#endif
static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
@@ -301,23 +341,37 @@ static struct
{"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
{"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
{"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
{"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
#else
{"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
#endif
{"ruby_init", (RUBY_PROC*)&dll_ruby_init},
{"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
{"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
{
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
"NtInitialize",
#else
"ruby_sysinit",
#endif
(RUBY_PROC*)&dll_NtInitialize},
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
#endif
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
{"rb_float_new", (RUBY_PROC*)&dll_rb_float_new},
{"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new},
{"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
#endif
#ifdef RUBY19_OR_LATER
{"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
{"ruby_script", (RUBY_PROC*)&dll_ruby_script},
{"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
{"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
{"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
{"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
{"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
#endif
{"", NULL},
};
@@ -416,7 +470,7 @@ void ex_ruby(exarg_T *eap)
static VALUE
vim_str2rb_enc_str(const char *s)
{
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
int isnum;
long lval;
char_u *sval;
@@ -438,7 +492,7 @@ vim_str2rb_enc_str(const char *s)
static VALUE
eval_enc_string_protect(const char *str, int *state)
{
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
int isnum;
long lval;
char_u *sval;
@@ -540,16 +594,16 @@ static int ensure_ruby_initialized(void)
char *argv[] = {"gvim.exe"};
NtInitialize(&argc, &argv);
#endif
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
RUBY_INIT_STACK;
#endif
ruby_init();
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
ruby_script("vim-ruby");
#endif
ruby_init_loadpath();
ruby_io_init();
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
rb_enc_find_index("encdb");
#endif
ruby_vim_init();
@@ -569,7 +623,8 @@ static int ensure_ruby_initialized(void)
static void error_print(int state)
{
#ifndef DYNAMIC_RUBY
#if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19)
#if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19) \
&& !(defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19)
RUBYEXTERN VALUE ruby_errinfo;
#endif
#endif
@@ -605,7 +660,7 @@ static void error_print(int state)
break;
case TAG_RAISE:
case TAG_FATAL:
#if defined(RUBY_VERSION) && RUBY_VERSION >= 19
#ifdef RUBY19_OR_LATER
eclass = CLASS_OF(rb_errinfo());
einfo = rb_obj_as_string(rb_errinfo());
#else
@@ -667,56 +722,57 @@ static VALUE vim_to_ruby(typval_T *tv)
if (tv->v_type == VAR_STRING)
{
result = rb_str_new2((char *)tv->vval.v_string);
result = rb_str_new2(tv->vval.v_string == NULL
? "" : (char *)(tv->vval.v_string));
}
else if (tv->v_type == VAR_NUMBER)
{
result = INT2NUM(tv->vval.v_number);
result = INT2NUM(tv->vval.v_number);
}
# ifdef FEAT_FLOAT
else if (tv->v_type == VAR_FLOAT)
{
result = rb_float_new(tv->vval.v_float);
result = rb_float_new(tv->vval.v_float);
}
# endif
else if (tv->v_type == VAR_LIST)
{
list_T *list = tv->vval.v_list;
listitem_T *curr;
list_T *list = tv->vval.v_list;
listitem_T *curr;
result = rb_ary_new();
result = rb_ary_new();
if (list != NULL)
{
for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
{
rb_ary_push(result, vim_to_ruby(&curr->li_tv));
}
}
if (list != NULL)
{
for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
{
rb_ary_push(result, vim_to_ruby(&curr->li_tv));
}
}
}
else if (tv->v_type == VAR_DICT)
{
result = rb_hash_new();
result = rb_hash_new();
if (tv->vval.v_dict != NULL)
{
hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
long_u todo = ht->ht_used;
hashitem_T *hi;
dictitem_T *di;
if (tv->vval.v_dict != NULL)
{
hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
long_u todo = ht->ht_used;
hashitem_T *hi;
dictitem_T *di;
for (hi = ht->ht_array; todo > 0; ++hi)
{
if (!HASHITEM_EMPTY(hi))
{
--todo;
for (hi = ht->ht_array; todo > 0; ++hi)
{
if (!HASHITEM_EMPTY(hi))
{
--todo;
di = dict_lookup(hi);
rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
di = dict_lookup(hi);
rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
vim_to_ruby(&di->di_tv));
}
}
}
}
}
}
} /* else return Qnil; */
return result;
@@ -732,7 +788,7 @@ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
tv = eval_expr((char_u *)StringValuePtr(str), NULL);
if (tv == NULL)
{
return Qnil;
return Qnil;
}
result = vim_to_ruby(tv);

View File

@@ -21,21 +21,6 @@
# include <X11/Xatom.h>
# endif
# if defined(HAVE_SYS_SELECT_H) && \
(!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
# include <sys/select.h>
# endif
# ifndef HAVE_SELECT
# ifdef HAVE_SYS_POLL_H
# include <sys/poll.h>
# else
# ifdef HAVE_POLL_H
# include <poll.h>
# endif
# endif
# endif
/*
* This file provides procedures that implement the command server
* functionality of Vim when in contact with an X11 server.

View File

@@ -2113,12 +2113,12 @@ errorret:
if (buf->b_ml.ml_mfp == NULL) /* there are no lines */
return (char_u *)"";
/*
* See if it is the same line as requested last time.
* Otherwise may need to flush last used line.
* Don't use the last used line when 'swapfile' is reset, need to load all
* blocks.
*/
/*
* See if it is the same line as requested last time.
* Otherwise may need to flush last used line.
* Don't use the last used line when 'swapfile' is reset, need to load all
* blocks.
*/
if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
{
ml_flush_line(buf);

View File

@@ -735,6 +735,14 @@ messageFromNetbeans(gpointer clientData UNUSED,
int readlen = 0;
#ifndef FEAT_GUI_GTK
static int level = 0;
#endif
#ifdef HAVE_SELECT
struct timeval tval;
fd_set rfds;
#else
# ifdef HAVE_POLL
struct pollfd fds;
# endif
#endif
if (sd < 0)
@@ -755,9 +763,26 @@ messageFromNetbeans(gpointer clientData UNUSED,
return; /* out of memory! */
}
/* Keep on reading for as long as there is something to read. */
/* Keep on reading for as long as there is something to read.
* Use select() or poll() to avoid blocking on a message that is exactly
* MAXMSGSIZE long. */
for (;;)
{
#ifdef HAVE_SELECT
FD_ZERO(&rfds);
FD_SET(sd, &rfds);
tval.tv_sec = 0;
tval.tv_usec = 0;
if (select(sd + 1, &rfds, NULL, NULL, &tval) <= 0)
break;
#else
# ifdef HAVE_POLL
fds.fd = sd;
fds.events = POLLIN;
if (poll(&fds, 1, 0) <= 0)
break;
# endif
#endif
len = sock_read(sd, buf, MAXMSGSIZE);
if (len <= 0)
break; /* error or nothing more to read */

View File

@@ -5526,11 +5526,11 @@ nv_ident(cap)
break;
default:
tag_cmd = TRUE;
if (curbuf->b_help)
STRCPY(buf, "he! ");
else
{
tag_cmd = TRUE;
if (g_cmd)
STRCPY(buf, "tj ");
else

View File

@@ -28,11 +28,6 @@
# include <sys/wait.h>
# endif
# if defined(HAVE_SYS_SELECT_H) && \
(!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
# include <sys/select.h>
# endif
# ifndef WEXITSTATUS
# ifdef HAVE_UNION_WAIT
# define WEXITSTATUS(stat_val) ((stat_val).w_T.w_Retcode)
@@ -65,16 +60,6 @@
# include <string.h>
#endif
#ifndef HAVE_SELECT
# ifdef HAVE_SYS_POLL_H
# include <sys/poll.h>
# else
# ifdef HAVE_POLL_H
# include <poll.h>
# endif
# endif
#endif
#ifdef HAVE_SYS_STREAM_H
# include <sys/stream.h>
#endif

View File

@@ -12,8 +12,8 @@
msgid ""
msgstr ""
"Project-Id-Version: vim 7.2\n"
"POT-Creation-Date: 2009-11-30 10:40+0100\n"
"PO-Revision-Date: 2009-11-30 16:41+0100\n"
"POT-Creation-Date: 2010-03-01 13:21+0100\n"
"PO-Revision-Date: 2009-03-01 13:21+0100\n"
"Last-Translator: Vlad Sandrini <vlad.gently@gmail.com>\n"
"Language-Team: Italian"
" Antonio Colombo <azc100@gmail.com>"
@@ -1053,8 +1053,8 @@ msgstr "Nessun 'breakpoint' definito"
msgid "%3d %s %s line %ld"
msgstr "%3d %s %s linea %ld"
msgid "E750: First use :profile start <fname>"
msgstr "E750: Usare prima :profile start <fname>"
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: Usare prima \":profile start {fname}\""
#, c-format
msgid "Save changes to \"%s\"?"
@@ -3132,8 +3132,7 @@ msgstr "--servername <nome>\tInvia a/diventa server Vim di nome <nome>"
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr ""
"--startuptime <file>\tScrivi tutti i messaggi iniziali di timing "
"in <file>"
"--startuptime <file>\tScrivi tutti i messaggi iniziali di timing in <file>"
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tUsa <viminfo> invece di .viminfo"

View File

@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vim 7.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-07 15:11+0300\n"
"POT-Creation-Date: 2010-03-06 23:51+0200\n"
"PO-Revision-Date: 2008-03-07 13:57+0300\n"
"Last-Translator: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <sakhnik@gmail.com>\n"
"Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>\n"
@@ -1072,8 +1072,8 @@ msgstr "
msgid "%3d %s %s line %ld"
msgstr "%3d %s %s <20><><EFBFBD><EFBFBD><EFBFBD> %ld"
msgid "E750: First use :profile start <fname>"
msgstr "E750: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :profile start <<EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \":profile start {<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}\""
#, c-format
msgid "Save changes to \"%s\"?"
@@ -1728,7 +1728,8 @@ msgstr "E513:
msgid ""
"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr "E513: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> %ld (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'fenc')"
msgstr ""
"E513: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> %ld (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'fenc')"
msgid "E514: write error (file system full?)"
msgstr "E514: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>?)"
@@ -2362,7 +2363,7 @@ msgid "E621: \"%s\" resource file has wrong version"
msgstr "E621: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \"%s\""
msgid "E673: Incompatible multi-byte encoding and character set."
msgstr "E673: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
msgstr "E673: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
msgstr ""
@@ -3185,7 +3186,10 @@ msgstr ""
"--serverlist\t\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "--servername <name>\tSend to/become the Vim server <name>"
msgstr "--servername <<3C><><EFBFBD><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr "--servername <<3C><><EFBFBD><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr "--startuptime <<3C><><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <<3C><><EFBFBD><EFBFBD><EFBFBD>>"
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <viminfo> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .viminfo"
@@ -3194,7 +3198,7 @@ msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h <20><> --help\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>"
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
msgstr "--version\t\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>"
msgid ""
"\n"
@@ -3246,7 +3250,7 @@ msgid "-italicfont <font>\tUse <font> for italic text"
msgstr "-italicfont <<3C><><EFBFBD><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <<3C><><EFBFBD><EFBFBD><EFBFBD>> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
msgstr "-geometry <<3C><><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>: -geom)"
msgstr "-geometry <<3C><><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>: -geom)"
msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
msgstr "-borderwidth <<3C><><EFBFBD><EFBFBD>>\t<><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <<3C><><EFBFBD><EFBFBD>> (<28><><EFBFBD><EFBFBD><EFBFBD>: -bw)"
@@ -4005,10 +4009,10 @@ msgid "W10: Warning: Changing a readonly file"
msgstr "W10: <20><><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "Type number and <Enter> or click with mouse (empty cancels): "
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <Enter> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>): "
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <Enter> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>): "
msgid "Type number and <Enter> (empty cancels): "
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <Enter> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>): "
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <Enter> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>): "
msgid "1 more line"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
@@ -4334,7 +4338,7 @@ msgid "E531: Use \":gui\" to start the GUI"
msgstr "E531: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \":gui\" <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GUI"
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: <20><><EFBFBD><EFBFBD><EFBFBD> 'backupext' <20><EFBFBD> 'patchmode' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr "E589: <20><><EFBFBD><EFBFBD><EFBFBD> 'backupext' <20> 'patchmode' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "E617: Cannot be changed in the GTK+ 2 GUI"
msgstr "E617: <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> GUI GTK+ 2"
@@ -5626,7 +5630,7 @@ msgid " or more"
msgstr " <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid " Using tag with different case!"
msgstr " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#, c-format
msgid "E429: File \"%s\" does not exist"
@@ -6053,7 +6057,7 @@ msgid "by Bram Moolenaar et al."
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>: Bram Moolenaar <20><> <20><>."
msgid "Vim is open source and freely distributable"
msgstr "Vim -- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr "Vim -- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "Help poor children in Uganda!"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
@@ -6127,7 +6131,7 @@ msgstr "E441:
# msgstr "E441: "
msgid "E442: Can't split topleft and botright at the same time"
msgstr "E442: <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> topleft <20><EFBFBD> botright"
msgstr "E442: <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> topleft <20> botright"
# msgstr "E442: "
msgid "E443: Cannot rotate when another window is split"

View File

@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vim 7.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-07 15:11+0300\n"
"POT-Creation-Date: 2010-03-06 23:51+0200\n"
"PO-Revision-Date: 2008-03-07 13:57+0300\n"
"Last-Translator: Анатолій Сахнік <sakhnik@gmail.com>\n"
"Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>\n"
@@ -1072,8 +1072,8 @@ msgstr "Не визначено жодної точки зупинки"
msgid "%3d %s %s line %ld"
msgstr "%3d %s %s рядок %ld"
msgid "E750: First use :profile start <fname>"
msgstr "E750: Спочатку виконайте :profile start <файл>"
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: Спочатку зробіть \":profile start {файл}\""
#, c-format
msgid "Save changes to \"%s\"?"
@@ -1728,7 +1728,8 @@ msgstr "E513: Помилка запису, конвертація не вдал
msgid ""
"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr "E513: Помилка запису, конвертація не вдалася у рядку %ld (скиньте 'fenc')"
msgstr ""
"E513: Помилка запису, конвертація не вдалася у рядку %ld (скиньте 'fenc')"
msgid "E514: write error (file system full?)"
msgstr "E514: Помилка запису (скінчилось вільне місце?)"
@@ -2362,7 +2363,7 @@ msgid "E621: \"%s\" resource file has wrong version"
msgstr "E621: Неправильна версія файлу ресурсів \"%s\""
msgid "E673: Incompatible multi-byte encoding and character set."
msgstr "E673: Несумісні багатобайтове кодування та набір символів."
msgstr "E673: Несумісні багатобайтове кодування й набір символів."
msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
msgstr ""
@@ -3185,7 +3186,10 @@ msgstr ""
"--serverlist\t\tПоказати список наявних серверів Vim і завершити роботу"
msgid "--servername <name>\tSend to/become the Vim server <name>"
msgstr "--servername <назва>\tСпілкуватися з/стати Vim сервером з такою назвою"
msgstr "--servername <назва>\tНадіслати до/стати Vim сервером з <назвою>"
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr "--startuptime <файл>\tЗаписати запускні повідомлення з часовими відмітками до <файлу>"
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tВикористати <viminfo> замість .viminfo"
@@ -3194,7 +3198,7 @@ msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h чи --help\tНадрукувати це повідомлення і вийти"
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tНадрукувати інформацію про версію програми та вийти"
msgstr "--version\t\tНадрукувати інформацію про версію програми і вийти"
msgid ""
"\n"
@@ -3246,7 +3250,7 @@ msgid "-italicfont <font>\tUse <font> for italic text"
msgstr "-italicfont <шрифт>\tВикористати <шрифт> для похилого тексту"
msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
msgstr "-geometry <геом>\tЗадати розміри та положення (також: -geom)"
msgstr "-geometry <геом>\tЗадати розміри й положення (також: -geom)"
msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
msgstr "-borderwidth <товщ>\tВстановити товщину меж <товщ> (також: -bw)"
@@ -4005,10 +4009,10 @@ msgid "W10: Warning: Changing a readonly file"
msgstr "W10: Увага: Змінюється файл призначений лише для читання"
msgid "Type number and <Enter> or click with mouse (empty cancels): "
msgstr "Наберіть число та <Enter> чи клацніть мишкою (порожнє скасовує): "
msgstr "Наберіть число й <Enter> чи клацніть мишкою (порожнє скасовує): "
msgid "Type number and <Enter> (empty cancels): "
msgstr "Наберіть число та <Enter> (порожнє скасовує): "
msgstr "Наберіть число й <Enter> (порожнє скасовує): "
msgid "1 more line"
msgstr "додано один рядок"
@@ -4334,7 +4338,7 @@ msgid "E531: Use \":gui\" to start the GUI"
msgstr "E531: Застосовуйте \":gui\" для запуску GUI"
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: Опції 'backupext' та 'patchmode' однакові"
msgstr "E589: Опції 'backupext' і 'patchmode' однакові"
msgid "E617: Cannot be changed in the GTK+ 2 GUI"
msgstr "E617: Не можна змінити в GUI GTK+ 2"
@@ -5626,7 +5630,7 @@ msgid " or more"
msgstr " або більше"
msgid " Using tag with different case!"
msgstr " Використовую теґ, не розрізняючи великі та малі літери"
msgstr " Використовую теґ, не розрізняючи великі й малі літери"
#, c-format
msgid "E429: File \"%s\" does not exist"
@@ -6053,7 +6057,7 @@ msgid "by Bram Moolenaar et al."
msgstr "автор: Bram Moolenaar та ін."
msgid "Vim is open source and freely distributable"
msgstr "Vim -- це відкрита та вільно розповсюджувана програма"
msgstr "Vim -- це відкрита й вільно розповсюджувана програма"
msgid "Help poor children in Uganda!"
msgstr "Допоможіть сиротам з Уганди!"
@@ -6127,7 +6131,7 @@ msgstr "E441: Немає вікна перегляду"
# msgstr "E441: "
msgid "E442: Can't split topleft and botright at the same time"
msgstr "E442: Не зміг одночасно розбити topleft та botright"
msgstr "E442: Не зміг одночасно розбити topleft і botright"
# msgstr "E442: "
msgid "E443: Cannot rotate when another window is split"

View File

@@ -640,7 +640,7 @@ pum_set_selected(n, repeat)
curbuf->b_changed = 0;
curbuf->b_p_ma = FALSE;
curwin->w_cursor.lnum = 0;
curwin->w_cursor.lnum = 1;
curwin->w_cursor.col = 0;
if (curwin != curwin_save && win_valid(curwin_save))

View File

@@ -8326,7 +8326,7 @@ highlight_has_attr(id, flag, modec)
char_u *
highlight_color(id, what, modec)
int id;
char_u *what; /* "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
char_u *what; /* "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */
{
static char_u name[20];
@@ -8334,20 +8334,30 @@ highlight_color(id, what, modec)
int fg = FALSE;
# ifdef FEAT_GUI
int sp = FALSE;
int font = FALSE;
# endif
if (id <= 0 || id > highlight_ga.ga_len)
return NULL;
if (TOLOWER_ASC(what[0]) == 'f')
if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'g')
fg = TRUE;
# ifdef FEAT_GUI
else if (TOLOWER_ASC(what[0]) == 's')
else if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'o'
&& TOLOWER_ASC(what[2]) == 'n' && TOLOWER_ASC(what[3]) == 't')
font = TRUE;
else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p')
sp = TRUE;
else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
return NULL;
if (modec == 'g')
{
/* return font name */
if (font)
return HL_TABLE()[id - 1].sg_font_name;
/* return #RRGGBB form (only possible when GUI is running) */
if (gui.in_use && what[1] && what[2] == '#')
if (gui.in_use && what[2] == '#')
{
guicolor_T color;
long_u rgb;
@@ -8374,6 +8384,8 @@ highlight_color(id, what, modec)
return (HL_TABLE()[id - 1].sg_gui_sp_name);
return (HL_TABLE()[id - 1].sg_gui_bg_name);
}
if (font || sp)
return NULL;
# endif
if (modec == 'c')
{

View File

@@ -681,6 +681,42 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
403,
/**/
402,
/**/
401,
/**/
400,
/**/
399,
/**/
398,
/**/
397,
/**/
396,
/**/
395,
/**/
394,
/**/
393,
/**/
392,
/**/
391,
/**/
390,
/**/
389,
/**/
388,
/**/
387,
/**/
386,
/**/
385,
/**/

View File

@@ -477,6 +477,23 @@ typedef unsigned long u8char_T; /* long should be 32 bits or more */
# include <stdarg.h>
#endif
# if defined(HAVE_SYS_SELECT_H) && \
(!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
# include <sys/select.h>
# endif
# ifndef HAVE_SELECT
# ifdef HAVE_SYS_POLL_H
# include <sys/poll.h>
# define HAVE_POLL
# else
# ifdef HAVE_POLL_H
# include <poll.h>
# define HAVE_POLL
# endif
# endif
# endif
/* ================ end of the header file puzzle =============== */
/*

View File

@@ -991,28 +991,28 @@ win_split_ins(size, flags, newwin, dir)
wp->w_p_scr = curwin->w_p_scr;
if (need_status)
{
--oldwin->w_height;
win_new_height(oldwin, oldwin->w_height - 1);
oldwin->w_status_height = need_status;
}
if (flags & (WSP_TOP | WSP_BOT))
{
/* set height and row of new window to full height */
wp->w_winrow = tabline_height();
wp->w_height = curfrp->fr_height - (p_ls > 0);
win_new_height(wp, curfrp->fr_height - (p_ls > 0));
wp->w_status_height = (p_ls > 0);
}
else
{
/* height and row of new window is same as current window */
wp->w_winrow = oldwin->w_winrow;
wp->w_height = oldwin->w_height;
win_new_height(wp, oldwin->w_height);
wp->w_status_height = oldwin->w_status_height;
}
frp->fr_height = curfrp->fr_height;
/* "new_size" of the current window goes to the new window, use
* one column for the vertical separator */
wp->w_width = new_size;
win_new_width(wp, new_size);
if (before)
wp->w_vsep_width = 1;
else
@@ -1049,13 +1049,13 @@ win_split_ins(size, flags, newwin, dir)
if (flags & (WSP_TOP | WSP_BOT))
{
wp->w_wincol = 0;
wp->w_width = Columns;
win_new_width(wp, Columns);
wp->w_vsep_width = 0;
}
else
{
wp->w_wincol = oldwin->w_wincol;
wp->w_width = oldwin->w_width;
win_new_width(wp, oldwin->w_width);
wp->w_vsep_width = oldwin->w_vsep_width;
}
frp->fr_width = curfrp->fr_width;
@@ -1111,7 +1111,7 @@ win_split_ins(size, flags, newwin, dir)
}
/*
* make the new window the current window and redraw
* equalize the window sizes.
*/
if (do_equal || dir != 0)
win_equal(wp, TRUE,
@@ -1143,6 +1143,10 @@ win_split_ins(size, flags, newwin, dir)
if (size != 0)
p_wh = size;
}
/*
* make the new window the current window
*/
win_enter(wp, FALSE);
#ifdef FEAT_VERTSPLIT
if (flags & WSP_VERT)