updated for version 7.0012

This commit is contained in:
Bram Moolenaar
2004-07-26 12:53:41 +00:00
parent 89cb5e0f64
commit 5eb86f9199
42 changed files with 1362 additions and 648 deletions

View File

@ -148,8 +148,8 @@ SRC_UNIX = \
src/gui_gtk_f.h \
src/gui_gtk_x11.c \
src/gui_kde.cc \
src/gui_kde_widget.cc \
src/gui_kde_widget.h \
src/gui_kde_wid.cc \
src/gui_kde_wid.h \
src/gui_kde_x11.cc \
src/kvim_iface.h \
src/gui_motif.c \
@ -365,7 +365,7 @@ SRC_MAC = \
src/os_mac.sit.hqx \
src/os_mac_conv.c \
src/os_macosx.c \
src/os_mac.pbproj/project.pbxproj
src/os_mac.pbproj/project.pbxproj \
src/proto/gui_mac.pro \
src/proto/os_mac.pro \

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.0aa. Last change: 2004 Jul 11
*diff.txt* For Vim version 7.0aa. Last change: 2004 Jul 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -344,6 +344,10 @@ get an error message. Possible causes:
If it's not clear what the problem is set the 'verbose' option to see more
messages.
The self-installing Vim includes a diff program. If you don't have it you
might want to download a diff.exe. For example from
http://jlb.twu.net/code/unixkit.php.
USING PATCHES *diff-patchexpr*

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2004 Jul 19
*eval.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -846,8 +846,10 @@ getbufvar( {expr}, {varname}) variable {varname} in buffer {expr}
getcmdline() String return the current command-line
getcmdpos() Number return cursor position in command-line
getcwd() String the current working directory
getfsize( {fname}) Number size in bytes of file
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
getftime( {fname}) Number last modification time of file
getftype( {fname}) String description of type of file {fname}
getline( {lnum}) String line {lnum} from current buffer
getreg( [{regname}]) String contents of register
getregtype( [{regname}]) String type of register
@ -1580,6 +1582,20 @@ getfsize({fname}) *getfsize()*
If {fname} is a directory, 0 is returned.
If the file {fname} can't be found, -1 is returned.
getfperm({fname}) *getfperm()*
The result is a String, which is the read, write, and execute
permissions of the given file {fname}.
If {fname} does not exist or its directory cannot be read, an
empty string is returned.
The result is of the form "rwxrwxrwx", where each group of
"rwx" flags represent, in turn, the permissions of the owner
of the file, the group the file belongs to, and other users.
If a user does not have a given permission the flag for this
is replaced with the string "-". Example: >
:echo getfperm("/etc/passwd")
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
getftime({fname}) *getftime()*
The result is a Number, which is the last modification time of
the given file {fname}. The value is measured as seconds
@ -1587,6 +1603,26 @@ getftime({fname}) *getftime()*
|localtime()| and |strftime()|.
If the file {fname} can't be found -1 is returned.
getftype({fname}) *getftype()*
The result is a String, which is a description of the kind of
file of the given file {fname}.
If {fname} does not exist an empty string is returned.
Here is a table over different kinds of files and their
results:
Normal file "file"
Directory "dir"
Symbolic link "link"
Block device "bdev"
Character device "cdev"
Socket "socket"
FIFO "fifo"
All other "other"
Example: >
getftype("/home")
< Note that a type such as "link" will only be returned on
systems that support it. On some systems only "dir" and
"file" are returned.
*getline()*
getline({lnum}) The result is a String, which is line {lnum} from the current
buffer. Example: >
@ -2246,14 +2282,16 @@ search({pattern} [, {flags}]) *search()*
cursor position.
{flags} is a String, which can contain these character flags:
'b' search backward instead of forward
'n' do Not move the cursor
'w' wrap around the end of the file
'W' don't wrap around the end of the file
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
When a match has been found its line number is returned, and
the cursor will be positioned at the match. If there is no
match a 0 is returned and the cursor doesn't move. No error
message is given.
When a match has been found its line number is returned.
The cursor will be positioned at the match, unless the 'n'
flag is used).
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
Example (goes over all files in the argument list): >
:let n = 1
@ -2747,9 +2785,15 @@ winline() The result is a Number, which is the screen line of the cursor
the window. The first line is one.
*winnr()*
winnr() The result is a Number, which is the number of the current
window. The top window has number 1. The number can be used
with |CTRL-W_w| and ":wincmd w" |:wincmd|.
winnr([{arg}]) The result is a Number, which is the number of the current
window. The top window has number 1.
When the optional argument is "$", the number of the
last window is returnd (the window count).
When the optional argument is "#", the number of the last
accessed window is returned (where |CTRL-W_p| goes to).
If there is no previous window 0 is returned.
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
*winrestcmd()*
winrestcmd() Returns a sequence of |:resize| commands that should restore

View File

@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.0aa. Last change: 2004 Jan 17
*if_cscop.txt* For Vim version 7.0aa. Last change: 2004 Jul 23
VIM REFERENCE MANUAL by Andy Kahn
@ -335,6 +335,9 @@ cscope version for Win32 see:
http://iamphet.nm.ru/cscope/index.html
The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim.
There are a couple of hard-coded limitations:
1. The maximum number of cscope connections allowed is 8. Do you

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.0aa. Last change: 2004 Feb 28
*if_pyth.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
VIM REFERENCE MANUAL by Paul Moore
@ -91,23 +91,23 @@ module before using it: >
:python import vim
Overview >
print "Hello" # displays a message
vim.command(cmd) # execute an ex command
w = vim.windows[n] # gets window "n"
cw = vim.current.window # gets the current window
b = vim.buffers[n] # gets buffer "n"
cb = vim.current.buffer # gets the current buffer
w.height = lines # sets the window height
w.cursor = (row, col) # sets the window cursor position
pos = w.cursor # gets a tuple (row, col)
name = b.name # gets the buffer file name
line = b[n] # gets a line from the buffer
lines = b[n:m] # gets a list of lines
num = len(b) # gets the number of lines
b[n] = str # sets a line in the buffer
b[n:m] = [str1, str2, str3] # sets a number of lines at once
del b[n] # deletes a line
del b[n:m] # deletes a number of lines
:py print "Hello" # displays a message
:py vim.command(cmd) # execute an ex command
:py w = vim.windows[n] # gets window "n"
:py cw = vim.current.window # gets the current window
:py b = vim.buffers[n] # gets buffer "n"
:py cb = vim.current.buffer # gets the current buffer
:py w.height = lines # sets the window height
:py w.cursor = (row, col) # sets the window cursor position
:py pos = w.cursor # gets a tuple (row, col)
:py name = b.name # gets the buffer file name
:py line = b[n] # gets a line from the buffer
:py lines = b[n:m] # gets a list of lines
:py num = len(b) # gets the number of lines
:py b[n] = str # sets a line in the buffer
:py b[n:m] = [str1, str2, str3] # sets a number of lines at once
:py del b[n] # deletes a line
:py del b[n:m] # deletes a number of lines
Methods of the "vim" module
@ -115,8 +115,8 @@ Methods of the "vim" module
vim.command(str) *python-command*
Executes the vim (ex-mode) command str. Returns None.
Examples: >
vim.command("set tw=72")
vim.command("%s/aaa/bbb/g")
:py vim.command("set tw=72")
:py vim.command("%s/aaa/bbb/g")
< The following definition executes Normal mode commands: >
def normal(str):
vim.command("normal "+str)
@ -126,15 +126,15 @@ vim.command(str) *python-command*
< *E659*
The ":python" command cannot be used recursively with Python 2.2 and
older. This only works with Python 2.3 and later: >
:python vim.command("python print 'Hello again Python'")
:py vim.command("python print 'Hello again Python'")
vim.eval(str) *python-eval*
Evaluates the expression str using the vim internal expression
evaluator (see |expression|). Returns the expression result as a
string.
Examples: >
text_width = vim.eval("&tw")
str = vim.eval("12+12") # NB result is a string! Use
:py text_width = vim.eval("&tw")
:py str = vim.eval("12+12") # NB result is a string! Use
# string.atoi() to convert to
# a number.
@ -158,18 +158,18 @@ Constants of the "vim" module
vim.buffers *python-buffers*
A sequence object providing access to the list of vim buffers. The
object supports the following operations: >
b = vim.buffers[i] # Indexing (read-only)
b in vim.buffers # Membership test
n = len(vim.buffers) # Number of elements
for b in vim.buffers: # Sequential access
:py b = vim.buffers[i] # Indexing (read-only)
:py b in vim.buffers # Membership test
:py n = len(vim.buffers) # Number of elements
:py for b in vim.buffers: # Sequential access
<
vim.windows *python-windows*
A sequence object providing access to the list of vim windows. The
object supports the following operations: >
w = vim.windows[i] # Indexing (read-only)
w in vim.windows # Membership test
n = len(vim.windows) # Number of elements
for w in vim.windows: # Sequential access
:py w = vim.windows[i] # Indexing (read-only)
:py w in vim.windows # Membership test
:py n = len(vim.windows) # Number of elements
:py for w in vim.windows: # Sequential access
<
vim.current *python-current*
An object providing access (via specific attributes) to various
@ -236,17 +236,21 @@ The buffer object methods are:
represents the part of the given buffer between line
numbers s and e |inclusive|.
Note that when adding a line it must not contain a line break character '\n'.
A trailing '\n' is allowed and ignored, so that you can do: >
:py b.append(f.readlines())
Examples (assume b is the current buffer) >
print b.name # write the buffer file name
b[0] = "hello!!!" # replace the top line
b[:] = None # delete the whole buffer
del b[:] # delete the whole buffer (same as above)
b[0:0] = [ "a line" ] # add a line at the top
del b[2] # delete a line (the third)
b.append("bottom") # add a line at the bottom
n = len(b) # number of lines
(row,col) = b.mark('a') # named mark
r = b.range(1,5) # a sub-range of the buffer
:py print b.name # write the buffer file name
:py b[0] = "hello!!!" # replace the top line
:py b[:] = None # delete the whole buffer
:py del b[:] # delete the whole buffer
:py b[0:0] = [ "a line" ] # add a line at the top
:py del b[2] # delete a line (the third)
:py b.append("bottom") # add a line at the bottom
:py n = len(b) # number of lines
:py (row,col) = b.mark('a') # named mark
:py r = b.range(1,5) # a sub-range of the buffer
==============================================================================
4. Range objects *python-range*

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.0aa. Last change: 2004 Jan 17
*message.txt* For Vim version 7.0aa. Last change: 2004 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -643,6 +643,7 @@ and |+X11| features.
A command line started with a backslash or the range of a command contained a
backslash in a wrong place. This is often caused by command-line continuation
being disabled. Remove the 'C' flag from the 'cpoptions' option to enable it.
Or use ":set nocp".
*E471* >
Argument required

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.0aa. Last change: 2004 Jul 02
*motion.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -83,6 +83,7 @@ are however, two general exceptions:
end of the motion is moved to the end of the previous line and the motion
becomes inclusive. Example: "}" moves to the first line after a paragraph,
but "d}" will not include that line.
*exclusive-linewise*
2. If the motion is exclusive, the end of the motion is in column 1 and the
start of the motion was at or before the first non-blank in the line, the
motion becomes linewise. Example: If a paragraph begins with some blanks
@ -424,20 +425,24 @@ between Vi and Vim.
*]]*
]] [count] sections forward or to the next '{' in the
first column. When used after an operator, then the
'}' in the first column. |linewise|
first column. When used after an operator, then also
stops below a '}' in the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*][*
][ [count] sections forward or to the next '}' in the
first column. |linewise|
first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[[*
[[ [count] sections backward or to the previous '{' in
the first column. |linewise|
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[]*
[] [count] sections backward or to the previous '}' in
the first column. |linewise|
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
These commands move over three kinds of text objects.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0aa. Last change: 2004 Jul 15
*options.txt* For Vim version 7.0aa. Last change: 2004 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -3924,7 +3924,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: To avoid portability problems with using patterns, always keep
this option at the default "on". Only switch it off when working with
old Vi scripts. In any other situation write patterns that work when
'magic' is on.
'magic' is on. Include "\M" when you want to |/\M|.
*'makeef'* *'mef'*
'makeef' 'mef' string (default: "")

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.0aa. Last change: 2004 May 09
*pattern.txt* For Vim version 7.0aa. Last change: 2004 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -382,7 +382,7 @@ More explanation and examples below, follow the links.
|/\%c| \%23c \%23c in column 23 |/zero-width|
|/\%v| \%23v \%23v in virtual column 23 |/zero-width|
Character classes {not in Vi}:
Character classes {not in Vi}: */character-classes*
|/\i| \i \i identifier character (see 'isident' option)
|/\I| \I \I like "\i", but excluding digits
|/\k| \k \k keyword character (see 'iskeyword' option)

View File

@ -1337,6 +1337,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
/atom pattern.txt /*\/atom*
/bar pattern.txt /*\/bar*
/branch pattern.txt /*\/branch*
/character-classes pattern.txt /*\/character-classes*
/collection pattern.txt /*\/collection*
/concat pattern.txt /*\/concat*
/dyn various.txt /*\/dyn*
@ -3570,6 +3571,7 @@ EncodingChanged autocmd.txt /*EncodingChanged*
Eterm syntax.txt /*Eterm*
Ex intro.txt /*Ex*
Ex-mode intro.txt /*Ex-mode*
Exuberant_ctags tagsrch.txt /*Exuberant_ctags*
F motion.txt /*F*
FAQ intro.txt /*FAQ*
Farsi farsi.txt /*Farsi*
@ -4518,6 +4520,7 @@ except-syntax-error eval.txt /*except-syntax-error*
exception-handling eval.txt /*exception-handling*
exception-variable eval.txt /*exception-variable*
exclusive motion.txt /*exclusive*
exclusive-linewise motion.txt /*exclusive-linewise*
executable() eval.txt /*executable()*
execute-menus gui.txt /*execute-menus*
exim starting.txt /*exim*
@ -4625,6 +4628,7 @@ filewritable() eval.txt /*filewritable()*
filter change.txt /*filter*
find-manpage usr_12.txt /*find-manpage*
find-replace usr_10.txt /*find-replace*
finddir() eval.txt /*finddir()*
findfile() eval.txt /*findfile()*
fixed-5.1 version5.txt /*fixed-5.1*
fixed-5.2 version5.txt /*fixed-5.2*
@ -4773,8 +4777,10 @@ getcharmod() eval.txt /*getcharmod()*
getcmdline() eval.txt /*getcmdline()*
getcmdpos() eval.txt /*getcmdpos()*
getcwd() eval.txt /*getcwd()*
getfperm() eval.txt /*getfperm()*
getfsize() eval.txt /*getfsize()*
getftime() eval.txt /*getftime()*
getftype() eval.txt /*getftype()*
getline() eval.txt /*getline()*
getreg() eval.txt /*getreg()*
getregtype() eval.txt /*getregtype()*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 7.0aa. Last change: 2004 Apr 29
*tagsrch.txt* For Vim version 7.0aa. Last change: 2004 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -468,6 +468,7 @@ a tag for each "#defined" macro, typedefs, enums, etc.
Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only
does the basic work.
*Exuberant_ctags*
exuberant ctags This a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net.

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2004 Jul 19
*todo.txt* For Vim version 7.0aa. Last change: 2004 Jul 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,27 +30,18 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Add fix for zh_cn to Vim 6.3? (Liang)
Aborting at the ATTENTION prompt causes trouble:
buffer remains active, nwindows isn't closed (fixed in buffer.c)
alternate buffer gets "read error" flag.
":sbuf" and ":ball" leave an empty window behind.
Change in handle_swap_exists() also in 6.3?
For version 7.0:
- Include many PATCHES:
8 Add functions:
realname() Get user name (first, last, full)
user_fullname() patch by Nikolai Weibull, Nov
3 2002)
getfperm() file permissions, in form "rwxrwxrwx"
(patch from Nikolai Weibull 2003 Jan 13)
getftype() "file", "dir", "link", "other"?
(patch from Nikolai Weibull 2003 Jan 13)
setbufline() set line in any buffer (patch from Yegappan
Lakshmanan, 2003 Jan 21)
winnr("$") Get number of windows. (patch from Nikolai
Weibull 2003 Jan 13) (another patch from
Yegappan Lakshmanan, 2004 Jul 11)
search() Add optional offset argument.
Add 'n' flag. (patch from Nikolai Weibull
2003 Jan 13)
filter() Patch from Yegappan Lakshmanan, 2004 Jul 11
8 Make it possible to delete marks. Charles Campbell has a patch that
does this with the markclear() function (2004 Jan 9).
@ -63,6 +54,7 @@ For version 7.0:
When "filename" has no wildcards and there is no matching buffer, add
the buffer (unlisted).
Patch for \xnn (Ciaran McCreesh) 2004 Jul 10
http://dev.gentoo.org/~ciaranm/patches/vim/vim-7.00a-regexp-numbered-characters-r5.patch
7 Add 'taglistfiles' option, show file name and type when listing matching
tags name with CTRL-D completion. Patch from Yegappan Lakshmanan.
2004 Jul 11
@ -72,6 +64,15 @@ For version 7.0:
8 Make 'statusline' local, so that each window can have a different
value. But should it also be local to a buffer? (Yegappan Lakshmanan
has a patch, 2004 Jul 11)
8 Add buffer-local autocommands? Reduces overhead for autocommands that
trigger often (inserting a character, switching mode).
:au Event <buffer> do-something
E.g.:
:au BufEnter <buffer> menu enable ...
:au BufLeave <buffer> menu disable ...
Patch from Yakov Lerner, including test (2004 Jan 7).
VimResized - When the Vim window has been resized (SIGWINCH)
patch from Yakov Lerner, 2003 July 24.
--- awaiting updated patch ---
7 Add patch from Wall for this one ( ~/Mail/oldmail/wall/in.00019 ):
'flipcase' variable: upper/lowercase pairs.
@ -84,18 +85,7 @@ For version 7.0:
8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
Aric Blumer has a patch for this.
He will update the patch for 6.3.
8 Add buffer-local autocommands? Reduces overhead for autocommands that
trigger often (inserting a character, switching mode).
:au Event <buffer> do-something
E.g.:
:au BufEnter <buffer> menu enable ...
:au BufLeave <buffer> menu disable ...
Patch from Yakov Lerner, including test (2004 Jan 7).
He'll send updated patch.
Autocommands:
VimResized - When the Vim window has been resized (SIGWINCH)
patch from Yakov Lerner, 2003 July 24.
He'll write documentation and send updated patch.
7 Completion of network shares, patch by Yasuhiro Matsumoto.
Update 2004 Jun 17.
How does this work? Missing comments.
@ -1458,6 +1448,14 @@ Built-in script language:
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
signs and/or 'number'.
8 Add functions:
search() Add optional offset argument.
realname() Get user name (first, last, full)
user_fullname() patch by Nikolai Weibull, Nov
3 2002
Only add this when also implemented for
non-Unix systems, otherwise a shell cmd could
be used.
get_user_name() gets login name.
menuprop({name}, {idx}, {what})
Get menu property of menu {name} item {idx}.
menuprop("", 1, "name") returns "File".
@ -3196,6 +3194,7 @@ Various improvements:
column number. Can use the code of ":helpgrep".
Also support using "**" in filename, so that a directory tree can be
searched.
Also see the "minigrep.vim" script on www.vim.org.
- Change ":fixdel" into option 'fixdel', t_del will be adjusted each time
t_bs is set? (Webb)
- "gc": goto character, move absolute character positions forward, also

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2004 Jul 19
*version7.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -127,6 +127,9 @@ byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher)
finddir(name) |finddir()| Find a directory in 'path'.
findfile(name) |findfile()| Find a file in 'path'. (Johannes
Zellner)
getfperm(fname) |getfperm()| Get file permission string. (Nikolai
Weibull)
getftype(fname) |getftype()| Get type of file. (Nikolai Weibull)
repeat(expr, count) |repeat()| Repeat "expr" "count" times.
(Christophe Poucet)
tr(expr, from, to) |tr()| Translate characters. (Ron Aaron)
@ -187,6 +190,11 @@ For lisp indenting and matching parenthesis: (Sergey Khorev)
Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
winnr() takes an optional "$" and "#" arguments. (Nikolai Weibull, Yegappan
Lakshmanan)
Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*
@ -272,4 +280,13 @@ items.
The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
"cn" or "tw" as intended.
When 'bin' is set and 'eol' is not set then line2byte() added the line break
after the last line while it's not there.
Using foldlevel() in a WinEnter autocommand may not work. Noticed when
resizing the GUI shell upon startup.
Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
string with a trailing newline. The newline is ignored.
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,10 +1,10 @@
" Vim settings file
" Language: LambdaProlog (Teyjus)
" Maintainer: Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/ftplugin/lprolog.vim
" Last Change: 2003 May 11
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
" 2001 Sep 02 - initial release (MM)
" URL: http://www.oefai.at/~markus/vim/ftplugin/lprolog.vim
" Last Change: 2001 Oct 02 - fixed uncommenting bug (MM)
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
" 2001 Sep 02 - initial release (MM)
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@ -1,12 +1,14 @@
" Vim settings file
" Language: OCaml
" Maintainers: Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/ftplugin/ocaml.vim
" Last Change: 2003 May 11
" 2001 Nov 01 - added local bindings for inserting
" type holes using 'assert false' (MM)
" 2001 Oct 02 - insert spaces in line comments (MM)
" Maintainers: Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" Stefano Zacchiroli <zack@bononia.it>
" URL: http://www.oefai.at/~markus/vim/ftplugin/ocaml.vim
" Last Change: 2004 Apr 12 - better .ml/.mli-switching without Python (SZ)
" 2003 Nov 21 - match_words-patterns and .ml/.mli-switching (MM)
" 2003 Oct 16 - re-entered variable 'did_ocaml_dtypes' (MM)
" 2003 Oct 15 - added Stefano Zacchirolis (SZ) Python-code for
" displaying type annotations (MM)
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@ -47,3 +49,253 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
iabbrev <buffer> ASS (assert false)
endif
endif
" Let % jump between structure elements (due to Issac Trotts)
let b:mw='\<let\>:\<and\>:\(\<in\>\|;;\),'
let b:mw=b:mw . '\<if\>:\<then\>:\<else\>,\<do\>:\<done\>,'
let b:mw=b:mw . '\<\(object\|sig\|struct\|begin\)\>:\<end\>'
let b:match_words=b:mw
" switching between interfaces (.mli) and implementations (.ml)
if !exists("g:did_ocaml_switch")
let g:did_ocaml_switch = 1
map ,s :call OCaml_switch(0)<CR>
map ,S :call OCaml_switch(1)<CR>
fun OCaml_switch(newwin)
if (match(bufname(""), "\\.mli$") >= 0)
let fname = substitute(bufname(""), "\\.mli$", ".ml", "")
if (a:newwin == 1)
exec "new " . fname
else
exec "arge " . fname
endif
elseif (match(bufname(""), "\\.ml$") >= 0)
let fname = bufname("") . "i"
if (a:newwin == 1)
exec "new " . fname
else
exec "arge " . fname
endif
endif
endfun
endif
" Vim support for OCaml 3.07 .annot files (requires Vim with python support)
"
" Executing OCamlPrintType(<mode>) function will display in the Vim bottom
" line(s) the type of an ocaml value getting it from the corresponding .annot
" file (if any). If Vim is in visual mode, <mode> should be "visual" and the
" selected ocaml value correspond to the highlighted text, otherwise (<mode>
" can be anything else) it corresponds to the literal found at the current
" cursor position.
"
" .annot files are parsed lazily the first time OCamlPrintType is invoked; is
" also possible to force the parsing using the OCamlParseAnnot() function.
"
" Hitting the <F3> key will cause OCamlPrintType function to be invoked with
" the right argument depending on the current mode (visual or not).
"
" Copyright (C) <2003> Stefano Zacchiroli <zack@bononia.it>
"
" Created: Wed, 01 Oct 2003 18:16:22 +0200 zack
" LastModified: Mon, 06 Oct 2003 11:05:39 +0200 zack
"
" This program is free software; you can redistribute it and/or modify
" it under the terms of the GNU General Public License as published by
" the Free Software Foundation; either version 2 of the License, or
" (at your option) any later version.
"
" This program is distributed in the hope that it will be useful,
" but WITHOUT ANY WARRANTY; without even the implied warranty of
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
" GNU General Public License for more details.
"
" You should have received a copy of the GNU General Public License
" along with this program; if not, write to the Free Software
" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"
if !has("python")
echo "Python support not found: OCaml .annot support disabled"
finish
endif
if !exists("g:did_ocaml_dtypes")
let g:did_ocaml_dtypes = 1
else
finish
endif
python << EOF
import re
import os
import string
import time
import vim
debug = False
class AnnExc(Exception):
def __init__(self, reason):
self.reason = reason
no_annotations = AnnExc("No type annotations (.annot) file found")
annotation_not_found = AnnExc("No type annotation found for the given text")
def malformed_annotations(lineno):
return AnnExc("Malformed .annot file (line = %d)" % lineno)
class Annotations:
"""
.annot ocaml file representation
File format (copied verbatim from caml-types.el)
file ::= block *
block ::= position <SP> position <LF> annotation *
position ::= filename <SP> num <SP> num <SP> num
annotation ::= keyword open-paren <LF> <SP> <SP> data <LF> close-paren
<SP> is a space character (ASCII 0x20)
<LF> is a line-feed character (ASCII 0x0A)
num is a sequence of decimal digits
filename is a string with the lexical conventions of O'Caml
open-paren is an open parenthesis (ASCII 0x28)
close-paren is a closed parenthesis (ASCII 0x29)
data is any sequence of characters where <LF> is always followed by
at least two space characters.
- in each block, the two positions are respectively the start and the
- end of the range described by the block.
- in a position, the filename is the name of the file, the first num
is the line number, the second num is the offset of the beginning
of the line, the third num is the offset of the position itself.
- the char number within the line is the difference between the third
and second nums.
For the moment, the only possible keyword is \"type\"."
"""
def __init__(self):
self.__filename = None # last .annot parsed file
self.__ml_filename = None # as above but s/.annot/.ml/
self.__timestamp = None # last parse action timestamp
self.__annot = {}
self.__re = re.compile(
'^"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)\s+"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)$')
def __parse(self, fname):
try:
f = open(fname)
line = f.readline() # position line
lineno = 1
while (line != ""):
m = self.__re.search(line)
if (not m):
raise malformed_annotations(lineno)
line1 = int(m.group(1))
col1 = int(m.group(3)) - int(m.group(2))
line2 = int(m.group(4))
col2 = int(m.group(6)) - int(m.group(5))
line = f.readline() # "type(" string
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
type = []
line = f.readline() # type description
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
while line != ")\n":
type.append(string.strip(line))
line = f.readline()
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
type = string.join(type, "\n")
self.__annot[(line1, col1), (line2, col2)] = type
line = f.readline() # position line
f.close()
self.__filename = fname
self.__ml_filename = re.sub("\.annot$", ".ml", fname)
self.__timestamp = int(time.time())
except IOError:
raise no_annotations
def parse(self):
annot_file = re.sub("\.ml$", ".annot", vim.current.buffer.name)
self.__parse(annot_file)
def get_type(self, (line1, col1), (line2, col2)):
if debug:
print line1, col1, line2, col2
if vim.current.buffer.name == None:
raise no_annotations
if vim.current.buffer.name != self.__ml_filename or \
os.stat(self.__filename).st_mtime > self.__timestamp:
self.parse()
try:
return self.__annot[(line1, col1), (line2, col2)]
except KeyError:
raise annotation_not_found
word_char_RE = re.compile("^[\w.]$")
# TODO this function should recognize ocaml literals, actually it's just an
# hack that recognize continuous sequences of word_char_RE above
def findBoundaries(line, col):
""" given a cursor position (as returned by vim.current.window.cursor)
return two integers identify the beggining and end column of the word at
cursor position, if any. If no word is at the cursor position return the
column cursor position twice """
left, right = col, col
line = line - 1 # mismatch vim/python line indexes
(begin_col, end_col) = (0, len(vim.current.buffer[line]) - 1)
try:
while word_char_RE.search(vim.current.buffer[line][left - 1]):
left = left - 1
except IndexError:
pass
try:
while word_char_RE.search(vim.current.buffer[line][right + 1]):
right = right + 1
except IndexError:
pass
return (left, right)
annot = Annotations() # global annotation object
def printOCamlType(mode):
try:
if mode == "visual": # visual mode: lookup highlighted text
(line1, col1) = vim.current.buffer.mark("<")
(line2, col2) = vim.current.buffer.mark(">")
else: # any other mode: lookup word at cursor position
(line, col) = vim.current.window.cursor
(col1, col2) = findBoundaries(line, col)
(line1, line2) = (line, line)
begin_mark = (line1, col1)
end_mark = (line2, col2 + 1)
print annot.get_type(begin_mark, end_mark)
except AnnExc, exc:
print exc.reason
def parseOCamlAnnot():
try:
annot.parse()
except AnnExc, exc:
print exc.reason
EOF
fun OCamlPrintType(current_mode)
if (a:current_mode == "visual")
python printOCamlType("visual")
else
python printOCamlType("normal")
endif
endfun
fun OCamlParseAnnot()
python parseOCamlAnnot()
endfun
map <F3> :call OCamlPrintType("normal")<RETURN>
vmap <F3> :call OCamlPrintType("visual")<RETURN>

View File

@ -1,12 +1,12 @@
" Vim indent file
" Language: OCaml
" Maintainers: Jean-Francois Yuen <jfyuen@ifrance.com>
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change: 2003 Apr 14
" 2003 Mar 05 - Added '{<' and some fixes (JY)
" 2002 Nov 06 - Some fixes (JY)
" Language: OCaml
" Maintainers: Jean-Francois Yuen <jfyuen@happycoders.org>
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change: 2004 Apr 11 - Added indent for 'class' (JY)
" 2003 Sep 16 - Added 'private' as keyword (JY)
" 2003 Mar 29 - Fixed bug with 'if' and 'else' (JY)
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@ -16,7 +16,7 @@ let b:did_indent = 1
setlocal expandtab
setlocal indentexpr=GetOCamlIndent()
setlocal indentkeys+=0=and,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=initializer,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0=;;,0=>\],0=\|\],0=\|,0=*),0=>},0},0\],0)
setlocal indentkeys+=0=and,0=class,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=initializer,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0;;,0>\],0\|\],0>},0\|,0},0\],0)
setlocal nolisp
setlocal nosmartindent
setlocal textwidth=80
@ -33,14 +33,13 @@ if exists("*GetOCamlIndent")
endif
" Define some patterns:
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|;\|(\)\s*$'
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|<-\|=\|;\|(\)\s*$'
let s:letpat = '^\s*\(let\|type\|module\|class\|open\|exception\|val\|include\|external\)\>'
let s:letlim = '\(\<\(sig\|struct\)\|;;\)\s*$'
let s:lim = '^\s*\(exception\|external\|include\|let\|module\|open\|type\|val\)\>'
let s:module = '\<\%(begin\|sig\|struct\|object\)\>'
let s:obj = '^\s*\(constraint\|inherit\|initializer\|method\|val\)\>\|\<\(object\|object\s*(.*)\)\s*$'
let s:type = '^\s*\%(let\|type\)\>.*='
let s:val = '^\s*\(val\|external\)\>.*:'
let s:type = '^\s*\%(class\|let\|type\)\>.*='
" Skipping pattern, for comments
function s:SkipPattern(lnum, pat)
@ -75,7 +74,7 @@ endfunction
" Indent 'let'
function s:FindLet(pstart, pmid, pend)
call search(a:pend, 'bW')
return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ "^\\s*let\\>.*=\\s*$\\|" . s:beflet'))
return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ s:beflet'))
endfunction
function GetOCamlIndent()
@ -97,8 +96,7 @@ function GetOCamlIndent()
let line = getline(v:lnum)
" Indent if current line begins with 'end'
" for 'sig', 'struct', 'object' and 'begin':
" Indent if current line begins with 'end':
if line =~ '^\s*end\>'
return s:FindPair(s:module, '','\<end\>')
@ -118,27 +116,25 @@ function GetOCamlIndent()
elseif line =~ '^\s*)'
return s:FindPair('(', '',')')
" Indent if current line begins with 'let'
" and last line does not begin with 'let' or end with 'in' or ';;':
" Indent if current line begins with 'let':
elseif line =~ '^\s*let\>'
if lline !~ s:lim . '\|' . s:letlim . '\|' . s:beflet
return s:FindLet(s:type, '','\<let\s*$')
else return ind
endif
" Indent if current line begins with 'type'
" and last line does not end with 'and' or ';;':
elseif line =~ '^\s*type\>'
" Indent if current line begins with 'class' or 'type':
elseif line =~ '^\s*\(class\|type\)\>'
if lline !~ s:lim . '\|\<and\s*$\|' . s:letlim
return s:FindLet(s:type, '','\<type\s*$')
return s:FindLet(s:type, '','\<\(class\|type\)\s*$')
else return ind
endif
" Indent for pattern matching:
elseif line =~ '^\s*|'
if lline !~ '^\s*\(|\|\(match\|with\|type\)\>\)\|\<\(function\|parser\|with\)\s*$'
if lline !~ '^\s*\(|[^\]]\|\(match\|type\|with\)\>\)\|\<\(function\|parser\|private\|with\)\s*$'
call search('|', 'bW')
return indent(searchpair('^\s*\(type\|match\)\>\|\<\(with\|function\|parser\)\s*$', '', '|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "\\[|\\||\\]" && getline(".") !~ "^\\s*|.*->"'))
return indent(searchpair('^\s*\(match\|type\)\>\|\<\(function\|parser\|private\|with\)\s*$', '', '^\s*|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") !~ "^\\s*|.*->"'))
else return ind
endif
@ -149,41 +145,35 @@ function GetOCamlIndent()
else return ind
endif
" Indent if current line begins with 'in' and previous
" line does not start with 'let' or 'and':
" Indent if current line begins with 'in':
elseif line =~ '^\s*in\>'
if lline !~ '^\s*\(let\|and\)\>'
return s:FindPair('\<let\>', '', '\<in\>')
else return ind
endif
" Indent if current line begins with 'else'
" and previous line does not start with 'if', 'then' or 'else':
" Indent if current line begins with 'else':
elseif line =~ '^\s*else\>'
if lline !~ '^\s*\(if\|else\|then\)\>'
if lline !~ '^\s*\(if\|then\)\>'
return s:FindPair('\<if\>', '', '\<else\>')
else return ind
endif
" Indent if current line begins with 'then'
" and previous line does not start with 'if', 'then' or 'else':
" Indent if current line begins with 'then':
elseif line =~ '^\s*then\>'
if lline !~ '^\s*\(if\|else\|then\)\>'
if lline !~ '^\s*\(if\|else\)\>'
return s:FindPair('\<if\>', '', '\<then\>')
else return ind
endif
" Subtract a 'shiftwidth' if current line begins with 'and' and previous
" line does not start with 'let', 'and' or 'type' or end with 'end'
" (for classes):
" Indent if current line begins with 'and':
elseif line =~ '^\s*and\>'
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
return ind - &sw
else return ind
endif
" Indent if current line begins with 'with'
" and previous line does not start with 'match' or 'try':
" Indent if current line begins with 'with':
elseif line =~ '^\s*with\>'
if lline !~ '^\s*\(match\|try\)\>'
return s:FindPair('\<\%(match\|try\)\>', '','\<with\>')
@ -193,35 +183,35 @@ function GetOCamlIndent()
" Indent if current line begins with 'exception':
elseif line =~ '^\s*exception\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(external\|include\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(external\|include\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'external':
elseif line =~ '^\s*external\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|include\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|include\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'include':
elseif line =~ '^\s*include\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|external\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'open':
elseif line =~ '^\s*open\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|external\|include\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|include\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'val':
elseif line =~ '^\s*val\>'
if lline !~ '^\s*\(exception\|external\|include\|open\)\>\|' . s:obj . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|include\|initializer\|method\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|include\|initializer\|method\|open\|type\|val\)\>\|external\>.*:\)', 'bW'))
else return ind
endif
@ -253,15 +243,10 @@ function GetOCamlIndent()
else return ind
endif
" Indent back to normal after comments:
elseif line =~ '^\s*\*)'
call search('\*)', 'bW')
return indent(searchpair('(\*', '', '\*)', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"'))
endif
" Add a 'shiftwidth' after lines ending with:
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|struct\|sig\|functor\|initializer\|object\|try\|do\|if\|then\|else\|fun\|function\|parser\)\|\<object\s*(.*)\)\s*$'
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
let ind = ind + &sw
" Back to normal indent after lines ending with ';;':

View File

@ -2,7 +2,7 @@
" Language: Python
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Original Author: David Bustos <bustos@caltech.edu>
" Last Change: 2004 Jun 15
" Last Change: 2004 Jul 25
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@ -99,15 +99,36 @@ function GetPythonIndent(lnum)
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
let col = 0
while col < pline_len
if pline[col] == '#' && (!has('syntax_items')
\ || synIDattr(synID(plnum, col + 1, 1), "name") =~ "Comment$")
let pline = strpart(pline, 0, col)
break
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "Comment$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "Comment$"
let max = col
else
let min = col + 1
endif
endwhile
echomsg min
let pline = strpart(pline, 0, min - 1)
echomsg pline
sleep 1
endif
let col = col + 1
endwhile
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'

View File

@ -2,9 +2,9 @@
" Language: Dot
" Filenames: *.dot
" Maintainer: Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/syntax/dot.vim
" Last Change: 2003 May 11
" 2001 May 04 - initial version
" URL: http://www.oefai.at/~markus/vim/syntax/dot.vim
" Last Change: 2004 Jul 26
" 2001 May 04 - initial version
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded

View File

@ -1,203 +1,314 @@
" Vim syntax file
" Language: IDL (Interface Description Language)
" Maintainer: Jody Goldberg <jgoldberg@home.com> or <jody@gnome.org>
" Last Change: 2004 Jul 12
" Language: IDL (Interface Description Language)
" Created By: Jody Goldberg <jody@gnome.org>
" Maintainer: Michael Geddes <michaelrgeddes@optushome.com.au>
" Last Change: 2004 Jul 20
" This is an experiment. IDL's structure is simple enough to permit a full
" grammar based approach to rather than using a few heuristics. The result
" is large and somewhat repetative but seems to work.
" 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")
" There are some Microsoft extensions to idl files that are here. Some of
" them are disabled by defining idl_no_ms_extensions.
"
" The more complex of the extensions are disabled by defining idl_no_extensions.
"
if exists("b:current_syntax")
finish
endif
if exists("idlsyntax_showerror")
syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
endif
syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString
" Misc basic
syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*"
syn match idlSemiColon contained ";"
syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl
syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlSemiColon,idlCommaArg,idlArraySize1
syn region idlSting contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\="
syn match idlLiteral contained "\.\d\+"
syn keyword idlLiteral contained TRUE FALSE
syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
syn match idlEnumComma contained ","
syn match idlEnumNumber contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
syn match idlSemiColon contained ";"
syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl
syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
syn region idlString contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\="
syn match idlLiteral contained "0"
syn match idlLiteral contained "\.\d\+"
syn match idlLiteral contained "0x[0-9A-Fa-f]\+"
syn match idlLiteral contained "0[0-7]\+"
syn keyword idlLiteral contained TRUE FALSE
" Comments
syn keyword idlTodo contained TODO FIXME XXX
syn region idlComment start="/\*" end="\*/" contains=idlTodo
syn match idlComment "//.*" contains=idlTodo
syn match idlCommentError "\*/"
syn keyword idlTodo contained TODO FIXME XXX
syn region idlComment start="/\*" end="\*/" contains=idlTodo
syn match idlComment "//.*" contains=idlTodo
syn match idlCommentError "\*/"
" C style Preprocessor
syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
syn match idlIncluded contained "<[^>]*>"
syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError
syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral, idlString
syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
syn match idlIncluded contained "<[^>]*>"
syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError
syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString
" Constants
syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
" Attribute
syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr
syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr
syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
" Types
syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4
syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl
syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt
syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl
syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl
syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4
syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl
syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt
syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl
syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl
" Modules
syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlSemiColon
syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName
syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName
" Interfaces
syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlComment,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef
syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom
syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlSemiColon
syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceName
syn cluster idlCommentable contains=idlComment
syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections
syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom
syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
syn keyword idlInterface interface dispinterface skipempty skipwhite nextgroup=idlInterfaceName
syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
syn match idlSectionColon contained ":"
syn match idlLibraryName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
syn keyword idlLibrary library skipempty skipwhite nextgroup=idlLibraryName
syn region idlLibraryContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface
syn keyword idlImportlib contained importlib skipempty skipwhite nextgroup=idlStringArg
syn region idlStringArg contained start="(" end=")" contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket
syn keyword idlCoclass coclass contained skipempty skipwhite nextgroup=idlCoclassName
syn match idlCoclassName "[a-zA-Z0-9_]\+" contained skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon
syn region idlCoclassDefinition contained start="{" end="}" contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
syn region idlCoclassAttributes contained start=+\[+ end=+]+ skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
syn keyword idlCoclassAttribute contained default source
"syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceStubName
syn match idlImportString +"\f\+"+ skipempty skipwhite nextgroup=idlError,idlSemiColon
syn keyword idlImport import skipempty skipwhite nextgroup=idlImportString
syn region idlAttributes start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
if !exists('idl_no_ms_extensions')
syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
endif
syn region idlAttributeParam contained start="(" end=")" contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
" skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
syn match idlErrorBrace contained "}"
syn match idlErrorBracket contained ")"
syn match idlErrorSquareBracket contained "\]"
syn match idlUuid contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+
" Raises
syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon
syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
" Context
syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon
syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
" Operation
syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms
syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize
syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName
syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt
syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName
syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName
syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType
syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms
syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize
syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName
syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt
syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName
syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName
syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType
syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon contains=idlOpParms
syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents
syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName
syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt
syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName
syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName
syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName
syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp
if !exists('idl_no_ms_extensions')
syn keyword idlOpParms contained retval optional skipempty skipwhite nextgroup=idlParmType
syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType
syn keyword idlVariantType contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
endif
syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents
syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName
syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt
syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName
syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName
syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName
syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp
" Enum
syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon, idlSimpDecl contains=idlId,idlComment
syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents
syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName
syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents
syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName,idlEnumContents
" Typedef
syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlBaseType, idlBaseTypeInt, idlSeqType
syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError
if !exists('idl_no_extensions')
syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite
syn region idlDefAttributes contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError
syn keyword idlDefBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlTypedefDecl,idlError
syn keyword idlDefBaseTypeInt contained short long skipempty skipwhite nextgroup=idlTypedefDecl,idlError
syn match idlDefOtherType contained +\<\k\+\>+ skipempty nextgroup=idlTypedefDecl,idlError
" syn keyword idlDefSeqType contained sequence skipempty skipwhite nextgroup=idlD4
" Enum typedef
syn keyword idlDefEnum contained enum skipempty skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
syn match idlDefEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
syn region idlDefEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes
syn match idlTypedefDecl contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlError,idlSemiColon
endif
" Struct
syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon, idlSimpDecl contains=idlBaseType, idlBaseTypeInt, idlSeqType,idlComment, idlEnum, idlUnion
syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName
syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName
" Exception
syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
" Union
syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel
syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon
syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon,idlSimpDecl contains=idlCase
syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent
syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType
syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch
syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName
syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel
syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon
syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent
syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType
syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch
syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName
syn sync lines=200
if !exists('idl_no_extensions')
syn sync match idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
syn sync maxlines=1000 minlines=100
else
syn sync lines=200
endif
" syn sync fromstart
" 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_idl_syntax_inits")
if version < 508
let did_idl_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
if !exists("did_idl_syntax_inits")
let did_idl_syntax_inits = 1
" The default methods for highlighting. Can be overridden later
command -nargs=+ HiLink hi def link <args>
HiLink idlInclude Include
HiLink idlPreProc PreProc
HiLink idlPreCondit PreCondit
HiLink idlDefine Macro
HiLink idlIncluded String
HiLink idlString String
HiLink idlComment Comment
HiLink idlTodo Todo
HiLink idlLiteral Number
HiLink idlUuid Number
HiLink idlType Type
HiLink idlVariantType idlType
HiLink idlModule Keyword
HiLink idlInterface Keyword
HiLink idlEnum Keyword
HiLink idlStruct Keyword
HiLink idlUnion Keyword
HiLink idlTypedef Keyword
HiLink idlException Keyword
HiLink idlTypedefOtherTypeQualifier keyword
HiLink idlModuleName Typedef
HiLink idlInterfaceName Typedef
HiLink idlEnumName Typedef
HiLink idlStructName Typedef
HiLink idlUnionName Typedef
HiLink idlBaseTypeInt idlType
HiLink idlBaseType idlType
HiLink idlSeqType idlType
HiLink idlD1 Paren
HiLink idlD2 Paren
HiLink idlD3 Paren
HiLink idlD4 Paren
"HiLink idlArraySize Paren
"HiLink idlArraySize1 Paren
HiLink idlModuleContent Paren
HiLink idlUnionContent Paren
HiLink idlStructContent Paren
HiLink idlEnumContents Paren
HiLink idlInterfaceContent Paren
HiLink idlSimpDecl Identifier
HiLink idlROAttr StorageClass
HiLink idlAttr Keyword
HiLink idlConst StorageClass
HiLink idlOneWayOp StorageClass
HiLink idlOp idlType
HiLink idlParmType idlType
HiLink idlOpName Function
HiLink idlOpParms SpecialComment
HiLink idlParmName Identifier
HiLink idlInheritFrom Identifier
HiLink idlAttribute SpecialComment
HiLink idlId Constant
"HiLink idlCase Keyword
HiLink idlCaseLabel Constant
HiLink idlErrorBracket Error
HiLink idlErrorBrace Error
HiLink idlErrorSquareBracket Error
HiLink idlImport Keyword
HiLink idlImportString idlString
HiLink idlCoclassAttribute StorageClass
HiLink idlLibrary Keyword
HiLink idlImportlib Keyword
HiLink idlCoclass Keyword
HiLink idlLibraryName Typedef
HiLink idlCoclassName Typedef
" hi idlLibraryContent guifg=red
HiLink idlTypedefDecl Typedef
HiLink idlDefEnum Keyword
HiLink idlDefv1Enum Keyword
HiLink idlDefEnumName Typedef
HiLink idlDefEnumContents Paren
HiLink idlDefBaseTypeInt idlType
HiLink idlDefBaseType idlType
HiLink idlDefSeqType idlType
HiLink idlInterfaceSections Label
if exists("idlsyntax_showerror")
if exists("idlsyntax_showerror_soft")
hi default idlError guibg=#d0ffd0
else
HiLink idlError Error
endif
endif
HiLink idlInclude Include
HiLink idlPreProc PreProc
HiLink idlPreCondit PreCondit
HiLink idlDefine Macro
HiLink idlIncluded String
HiLink idlString String
HiLink idlComment Comment
HiLink idlTodo Todo
HiLink idlLiteral Number
HiLink idlModule Keyword
HiLink idlInterface Keyword
HiLink idlEnum Keyword
HiLink idlStruct Keyword
HiLink idlUnion Keyword
HiLink idlTypedef Keyword
HiLink idlException Keyword
HiLink idlModuleName Typedef
HiLink idlInterfaceName Typedef
HiLink idlEnumName Typedef
HiLink idlStructName Typedef
HiLink idlUnionName Typedef
HiLink idlBaseTypeInt idlType
HiLink idlBaseType idlType
HiLink idlSeqType idlType
HiLink idlD1 Paren
HiLink idlD2 Paren
HiLink idlD3 Paren
HiLink idlD4 Paren
"HiLink idlArraySize Paren
"HiLink idlArraySize1 Paren
HiLink idlModuleContent Paren
HiLink idlUnionContent Paren
HiLink idlStructContent Paren
HiLink idlEnumContents Paren
HiLink idlInterfaceContent Paren
HiLink idlSimpDecl Identifier
HiLink idlROAttr StorageClass
HiLink idlAttr Keyword
HiLink idlConst StorageClass
HiLink idlOneWayOp StorageClass
HiLink idlOp idlType
HiLink idlParmType idlType
HiLink idlOpName Function
HiLink idlOpParms StorageClass
HiLink idlParmName Identifier
HiLink idlInheritFrom Identifier
HiLink idlId Constant
"HiLink idlCase Keyword
HiLink idlCaseLabel Constant
delcommand HiLink
endif
let b:current_syntax = "idl"
" vim: ts=8
" vim: sw=2 et

View File

@ -2,22 +2,23 @@
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: lilo configuration (lilo.conf)
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2003 May 04
" Last Change: 2004-07-20
" URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
" Setup
if version >= 600
if exists("b:current_syntax")
finish
endif
if exists("b:current_syntax")
finish
endif
else
syntax clear
syntax clear
endif
if version >= 600
command -nargs=1 SetIsk setlocal iskeyword=<args>
command -nargs=1 SetIsk setlocal iskeyword=<args>
else
command -nargs=1 SetIsk set iskeyword=<args>
command -nargs=1 SetIsk set iskeyword=<args>
endif
SetIsk @,48-57,.,-,_
delcommand SetIsk
@ -34,23 +35,23 @@ syn match liloHexNumber "0[xX]\x\+" contained
syn match liloDecNumberP "\d\+p\=" contained
syn match liloSpecial contained "\\\(\"\|\\\|$\)"
syn region liloString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=liloSpecial,liloEnviron
syn match liloLabel "\S\+" contained contains=liloSpecial,liloEnviron
syn match liloLabel :[^ "]\+: contained contains=liloSpecial,liloEnviron
syn region liloPath start=+[$/]+ skip=+\\\\\|\\ \|\\$"+ end=+ \|$+ contained contains=liloSpecial,liloEnviron
syn match liloDecNumberList "\(\d\|,\)\+" contained contains=liloDecNumber
syn match liloDecNumberPList "\(\d\|[,p]\)\+" contained contains=liloDecNumberP,liloDecNumber
syn region liloAnything start=+[^[:space:]#]+ skip=+\\\\\|\\ \|\\$+ end=+ \|$+ contained contains=liloSpecial,liloEnviron,liloString
" Path
syn keyword liloOption backup bitmap boot disktab force-backup install keytable map message nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloOption backup bitmap boot disktab force-backup keytable map message nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloKernelOpt initrd root nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloImageOpt path loader table nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
syn keyword liloDiskOpt partition nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
" Other
syn keyword liloOption menu-scheme raid-extra-boot serial nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloOption default nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
syn keyword liloOption menu-scheme raid-extra-boot serial install nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloOption bios-passes-dl nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloOption default label alias wmdefault nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
syn keyword liloKernelOpt ramdisk nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloImageOpt alias label nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
syn keyword liloImageOpt password range nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
syn keyword liloDiskOpt set type nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
@ -67,19 +68,21 @@ syn keyword liloKernelOpt append nextgroup=liloEqString,liloEqStringComment,lilo
syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
" Hex number
syn keyword liloImageOpt map-drive to nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
syn keyword liloImageOpt map-drive to boot-as nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
syn keyword liloDiskOpt bios normal hidden nextgroup=liloEqNumber,liloEqNumberComment,liloError skipwhite skipempty
" Number list
syn keyword liloOption bmp-colors bmp-timer nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
syn keyword liloOption bmp-colors nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
" Number list, some of the numbers followed by p
syn keyword liloOption bmp-table nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
syn keyword liloOption bmp-table bmp-timer nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
" Flag
syn keyword liloOption compact fix-table geometric ignore-table lba32 linear mandatory nowarn prompt
syn keyword liloOption bmp-retain el-torito-bootable-CD large-memory suppress-boot-time-BIOS-data
syn keyword liloKernelOpt read-only read-write
syn keyword liloImageOpt bypass lock mandatory optional restricted single-key unsafe
syn keyword liloImageOpt master-boot wmwarn wmdisable
syn keyword liloDiskOpt change activate deactivate inaccessible reset
" Image
@ -97,7 +100,7 @@ syn match liloEqNumberComment "#.*$" contained nextgroup=liloEqNumber,liloEqNumb
syn match liloEqDecNumberComment "#.*$" contained nextgroup=liloEqDecNumber,liloEqDecNumberComment,liloError skipwhite skipempty
syn match liloEqHexNumberComment "#.*$" contained nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
syn match liloEqStringComment "#.*$" contained nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
syn match liloEqLabelComment "#.*$" contained nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
syn match liloEqLabelStringComment "#.*$" contained nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
syn match liloEqNumberListComment "#.*$" contained nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
syn match liloEqDecNumberPListComment "#.*$" contained nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
syn match liloEqAnythingComment "#.*$" contained nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
@ -109,7 +112,7 @@ syn match liloEqNumber "=" contained nextgroup=liloDecNumber,liloHexNumber,liloN
syn match liloEqDecNumber "=" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
syn match liloEqHexNumber "=" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
syn match liloEqString "=" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
syn match liloEqLabel "=" contained nextgroup=liloLabel,liloLabelComment,liloError skipwhite skipempty
syn match liloEqLabelString "=" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
syn match liloEqNumberList "=" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
syn match liloEqDecNumberPList "=" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
syn match liloEqAnything "=" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty
@ -121,74 +124,71 @@ syn match liloNumberComment "#.*$" contained nextgroup=liloDecNumber,liloHexNumb
syn match liloDecNumberComment "#.*$" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
syn match liloHexNumberComment "#.*$" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
syn match liloStringComment "#.*$" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
syn match liloLabelComment "#.*$" contained nextgroup=liloLabel,liloLabelComment,liloError skipwhite skipempty
syn match liloLabelStringComment "#.*$" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
syn match liloDecNumberListComment "#.*$" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
syn match liloDecNumberPListComment "#.*$" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
syn match liloAnythingComment "#.*$" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty
" Define the default highlighting
if version >= 508 || !exists("did_lilo_syntax_inits")
if version < 508
let did_lilo_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
if version < 508
let did_lilo_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink liloEqPath liloEquals
HiLink liloEqWord liloEquals
HiLink liloEqVga liloEquals
HiLink liloEqDecNumber liloEquals
HiLink liloEqHexNumber liloEquals
HiLink liloEqNumber liloEquals
HiLink liloEqString liloEquals
HiLink liloEqLabel liloEquals
HiLink liloEqAnything liloEquals
HiLink liloEquals Special
HiLink liloEqPath liloEquals
HiLink liloEqWord liloEquals
HiLink liloEqVga liloEquals
HiLink liloEqDecNumber liloEquals
HiLink liloEqHexNumber liloEquals
HiLink liloEqNumber liloEquals
HiLink liloEqString liloEquals
HiLink liloEqAnything liloEquals
HiLink liloEquals Special
HiLink liloError Error
HiLink liloError Error
HiLink liloEqPathComment liloComment
HiLink liloEqVgaComment liloComment
HiLink liloEqDecNumberComment liloComment
HiLink liloEqHexNumberComment liloComment
HiLink liloEqStringComment liloComment
HiLink liloEqLabelComment liloComment
HiLink liloEqAnythingComment liloComment
HiLink liloPathComment liloComment
HiLink liloVgaComment liloComment
HiLink liloDecNumberComment liloComment
HiLink liloHexNumberComment liloComment
HiLink liloNumberComment liloComment
HiLink liloStringComment liloComment
HiLink liloLabelComment liloComment
HiLink liloAnythingComment liloComment
HiLink liloComment Comment
HiLink liloEqPathComment liloComment
HiLink liloEqVgaComment liloComment
HiLink liloEqDecNumberComment liloComment
HiLink liloEqHexNumberComment liloComment
HiLink liloEqStringComment liloComment
HiLink liloEqAnythingComment liloComment
HiLink liloPathComment liloComment
HiLink liloVgaComment liloComment
HiLink liloDecNumberComment liloComment
HiLink liloHexNumberComment liloComment
HiLink liloNumberComment liloComment
HiLink liloStringComment liloComment
HiLink liloAnythingComment liloComment
HiLink liloComment Comment
HiLink liloDiskOpt liloOption
HiLink liloKernelOpt liloOption
HiLink liloImageOpt liloOption
HiLink liloOption Keyword
HiLink liloDiskOpt liloOption
HiLink liloKernelOpt liloOption
HiLink liloImageOpt liloOption
HiLink liloOption Keyword
HiLink liloDecNumber liloNumber
HiLink liloHexNumber liloNumber
HiLink liloDecNumberP liloNumber
HiLink liloNumber Number
HiLink liloString String
HiLink liloPath Constant
HiLink liloDecNumber liloNumber
HiLink liloHexNumber liloNumber
HiLink liloDecNumberP liloNumber
HiLink liloNumber Number
HiLink liloString String
HiLink liloPath Constant
HiLink liloSpecial Special
HiLink liloLabel Title
HiLink liloDecNumberList Special
HiLink liloDecNumberPList Special
HiLink liloAnything Normal
HiLink liloEnviron Identifier
HiLink liloVgaKeyword Identifier
HiLink liloImage Type
HiLink liloChRules Preproc
HiLink liloDisk Preproc
HiLink liloSpecial Special
HiLink liloLabel Title
HiLink liloDecNumberList Special
HiLink liloDecNumberPList Special
HiLink liloAnything Normal
HiLink liloEnviron Identifier
HiLink liloVgaKeyword Identifier
HiLink liloImage Type
HiLink liloChRules Preproc
HiLink liloDisk Preproc
delcommand HiLink
delcommand HiLink
endif
let b:current_syntax = "lilo"

View File

@ -2,10 +2,10 @@
" Language: LambdaProlog (Teyjus)
" Filenames: *.mod *.sig
" Maintainer: Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/syntax/lprolog.vim
" Last Change: 2003 May 11
" 2001 Apr 26 - Upgraded for new Vim version
" 2000 Jun 5 - Initial release
" URL: http://www.oefai.at/~markus/vim/syntax/lprolog.vim
" Last Change: 2004 Jul 26
" 2001 Apr 26 - Upgraded for new Vim version
" 2000 Jun 5 - Initial release
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded

View File

@ -2,12 +2,12 @@
" Language: OCaml
" Filenames: *.ml *.mli *.mll *.mly
" Maintainers: Markus Mottl <markus@oefai.at>
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
" Issac Trotts <<ijtrotts@ucdavis.edu>
" URL: http://www.oefai.at/~markus/vim/syntax/ocaml.vim
" Last Change: 2003 May 04
" 2002 Oct 24 - Small fix for "module type" (MM)
" 2002 Jun 16 - Added "&&", "<" and ">" as operators (MM)
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
" Issac Trotts <ijtrotts@ucdavis.edu>
" URL: http://www.oefai.at/~markus/vim/syntax/ocaml.vim
" Last Change: 2004 Jul 26
" 2003 Jan 19 - Added keyword "require" for scripting (MM)
" 2002 Oct 30 - New variable "ocaml_revised" (MM)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@ -24,7 +24,7 @@ syn case match
syn match ocamlComment "^#!.*"
" Scripting directives
syn match ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|trace\|untrace\|untrace_all\|print_depth\|print_length\)\>"
syn match ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|require\|trace\|untrace\|untrace_all\|print_depth\|print_length\)\>"
" lowercase identifier - the standard way to match
syn match ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/
@ -163,7 +163,7 @@ else
syn match ocamlKeyChar "!"
endif
syn keyword ocamlType array bool char exn float format int
syn keyword ocamlType array bool char exn float format format4 int
syn keyword ocamlType list option string unit
syn keyword ocamlOperator asr lor lsl lsr lxor mod not

View File

@ -1,12 +1,12 @@
" Vim syntax file
" Language: SML
" Filenames: *.sml *.sig
" Maintainers: Markus Mottl <markus@oefai.at>
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
" URL: http://www.ai.univie.ac.at/~markus/vim/syntax/sml.vim
" Last Change: 2003 May 11
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
" 2001 Aug 29 - Fixed small highlighting bug (MM)
" Maintainers: Markus Mottl <markus@oefai.at>
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
" URL: http://www.oefai.at/~markus/vim/syntax/sml.vim
" Last Change: 2004 Jul 26
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
" 2001 Aug 29 - Fixed small highlighting bug (MM)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded

View File

@ -1055,9 +1055,9 @@ LINKIT = @echo >/dev/null
NONE_INSTALL = install_normal
### KDE GUI interface.
KDE_SRC = gui.c pty.c gui_kde.cc gui_kde_x11.cc gui_kde_widget.cc gui_kde_widget_moc.cc kvim_iface_skel.cc
KDE_SRC = gui.c pty.c gui_kde.cc gui_kde_x11.cc gui_kde_wid.cc gui_kde_wid_moc.cc kvim_iface_skel.cc
KDE_OBJ = objects/gui.o objects/pty.o objects/gui_kde.o objects/gui_kde_x11.o \
objects/gui_kde_widget.o objects/gui_kde_widget_moc.o \
objects/gui_kde_wid.o objects/gui_kde_wid_moc.o \
objects/kvim_iface_skel.o
KDE_DEFS = -DFEAT_GUI_KDE $(NARROW_PROTO)
KDE_IPATH = $(GUI_INC_LOC)
@ -1201,7 +1201,7 @@ CARBONGUI_BUNDLE = $(VIMNAME).app
CARBONGUI_TESTARG = VIMPROG=../$(CARBONGUI_BUNDLE)/Contents/MacOS/$(VIMTARGET)
# All GUI files
ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c gui_kde.cc gui_kde_widget.cc gui_kde_x11.cc gui_kde_widget_moc.cc
ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c gui_kde.cc gui_kde_wid.cc gui_kde_x11.cc gui_kde_wid_moc.cc
ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w16.pro gui_w32.pro gui_amiga.pro gui_photon.pro gui_kde.pro gui_kde_x11.pro
# }}}
@ -2038,7 +2038,7 @@ clean celan: testclean
-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
-rm -f conftest* *~ auto/link.sed
-rm -rf $(GUI_BUNDLE)
-rm -f gui_kde_widget_moc.cc kvim_iface_skel.cc *.kidl
-rm -f gui_kde_wid_moc.cc kvim_iface_skel.cc *.kidl
if test -d $(PODIR); then \
cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) clean; \
fi
@ -2393,17 +2393,17 @@ objects/gui_kde.o: gui_kde.cc
objects/gui_kde_x11.o: gui_kde_x11.cc
$(CCC) -o $@ gui_kde_x11.cc
objects/gui_kde_widget.o: gui_kde_widget.cc
$(MOC) -o gui_kde_widget_moc.cc gui_kde_widget.h
objects/gui_kde_wid.o: gui_kde_wid.cc
$(MOC) -o gui_kde_wid_moc.cc gui_kde_wid.h
$(KDE_DIR)/bin/dcopidl kvim_iface.h > kvim_iface.kidl || ( rm -f kvim_iface.kidl ; /bin/false )
$(KDE_DIR)/bin/dcopidl2cpp --c++-suffix cc --no-stub kvim_iface.kidl
$(CCC) -o $@ gui_kde_widget.cc
$(CCC) -o $@ gui_kde_wid.cc
gui_kde_widget_moc.cc: objects/gui_kde_widget.o
objects/gui_kde_widget_moc.o: gui_kde_widget_moc.cc
$(CCC) -o $@ gui_kde_widget_moc.cc
gui_kde_wid_moc.cc: objects/gui_kde_wid.o
objects/gui_kde_wid_moc.o: gui_kde_wid_moc.cc
$(CCC) -o $@ gui_kde_wid_moc.cc
kvim_iface_skel.cc: objects/gui_kde_widget.o
kvim_iface_skel.cc: objects/gui_kde_wid.o
objects/kvim_iface_skel.o: kvim_iface_skel.cc
$(CCC) -o $@ kvim_iface_skel.cc
@ -2716,21 +2716,21 @@ objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
arabic.h
objects/gui_kde.o: gui_kde.cc gui_kde_widget.h kvim_iface.h vim.h \
objects/gui_kde.o: gui_kde.cc gui_kde_wid.h kvim_iface.h vim.h \
auto/config.h feature.h os_unix.h auto/osdef.h ascii.h keymap.h \
term.h macros.h structs.h regexp.h gui.h option.h ex_cmds.h proto.h \
globals.h farsi.h
objects/gui_kde_widget.o: gui_kde_widget.cc gui_kde_widget.h kvim_iface.h \
objects/gui_kde_wid.o: gui_kde_wid.cc gui_kde_wid.h kvim_iface.h \
vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h keymap.h \
term.h macros.h structs.h regexp.h gui.h option.h ex_cmds.h proto.h \
globals.h farsi.h proto/../../pixmaps/alert.xpm proto/../../pixmaps/error.xpm \
proto/../../pixmaps/generic.xpm proto/../../pixmaps/info.xpm \
proto/../../pixmaps/quest.xpm
objects/gui_kde_x11.o: gui_kde_x11.cc gui_kde_widget.h kvim_iface.h vim.h \
objects/gui_kde_x11.o: gui_kde_x11.cc gui_kde_wid.h kvim_iface.h vim.h \
auto/config.h feature.h os_unix.h auto/osdef.h ascii.h keymap.h \
term.h macros.h structs.h regexp.h gui.h option.h ex_cmds.h proto.h \
globals.h farsi.h version.h ../runtime/vim32x32.xpm
objects/gui_kde_widget_moc.o: gui_kde_widget_moc.cc gui_kde_widget.h \
objects/gui_kde_wid_moc.o: gui_kde_wid_moc.cc gui_kde_wid.h \
kvim_iface.h vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h option.h \
ex_cmds.h proto.h globals.h

View File

@ -216,6 +216,12 @@ open_buffer(read_stdin, eap)
#endif
curbuf->b_flags |= BF_READERR;
#ifdef FEAT_FOLDING
/* Need to update automatic folding. Do this before the autocommands,
* they may use the fold info. */
foldUpdateAll(curwin);
#endif
#ifdef FEAT_AUTOCMD
/* need to set w_topline, unless some autocommand already did that. */
if (!(curwin->w_valid & VALID_TOPLINE))
@ -263,11 +269,6 @@ open_buffer(read_stdin, eap)
#endif
}
#ifdef FEAT_FOLDING
/* Need to update automatic folding. */
foldUpdateAll(curwin);
#endif
return retval;
}
@ -408,8 +409,7 @@ close_buffer(win, buf, action)
if (!buf_valid(buf))
return;
# ifdef FEAT_EVAL
/* Autocommands may abort script processing. */
if (aborting())
if (aborting()) /* autocmds may abort script processing */
return;
# endif
@ -538,7 +538,8 @@ buf_freeall(buf, del_buf, wipe_buf)
return;
}
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
/* autocmds may abort script processing */
if (aborting())
return;
# endif
@ -669,8 +670,16 @@ goto_buffer(eap, start, dir, count)
&& (defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG))
if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
{
/* Quitting means closing the split window, nothing else. */
int old_got_int = got_int;
/* Quitting means closing the split window, nothing else.
* Reset got_int here, because it causes aborting() to return TRUE
* which breaks closing a window. */
got_int = FALSE;
win_close(curwin, TRUE);
got_int |= old_got_int;
swap_exists_action = SEA_NONE;
}
else
@ -688,6 +697,12 @@ goto_buffer(eap, start, dir, count)
handle_swap_exists(old_curbuf)
buf_T *old_curbuf;
{
int old_got_int = got_int;
/* Reset got_int here, because it causes aborting() to return TRUE which
* breaks closing a buffer. */
got_int = FALSE;
if (swap_exists_action == SEA_QUIT)
{
/* User selected Quit at ATTENTION prompt. Go back to previous
@ -712,6 +727,7 @@ handle_swap_exists(old_curbuf)
do_modelines();
}
swap_exists_action = SEA_NONE;
got_int |= old_got_int;
}
#endif
@ -4226,26 +4242,28 @@ ex_buffer_all(eap)
#endif
set_curbuf(buf, DOBUF_GOTO);
#ifdef FEAT_AUTOCMD
# ifdef FEAT_EVAL
/* Autocommands deleted the buffer or aborted script
* processing!!! */
if (!buf_valid(buf) || aborting())
# else
if (!buf_valid(buf)) /* autocommands deleted the buffer!!! */
# endif
{
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
# if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
swap_exists_action = SEA_NONE;
#endif
# endif
break;
}
#endif
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
if (swap_exists_action == SEA_QUIT)
{
/* User selected Quit at ATTENTION prompt; close this window. */
int old_got_int = got_int;
/* User selected Quit at ATTENTION prompt; close this window.
* Reset got_int here, because it causes aborting() to return
* TRUE which breaks closing a window. */
got_int = FALSE;
win_close(curwin, TRUE);
--open_wins;
got_int |= old_got_int;
swap_exists_action = SEA_NONE;
}
else
@ -4259,6 +4277,11 @@ ex_buffer_all(eap)
(void)vgetc(); /* only break the file loading, not the rest */
break;
}
#ifdef FEAT_EVAL
/* Autocommands deleted the buffer or aborted script processing!!! */
if (aborting())
break;
#endif
}
#ifdef FEAT_AUTOCMD
--autocmd_no_enter;

View File

@ -2641,7 +2641,7 @@ ins_compl_next_buf(buf, flag)
#ifdef FEAT_COMPL_FUNC
static char_u *call_completefunc __ARGS((char_u *line, char_u *base, int col, int preproc));
static int expand_by_function __ARGS((int lnum, int col, char_u *base, char_u ***matches));
static int expand_by_function __ARGS((linenr_T lnum, int col, char_u *base, char_u ***matches));
/*
* Execute user defined complete function 'completefunc'.
@ -2665,7 +2665,7 @@ call_completefunc(line, base, col, preproc)
args[0] = line;
args[1] = base;
args[2] = colbuf;
args[3] = preproc ? "1" : "0";
args[3] = (char_u *)(preproc ? "1" : "0");
return call_vim_function(curbuf->b_p_cfu, 4, args, FALSE);
}
@ -2676,7 +2676,7 @@ call_completefunc(line, base, col, preproc)
*/
static int
expand_by_function(lnum, col, base, matches)
int lnum;
linenr_T lnum;
int col;
char_u *base;
char_u ***matches;
@ -3528,7 +3528,7 @@ ins_complete(c)
lenstr = call_completefunc(line, NULL, complete_col, 1);
if (lenstr == NULL)
return FAIL;
keeplen = atoi(lenstr);
keeplen = atoi((char *)lenstr);
vim_free(lenstr);
if (keeplen < 0)
return FAIL;

View File

@ -295,8 +295,10 @@ static void f_getcharmod __ARGS((VAR argvars, VAR retvar));
static void f_getcmdline __ARGS((VAR argvars, VAR retvar));
static void f_getcmdpos __ARGS((VAR argvars, VAR retvar));
static void f_getcwd __ARGS((VAR argvars, VAR retvar));
static void f_getfperm __ARGS((VAR argvars, VAR retvar));
static void f_getfsize __ARGS((VAR argvars, VAR retvar));
static void f_getftime __ARGS((VAR argvars, VAR retvar));
static void f_getftype __ARGS((VAR argvars, VAR retvar));
static void f_getline __ARGS((VAR argvars, VAR retvar));
static void f_getreg __ARGS((VAR argvars, VAR retvar));
static void f_getregtype __ARGS((VAR argvars, VAR retvar));
@ -751,7 +753,7 @@ call_vim_function(func, argc, argv, safe)
if (argv[i] == NULL || *argv[i] == NUL)
{
argvars[i].var_type = VAR_STRING;
argvars[i].var_val.var_string = "";
argvars[i].var_val.var_string = (char_u *)"";
continue;
}
@ -2853,8 +2855,10 @@ static struct fst
{"getcmdline", 0, 0, f_getcmdline},
{"getcmdpos", 0, 0, f_getcmdpos},
{"getcwd", 0, 0, f_getcwd},
{"getfperm", 1, 1, f_getfperm},
{"getfsize", 1, 1, f_getfsize},
{"getftime", 1, 1, f_getftime},
{"getftype", 1, 1, f_getftype},
{"getline", 1, 1, f_getline},
{"getreg", 0, 1, f_getreg},
{"getregtype", 0, 1, f_getregtype},
@ -2941,7 +2945,7 @@ static struct fst
{"wincol", 0, 0, f_wincol},
{"winheight", 1, 1, f_winheight},
{"winline", 0, 0, f_winline},
{"winnr", 0, 0, f_winnr},
{"winnr", 0, 1, f_winnr},
{"winrestcmd", 0, 0, f_winrestcmd},
{"winwidth", 1, 1, f_winwidth},
};
@ -4577,6 +4581,38 @@ f_getcwd(argvars, retvar)
}
}
/*
* "getfperm({fname})" function
*/
static void
f_getfperm(argvars, retvar)
VAR argvars;
VAR retvar;
{
char_u *fname;
struct stat st;
char_u *perm = NULL;
char_u flags[] = "rwx";
int i;
fname = get_var_string(&argvars[0]);
retvar->var_type = VAR_STRING;
if (mch_stat((char *)fname, &st) >= 0)
{
perm = vim_strsave((char_u *)"---------");
if (perm != NULL)
{
for (i = 0; i < 9; i++)
{
if (st.st_mode & (1 << (8 - i)))
perm[i] = flags[i % 3];
}
}
}
retvar->var_val.var_string = perm;
}
/*
* "getfsize({fname})" function
*/
@ -4622,6 +4658,86 @@ f_getftime(argvars, retvar)
retvar->var_val.var_number = -1;
}
/*
* "getftype({fname})" function
*/
static void
f_getftype(argvars, retvar)
VAR argvars;
VAR retvar;
{
char_u *fname;
struct stat st;
char_u *type = NULL;
char *t;
fname = get_var_string(&argvars[0]);
retvar->var_type = VAR_STRING;
if (mch_lstat((char *)fname, &st) >= 0)
{
#ifdef S_ISREG
if (S_ISREG(st.st_mode))
t = "file";
else if (S_ISDIR(st.st_mode))
t = "dir";
# ifdef S_ISLNK
else if (S_ISLNK(st.st_mode))
t = "link";
# endif
# ifdef S_ISBLK
else if (S_ISBLK(st.st_mode))
t = "bdev";
# endif
# ifdef S_ISCHR
else if (S_ISCHR(st.st_mode))
t = "cdev";
# endif
# ifdef S_ISFIFO
else if (S_ISFIFO(st.st_mode))
t = "fifo";
# endif
# ifdef S_ISSOCK
else if (S_ISSOCK(st.st_mode))
t = "fifo";
# endif
else
t = "other";
#else
# ifdef S_IFMT
switch (st.st_mode & S_IFMT)
{
case S_IFREG: t = "file"; break;
case S_IFDIR: t = "dir"; break;
# ifdef S_IFLNK
case S_IFLNK: t = "link"; break;
# endif
# ifdef S_IFBLK
case S_IFBLK: t = "bdev"; break;
# endif
# ifdef S_IFCHR
case S_IFCHR: t = "cdev"; break;
# endif
# ifdef S_IFIFO
case S_IFIFO: t = "fifo"; break;
# endif
# ifdef S_IFSOCK
case S_IFSOCK: t = "socket"; break;
# endif
default: t = "other";
}
# else
if (mch_isdir(fname))
t = "dir";
else
t = "file";
# endif
#endif
type = vim_strsave((char_u *)t);
}
retvar->var_val.var_string = type;
}
/*
* "getreg()" function
*/
@ -6305,6 +6421,10 @@ f_simplify(argvars, retvar)
retvar->var_type = VAR_STRING;
}
#define SP_NOMOVE 1 /* don't move cursor */
#define SP_REPEAT 2 /* repeat to find outer pair */
#define SP_RETCOUNT 4 /* return matchcount */
/*
* "search()" function
*/
@ -6315,13 +6435,24 @@ f_search(argvars, retvar)
{
char_u *pat;
pos_T pos;
pos_T save_cursor;
int save_p_ws = p_ws;
int dir;
int flags = 0;
retvar->var_val.var_number = 0; /* default: FAIL */
pat = get_var_string(&argvars[0]);
dir = get_search_arg(&argvars[1], NULL); /* may set p_ws */
dir = get_search_arg(&argvars[1], &flags); /* may set p_ws */
if (dir == 0)
goto theend;
if ((flags & ~SP_NOMOVE) != 0)
{
EMSG2(_(e_invarg2), get_var_string(&argvars[1]));
goto theend;
}
pos = curwin->w_cursor;
pos = save_cursor = curwin->w_cursor;
if (searchit(curwin, curbuf, &pos, dir, pat, 1L,
SEARCH_KEEP, RE_SEARCH) != FAIL)
{
@ -6331,15 +6462,14 @@ f_search(argvars, retvar)
* correct that here */
check_cursor();
}
else
retvar->var_val.var_number = 0;
/* If 'n' flag is used: restore cursor position. */
if (flags & SP_NOMOVE)
curwin->w_cursor = save_cursor;
theend:
p_ws = save_p_ws;
}
#define SP_NOMOVE 1 /* don't move cursor */
#define SP_REPEAT 2 /* repeat to find outer pair */
#define SP_RETCOUNT 4 /* return matchcount */
/*
* "searchpair()" function
*/
@ -6393,6 +6523,8 @@ f_searchpair(argvars, retvar)
/* Handle the optional fourth argument: flags */
dir = get_search_arg(&argvars[3], &flags); /* may set p_ws */
if (dir == 0)
goto theend;
/* Optional fifth argument: skip expresion */
if (argvars[3].var_type == VAR_UNKNOWN
@ -6474,6 +6606,11 @@ theend:
p_cpo = save_cpo;
}
/*
* Get flags for a search function.
* Possibly sets "p_ws".
* Returns BACKWARD, FORWARD or zero (for an error).
*/
static int
get_search_arg(varp, flagsp)
VAR varp;
@ -6482,24 +6619,37 @@ get_search_arg(varp, flagsp)
int dir = FORWARD;
char_u *flags;
char_u nbuf[NUMBUFLEN];
int mask;
if (varp->var_type != VAR_UNKNOWN)
{
flags = get_var_string_buf(varp, nbuf);
if (vim_strchr(flags, 'b') != NULL)
dir = BACKWARD;
if (vim_strchr(flags, 'w') != NULL)
p_ws = TRUE;
if (vim_strchr(flags, 'W') != NULL)
p_ws = FALSE;
if (flagsp != NULL)
while (*flags != NUL)
{
if (vim_strchr(flags, 'n') != NULL)
*flagsp |= SP_NOMOVE;
if (vim_strchr(flags, 'r') != NULL)
*flagsp |= SP_REPEAT;
if (vim_strchr(flags, 'm') != NULL)
*flagsp |= SP_RETCOUNT;
switch (*flags)
{
case 'b': dir = BACKWARD; break;
case 'w': p_ws = TRUE; break;
case 'W': p_ws = FALSE; break;
default: mask = 0;
if (flagsp != NULL)
switch (*flags)
{
case 'n': mask = SP_NOMOVE; break;
case 'r': mask = SP_REPEAT; break;
case 'm': mask = SP_RETCOUNT; break;
}
if (mask == 0)
{
EMSG2(_(e_invarg2), flags);
dir = 0;
}
else
*flagsp |= mask;
}
if (dir == 0)
break;
++flags;
}
}
return dir;
@ -7648,7 +7798,9 @@ f_tr(argvars, retvar)
/* not multi-byte: fromstr and tostr must be the same length */
if (STRLEN(fromstr) != STRLEN(tostr))
{
#ifdef FEAT_MBYTE
error:
#endif
EMSG2(_(e_invarg2), fromstr);
ga_clear(&ga);
return;
@ -7859,9 +8011,30 @@ f_winnr(argvars, retvar)
int nr = 1;
#ifdef FEAT_WINDOWS
win_T *wp;
win_T *twin = curwin;
char_u *arg;
for (wp = firstwin; wp != curwin; wp = wp->w_next)
++nr;
if (argvars[0].var_type != VAR_UNKNOWN)
{
arg = get_var_string(&argvars[0]);
if (STRCMP(arg, "$") == 0)
twin = lastwin;
else if (STRCMP(arg, "#") == 0)
{
twin = prevwin;
if (prevwin == NULL)
nr = 0;
}
else
{
EMSG2(_(e_invexpr2), arg);
nr = 0;
}
}
if (nr > 0)
for (wp = firstwin; wp != twin; wp = wp->w_next)
++nr;
#endif
retvar->var_val.var_number = nr;
}

View File

@ -3806,6 +3806,7 @@ static struct prt_ps_font_S prt_ps_courier_font =
{"Courier", "Courier-Bold", "Courier-Oblique", "Courier-BoldOblique"}
};
#ifdef FEAT_MBYTE
/* Generic font metrics for multi-byte fonts */
static struct prt_ps_font_S prt_ps_mb_font =
{
@ -3814,6 +3815,7 @@ static struct prt_ps_font_S prt_ps_mb_font =
-250, 805,
{NULL, NULL, NULL, NULL}
};
#endif
/* Pointer to current font set being used */
static struct prt_ps_font_S* prt_ps_font;
@ -3822,8 +3824,8 @@ static struct prt_ps_font_S* prt_ps_font;
* building CID font name */
struct prt_ps_encoding_S
{
char_u *encoding;
char_u *cmap_encoding;
char *encoding;
char *cmap_encoding;
int needs_charset;
};
@ -3834,6 +3836,8 @@ struct prt_ps_charset_S
int has_charset;
};
#ifdef FEAT_MBYTE
#define CS_JIS_C_1978 (0x01)
#define CS_JIS_X_1983 (0x02)
#define CS_JIS_X_1990 (0x04)
@ -4017,6 +4021,7 @@ static struct prt_ps_mbfont_S prt_ps_mbfonts[] =
"KS_X_1992"
}
};
#endif /* FEAT_MBYTE */
struct prt_ps_resource_S
{
@ -4076,7 +4081,7 @@ static char *prt_resource_types[] =
struct prt_dsc_comment_S
{
char_u *string;
char *string;
int len;
int type;
};
@ -4092,11 +4097,11 @@ struct prt_dsc_line_S
#define SIZEOF_CSTR(s) (sizeof(s) - 1)
struct prt_dsc_comment_S prt_dsc_table[] =
{
{PRT_DSC_TITLE, SIZEOF_CSTR(PRT_DSC_TITLE), PRT_DSC_TITLE_TYPE},
{PRT_DSC_TITLE, SIZEOF_CSTR(PRT_DSC_TITLE), PRT_DSC_TITLE_TYPE},
{PRT_DSC_VERSION, SIZEOF_CSTR(PRT_DSC_VERSION),
PRT_DSC_VERSION_TYPE},
PRT_DSC_VERSION_TYPE},
{PRT_DSC_ENDCOMMENTS, SIZEOF_CSTR(PRT_DSC_ENDCOMMENTS),
PRT_DSC_ENDCOMMENTS_TYPE}
PRT_DSC_ENDCOMMENTS_TYPE}
};
static void prt_write_file_raw_len __ARGS((char_u *buffer, int bytes));
@ -4135,6 +4140,7 @@ static int prt_resfile_skip_nonws __ARGS((int offset));
static int prt_resfile_skip_ws __ARGS((int offset));
static int prt_next_dsc __ARGS((struct prt_dsc_line_S *p_dsc_line));
#ifdef FEAT_MBYTE
static int prt_build_cid_fontname __ARGS((int font, char_u *name, int name_len));
static void prt_def_cidfont __ARGS((char *new_name, int height, char *cidfont));
static int prt_match_encoding __ARGS((char *p_encoding, struct prt_ps_mbfont_S *p_cmap, struct prt_ps_encoding_S **pp_mbenc));
static int prt_match_charset __ARGS((char *p_charset, struct prt_ps_mbfont_S *p_cmap, struct prt_ps_charset_S **pp_mbchar));
@ -5097,15 +5103,16 @@ prt_get_cpl()
return (int)((prt_right_margin - prt_left_margin) / prt_char_width);
}
#ifdef FEAT_MBYTE
static int
prt_build_cid_fontname(font, name, name_len)
int font;
char *name;
char_u *name;
int name_len;
{
char *fontname;
fontname = alloc(name_len + 1);
fontname = (char *)alloc(name_len + 1);
if (fontname == NULL)
return FALSE;
STRNCPY(fontname, name, name_len);
@ -5114,6 +5121,7 @@ prt_build_cid_fontname(font, name, name_len)
return TRUE;
}
#endif
/*
* Get number of lines of text that fit on a page (excluding the header).
@ -5152,13 +5160,13 @@ prt_get_lpp()
#ifdef FEAT_MBYTE
static int
prt_match_encoding(p_encoding, p_cmap, pp_mbenc)
char *p_encoding;
struct prt_ps_mbfont_S *p_cmap;
struct prt_ps_encoding_S **pp_mbenc;
char *p_encoding;
struct prt_ps_mbfont_S *p_cmap;
struct prt_ps_encoding_S **pp_mbenc;
{
int mbenc;
int enc_len;
struct prt_ps_encoding_S *p_mbenc;
int mbenc;
int enc_len;
struct prt_ps_encoding_S *p_mbenc;
*pp_mbenc = NULL;
/* Look for recognised encoding */
@ -5178,12 +5186,12 @@ prt_match_encoding(p_encoding, p_cmap, pp_mbenc)
static int
prt_match_charset(p_charset, p_cmap, pp_mbchar)
char *p_charset;
struct prt_ps_mbfont_S *p_cmap;
char *p_charset;
struct prt_ps_mbfont_S *p_cmap;
struct prt_ps_charset_S **pp_mbchar;
{
int mbchar;
int char_len;
int mbchar;
int char_len;
struct prt_ps_charset_S *p_mbchar;
/* Look for recognised character set, using default if one is not given */
@ -5226,7 +5234,7 @@ mch_print_init(psettings, jobname, forceit)
char_u *p_encoding;
struct prt_ps_encoding_S *p_mbenc;
struct prt_ps_encoding_S *p_mbenc_first;
struct prt_ps_charset_S *p_mbchar;
struct prt_ps_charset_S *p_mbchar;
#endif
#if 0
@ -5262,11 +5270,13 @@ mch_print_init(psettings, jobname, forceit)
p_mbenc_first = NULL;
p_mbchar = NULL;
for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++)
if (prt_match_encoding(p_encoding, &prt_ps_mbfonts[cmap], &p_mbenc))
if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
&p_mbenc))
{
if (p_mbenc_first == NULL)
p_mbenc_first = p_mbenc;
if (prt_match_charset(p_pmcs, &prt_ps_mbfonts[cmap], &p_mbchar))
if (prt_match_charset((char *)p_pmcs, &prt_ps_mbfonts[cmap],
&p_mbchar))
break;
}
@ -5343,8 +5353,8 @@ mch_print_init(psettings, jobname, forceit)
return FALSE;
if (mbfont_opts[OPT_MBFONT_BOLDOBLIQUE].present)
if (!prt_build_cid_fontname(PRT_PS_FONT_BOLDOBLIQUE,
mbfont_opts[OPT_MBFONT_BOLDOBLIQUE].string,
mbfont_opts[OPT_MBFONT_BOLDOBLIQUE].strlen))
mbfont_opts[OPT_MBFONT_BOLDOBLIQUE].string,
mbfont_opts[OPT_MBFONT_BOLDOBLIQUE].strlen))
return FALSE;
/* Check if need to use Courier for ASCII code range, and if so pick up
@ -5555,8 +5565,8 @@ prt_add_resource(resource)
EMSG2(_("E456: Can't open file \"%s\""), resource->filename);
return FALSE;
}
prt_dsc_resources("BeginResource",
prt_resource_types[resource->type], resource->title);
prt_dsc_resources("BeginResource", prt_resource_types[resource->type],
(char *)resource->title);
prt_dsc_textline("BeginDocument", (char *)resource->filename);
@ -5602,7 +5612,7 @@ mch_print_begin(psettings)
double bottom;
struct prt_ps_resource_S res_prolog;
struct prt_ps_resource_S res_encoding;
char_u buffer[256];
char buffer[256];
char_u *p_encoding;
#ifdef FEAT_MBYTE
struct prt_ps_resource_S res_cidfont;
@ -5614,7 +5624,7 @@ mch_print_begin(psettings)
*/
prt_dsc_start();
prt_dsc_textline("Title", (char *)psettings->jobname);
if (!get_user_name(buffer, 256))
if (!get_user_name((char_u *)buffer, 256))
STRCPY(buffer, "Unknown");
prt_dsc_textline("For", buffer);
prt_dsc_textline("Creator", VIM_VERSION_LONG);
@ -5757,7 +5767,7 @@ mch_print_begin(psettings)
if (!prt_find_resource(prt_ascii_encoding, &res_encoding))
{
EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
prt_ascii_encoding);
prt_ascii_encoding);
return FALSE;
}
if (!prt_open_resource(&res_encoding))
@ -5786,7 +5796,7 @@ mch_print_begin(psettings)
if (!prt_find_resource(prt_cmap, &res_cmap))
{
EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
prt_cmap);
prt_cmap);
return FALSE;
}
if (!prt_open_resource(&res_cmap))
@ -5911,7 +5921,7 @@ mch_print_begin(psettings)
/* When using Courier for ASCII range when printing multi-byte, need to
* pick up ASCII encoding to use with it. */
if (prt_use_courier)
p_encoding = prt_ascii_encoding;
p_encoding = (char_u *)prt_ascii_encoding;
#endif
prt_dsc_resources("IncludeResource", "font",
prt_ps_courier_font.ps_fontname[PRT_PS_FONT_ROMAN]);
@ -6015,7 +6025,7 @@ mch_print_end(psettings)
/* Write CTRL-D to close serial communication link if used.
* NOTHING MUST BE WRITTEN AFTER THIS! */
prt_write_file(IF_EB("\004", "\067"));
prt_write_file((char_u *)IF_EB("\004", "\067"));
if (!prt_file_error && psettings->outfile == NULL
&& !got_int && !psettings->user_abort)
@ -6274,7 +6284,7 @@ mch_print_text_out(p, len)
*/
do
{
ch = prt_hexchar[(*p) >> 4];
ch = prt_hexchar[(unsigned)(*p) >> 4];
ga_append(&prt_ps_buffer, ch);
ch = prt_hexchar[(*p) & 0xf];
ga_append(&prt_ps_buffer, ch);

View File

@ -29,7 +29,7 @@
#include <qmessagebox.h>
#include <qiconset.h>
#include <qtextcodec.h>
#include "gui_kde_widget.h"
#include "gui_kde_wid.h"
extern "C" {
#include "vim.h"

View File

@ -43,10 +43,11 @@
#include <kmenubar.h>
#include <ktoolbar.h>
#include <kstandarddirs.h>
#include "gui_kde_widget.h"
#include "gui_kde_wid.h"
#include <qxembed.h>
extern "C" {
extern "C"
{
#include "version.h"
}
@ -187,25 +188,19 @@ void VimWidget::mousePressEvent(QMouseEvent *event)//{{{
ButtonState buttons = event->button();
//Look at button states
if(buttons & QMouseEvent::LeftButton) {
button|=MOUSE_LEFT;
}
if(buttons & QMouseEvent::RightButton) {
button|=MOUSE_RIGHT;
}
if(buttons & QMouseEvent::MidButton) {
button|=MOUSE_MIDDLE;
}
if (buttons & QMouseEvent::LeftButton)
button |= MOUSE_LEFT;
if (buttons & QMouseEvent::RightButton)
button |= MOUSE_RIGHT;
if (buttons & QMouseEvent::MidButton)
button |= MOUSE_MIDDLE;
//Look for keyboard modifiers
if(state & QMouseEvent::ShiftButton) {
modifiers|=MOUSE_SHIFT;
}
if(state & QMouseEvent::ControlButton){
modifiers|=MOUSE_CTRL;
}
if(state & QMouseEvent::AltButton){
modifiers|=MOUSE_ALT;
}
if (state & QMouseEvent::ShiftButton)
modifiers |= MOUSE_SHIFT;
if (state & QMouseEvent::ControlButton)
modifiers |= MOUSE_CTRL;
if (state & QMouseEvent::AltButton)
modifiers |= MOUSE_ALT;
gui_send_mouse_event(button,event->x(),event->y(),FALSE,modifiers);
#if QT_VERSION>=300
QByteArray params;
@ -254,11 +249,11 @@ void VimMainWindow::wheelEvent (QWheelEvent *event)//{{{
button|=MOUSE_4;
else button|=MOUSE_5;
if(state & ShiftButton)
if (state & ShiftButton)
modifiers|=MOUSE_SHIFT;
if(state & ControlButton)
if (state & ControlButton)
modifiers|=MOUSE_CTRL;
if(state & AltButton)
if (state & AltButton)
modifiers|=MOUSE_ALT;
gui_send_mouse_event(button,event->x(),event->y(),FALSE,modifiers);
@ -279,19 +274,19 @@ void VimWidget::mouseDoubleClickEvent(QMouseEvent *event)//{{{
int button=0;
//Look at button states
if(buttons & LeftButton)
if (buttons & LeftButton)
button|=MOUSE_LEFT;
if(buttons & RightButton)
if (buttons & RightButton)
button|=MOUSE_RIGHT;
if(buttons & MidButton)
if (buttons & MidButton)
button|=MOUSE_MIDDLE;
//Look for keyboard modifiers
if(state & ShiftButton)
if (state & ShiftButton)
modifiers|=MOUSE_SHIFT;
if(state & ControlButton)
if (state & ControlButton)
modifiers|=MOUSE_CTRL;
if(state & AltButton)
if (state & AltButton)
modifiers|=MOUSE_ALT;
gui_send_mouse_event(button,event->x(),event->y(),TRUE,modifiers);
@ -313,15 +308,15 @@ void VimWidget::mouseMoveEvent(QMouseEvent *event){//{{{
//Look at button states
//warning: we use state here, this is important !
if(state & QMouseEvent::LeftButton || state & QMouseEvent::RightButton || state & QMouseEvent::MidButton)
if (state & QMouseEvent::LeftButton || state & QMouseEvent::RightButton || state & QMouseEvent::MidButton)
button|=MOUSE_DRAG;
//Look for keyboard modifiers
if(state & ShiftButton)
if (state & ShiftButton)
modifiers|=MOUSE_SHIFT;
if(state & ControlButton)
if (state & ControlButton)
modifiers|=MOUSE_CTRL;
if(state & AltButton)
if (state & AltButton)
modifiers|=MOUSE_ALT;
if (button!=MOUSE_DRAG)
gui_mouse_moved(event->x(),event->y());
@ -335,11 +330,11 @@ void VimWidget::mouseReleaseEvent(QMouseEvent *event)//{{{
int modifiers=0;
//Look for keyboard modifiers
if(state & ShiftButton)
if (state & ShiftButton)
modifiers|=MOUSE_SHIFT;
if(state & ControlButton)
if (state & ControlButton)
modifiers|=MOUSE_CTRL;
if(state & AltButton)
if (state & AltButton)
modifiers|=MOUSE_ALT;
gui_send_mouse_event(MOUSE_RELEASE,event->x(),event->y(),FALSE,modifiers);
@ -454,21 +449,25 @@ void VimWidget::dropEvent (QDropEvent *e) // {{{
/* Count how many items there may be and normalize delimiters. */
if (QUriDrag::decode(e, urls)) {
if (QUriDrag::decode(e, urls))
{
n = urls.count();
fnames = (char_u **)lalloc((n+1) * sizeof(char_u *), TRUE);
nfiles = 0;
#if QT_VERSION>=300
QPtrListIterator<char> it(urls);
for( ; it.current(); ++it ) {
for (; it.current(); ++it )
{
KURL u(*it);
#else
for (i=0;i<urls.count();++i) {
for (i=0;i<urls.count();++i)
{
KURL u(urls.at(i));
#endif
if ( !u.isLocalFile() )
url = TRUE;
else {
else
{
fnames[nfiles] = (char_u *)strdup((const char *)u.path());
++nfiles;
}
@ -488,7 +487,9 @@ void VimWidget::dropEvent (QDropEvent *e) // {{{
redo_dirs = TRUE;
}
}
} else {
}
else
{
/* Ignore any directories */
for (i = 0; i < nfiles; ++i)
{
@ -505,7 +506,9 @@ void VimWidget::dropEvent (QDropEvent *e) // {{{
/* Shift held down, change to first file's directory */
if (fnames[0] != NULL && vim_chdirfile(fnames[0]) == OK)
redo_dirs = TRUE;
} else {
}
else
{
char_u dirname[MAXPATHL];
char_u *s;
if (mch_dirname(dirname, MAXPATHL) == OK)
@ -561,7 +564,8 @@ void gui_keypress(QKeyEvent *e) { // {{{
// ignore certain keys
if (key == Qt::Key_Shift || key == Qt::Key_Alt || key == Qt::Key_Control || key == Qt::Key_Meta
|| key == Qt::Key_CapsLock || key == Qt::Key_NumLock || key == Qt::Key_ScrollLock ) {
|| key == Qt::Key_CapsLock || key == Qt::Key_NumLock || key == Qt::Key_ScrollLock )
{
e->ignore();
return;
}
@ -591,13 +595,13 @@ void gui_keypress(QKeyEvent *e) { // {{{
// change shift-tab (backtab) into S_TAB
if ( key == Qt::Key_BackTab && state & Qt::ShiftButton) {
if ( key == Qt::Key_BackTab && state & Qt::ShiftButton)
key = Qt::Key_Tab;
}
// Change C-@ and C-2 in NUL ? Gtk does this
if ( (key == Qt::Key_2 || key == Qt::Key_At)
&& state & Qt::ControlButton ) {
&& state & Qt::ControlButton )
{
string[0] = NUL;
len = 1;
}
@ -639,7 +643,8 @@ void gui_keypress(QKeyEvent *e) { // {{{
if (len == 0 || key == Qt::Key_BackSpace || key == Qt::Key_Delete)
{
while (special_keys[i].qtkey != 0 && special_keys[i].qtkey != key ) i++;
if (special_keys[i].qtkey != 0) {
if (special_keys[i].qtkey != 0)
{
string[0] = CSI;
string[1] = special_keys[i].code0;
string[2] = special_keys[i].code1;
@ -648,7 +653,8 @@ void gui_keypress(QKeyEvent *e) { // {{{
/*
for (i = 0; special_keys[i].qtkey != 0 ; i++)
{
if (special_keys[i].qtkey == key ) {
if (special_keys[i].qtkey == key )
{
string[0] = CSI;
string[1] = special_keys[i].code0;
string[2] = special_keys[i].code1;
@ -658,7 +664,8 @@ void gui_keypress(QKeyEvent *e) { // {{{
}*/
}
if (len == 0) {
if (len == 0)
{
//no need to dump that, that's a QT problem, we can't do anything
//dbf("Unrecognised Key : %X %s", key, e->text().latin1());
e->ignore();
@ -669,7 +676,8 @@ void gui_keypress(QKeyEvent *e) { // {{{
/* Special keys (and a few others) may have modifiers */
if (len == -3 || key == Qt::Key_Space || key == Qt::Key_Tab ||
key == Qt::Key_Return || key == Qt::Key_Enter ||
key == Qt::Key_Escape) {
key == Qt::Key_Escape)
{
modifiers = 0;
if (state & Qt::ShiftButton) modifiers |= MOD_MASK_SHIFT;
@ -689,18 +697,22 @@ void gui_keypress(QKeyEvent *e) { // {{{
key = simplify_key(key, &modifiers);
if (key == CSI) key=K_CSI;
if (IS_SPECIAL(key)) {
if (IS_SPECIAL(key))
{
string[0] = CSI;
string[1] = K_SECOND(key);
string[2] = K_THIRD(key);
len = 3;
} else {
}
else
{
string[0] = key;
len = 1;
}
if (modifiers!=0) {
if (modifiers!=0)
{
uchar string2[10];
string2[0] = CSI;
string2[1] = KS_MODIFIER;
@ -718,9 +730,9 @@ void gui_keypress(QKeyEvent *e) { // {{{
}
add_to_input_buf(string, len);
if (p_mh) {
if (p_mh)
gui_mch_mousehide(TRUE);
}
//DCOP Embedding stuff
//if we are here then the user has type something in the window, thus we can easily imagine that :
// 1 - text has changed (emit textChanged())
@ -744,21 +756,24 @@ void gui_keypress(QKeyEvent *e) { // {{{
#ifdef FEAT_CLIENTSERVER
void VimWidget::serverActivate(WId id) //{{{
{
if (serverName == NULL && serverDelayedStartName != NULL) {
if (serverName == NULL && serverDelayedStartName != NULL)
{
commWindow = id;
(void)serverRegisterName(qt_xdisplay(), serverDelayedStartName);
} else {
serverChangeRegisteredWindow( qt_xdisplay(), id );
}
else
serverChangeRegisteredWindow( qt_xdisplay(), id);
}//}}}
#endif
#ifdef FEAT_XIM
void VimWidget::imStartEvent(QIMEvent *e) {
void VimWidget::imStartEvent(QIMEvent *e)
{
e->accept();
}
void VimWidget::imEndEvent(QIMEvent *e) {
void VimWidget::imEndEvent(QIMEvent *e)
{
uchar string[256];
QCString unistring = vmw->codec->fromUnicode(e->text());
@ -771,7 +786,8 @@ void VimWidget::imEndEvent(QIMEvent *e) {
e->accept();
}
void VimWidget::imComposeEvent(QIMEvent *e) {
void VimWidget::imComposeEvent(QIMEvent *e)
{
//i should do something here, displaying the text somewhere ... (status area ?)
e->accept();
}
@ -851,7 +867,8 @@ void VimWidget::start_cursor_blinking()//{{{
if (blink_timer.isActive()) blink_timer.stop();
/* Only switch blinking on if none of the times is zero */
if (blink_wait_time && blink_on_time && blink_off_time && gui.in_focus) {
if (blink_wait_time && blink_on_time && blink_off_time && gui.in_focus)
{
blink_state = BLINK_ON;
gui_update_cursor(TRUE, FALSE);
// The first blink appears after wait_time
@ -861,12 +878,15 @@ void VimWidget::start_cursor_blinking()//{{{
void VimWidget::blink_cursor()//{{{
{
if (blink_state == BLINK_ON) {
if (blink_state == BLINK_ON)
{
// set cursor off
gui_undraw_cursor();
blink_state = BLINK_OFF;
blink_timer.start( blink_off_time, true);
} else {
}
else
{
// set cursor on
gui_update_cursor(TRUE, FALSE);
blink_state = BLINK_ON;
@ -926,7 +946,8 @@ void VimWidget::flash()//{{{
#ifdef FEAT_CLIENTSERVER
oldFilter = qt_set_x11_event_filter( kvim_x11_event_filter );
#endif
if (echo_wid_arg== 1) {
if (echo_wid_arg== 1)
{
fprintf(stderr, "WID: %ld\n", (long)winId());
fflush(stderr);
}
@ -988,26 +1009,23 @@ void VimMainWindow::menu_activated(int dx)//{{{
void VimMainWindow::clipboard_selection_update(){//{{{
if(kapp->clipboard()->ownsSelection()) {
if (kapp->clipboard()->ownsSelection())
clip_own_selection(&clip_star);
} else {
else
clip_lose_selection(&clip_star);
}
}//}}}
void VimMainWindow::clipboard_data_update(){//{{{
#if QT_VERSION>=300
if (kapp->clipboard()->ownsClipboard()) {
if (kapp->clipboard()->ownsClipboard())
clip_own_selection(&clip_plus);
} else {
else
clip_lose_selection(&clip_plus);
}
#else
if (kapp->clipboard()->ownsSelection()) {
if (kapp->clipboard()->ownsSelection())
clip_own_selection(&clip_star);
} else {
else
clip_lose_selection(&clip_star);
}
#endif
}//}}}
@ -1182,17 +1200,20 @@ Vim releases instead of the text that was included with it.");
about->show();
}//}}}
void VimMainWindow::showTipOfTheDay() {
void VimMainWindow::showTipOfTheDay()
{
#if QT_VERSION>=300
KTipDialog::showTip (vmw,QString::null,true);
#endif
}
void VimMainWindow::buffersToolbar() {
void VimMainWindow::buffersToolbar()
{
}
void VimMainWindow::showBugReport() {
void VimMainWindow::showBugReport()
{
KBugReport *bug= new KBugReport(this,true);
bug->show();
}
@ -1217,7 +1238,8 @@ VimDialog::VimDialog (int type, /* type of dialog *///{{{
* Create Icon
*/
char ** icon_data;
switch (type) {
switch (type)
{
case VIM_GENERIC:
icon_data = generic_xpm;
break;
@ -1255,25 +1277,29 @@ VimDialog::VimDialog (int type, /* type of dialog *///{{{
hly1->addWidget( icon );
hly1->addWidget( text );
QHBoxLayout * hly3 = new QHBoxLayout ( vly , 5);
if (textfield!=NULL) {
if (textfield!=NULL)
{
entry = new QLineEdit((const char *)textfield,this);
entry->setText((const char *)textfield);
hly3->addWidget( entry );
ret=textfield;
} else entry=NULL;
}
else
entry=NULL;
QHBoxLayout * hly2 = new QHBoxLayout( vly, 15);
QString s;
QPushButton * pushButton = 0L;
for( int i=0; i<butNb; i++) {
for (int i=0; i<butNb; i++)
{
s = buttonText[i];
pushButton = new QPushButton(s, this );
if (s.find('&') != -1) {
pushButton->setAccel( s.at(s.find('&')+1).latin1() );
}
if (s.find('&') != -1)
pushButton->setAccel(s.at(s.find('&')+1).latin1());
hly2->addWidget( pushButton );
if (i == def_but-1) {
if (i == def_but-1)
{
pushButton->setDefault( true );
pushButton->setAutoDefault( true );
setResult( i+1 );
@ -1288,12 +1314,16 @@ VimDialog::VimDialog (int type, /* type of dialog *///{{{
vly->activate();
}//}}}
void VimDialog::done(int r) {
if (entry!=NULL) {
if (r) {
void VimDialog::done(int r)
{
if (entry!=NULL)
{
if (r)
{
QCString unistring=vmw->codec->fromUnicode(entry->text());
STRCPY(ret,(const char*)unistring);
} else
}
else
*ret=NUL;
}
QDialog::done(r);
@ -1311,7 +1341,8 @@ SBPool::SBPool(void)//{{{
void SBPool::create(GuiScrollbar * sb, int orient)//{{{
{
switch(orient) {
switch(orient)
{
case SBAR_HORIZ:
sb->w = new QScrollBar(QScrollBar::Horizontal, vmw);
break;
@ -1349,9 +1380,8 @@ static int kvim_x11_event_filter( XEvent* e)//{{{
if (e->xproperty.type == PropertyNotify
&& e->xproperty.atom == commProperty
&& e->xproperty.window == commWindow
&& e->xproperty.state == PropertyNewValue ) {
&& e->xproperty.state == PropertyNewValue)
serverEventProc(qt_xdisplay(), e);
}
if (oldFilter) return oldFilter( e );
return FALSE;
@ -1381,29 +1411,31 @@ bool KVimUtils::fromString(QFont *f, QString descrip)
QStringList l(QStringList::split(',', descrip));
int count = l.count();
if (count != 10 && count != 9) {
if (count != 10 && count != 9)
return FALSE;
}
f->setFamily(l[0]);
f->setPointSize(l[1].toInt());
if ( count == 9 ) {
f->setStyleHint((QFont::StyleHint) l[2].toInt());
f->setWeight(l[3].toInt());
f->setItalic(l[4].toInt());
f->setUnderline(l[5].toInt());
f->setStrikeOut(l[6].toInt());
f->setFixedPitch(l[7].toInt());
f->setRawMode(l[8].toInt());
} else {
f->setPixelSize(l[2].toInt());
f->setStyleHint((QFont::StyleHint) l[3].toInt());
f->setWeight(l[4].toInt());
f->setItalic(l[5].toInt());
f->setUnderline(l[6].toInt());
f->setStrikeOut(l[7].toInt());
f->setFixedPitch(l[8].toInt());
f->setRawMode(l[9].toInt());
if ( count == 9 )
{
f->setStyleHint((QFont::StyleHint) l[2].toInt());
f->setWeight(l[3].toInt());
f->setItalic(l[4].toInt());
f->setUnderline(l[5].toInt());
f->setStrikeOut(l[6].toInt());
f->setFixedPitch(l[7].toInt());
f->setRawMode(l[8].toInt());
}
else
{
f->setPixelSize(l[2].toInt());
f->setStyleHint((QFont::StyleHint) l[3].toInt());
f->setWeight(l[4].toInt());
f->setItalic(l[5].toInt());
f->setUnderline(l[6].toInt());
f->setStrikeOut(l[7].toInt());
f->setFixedPitch(l[8].toInt());
f->setRawMode(l[9].toInt());
}
return TRUE;
}

View File

@ -96,14 +96,14 @@ public:
void disable_mzscheme_threads();
#endif
void flash();
/** DCOP */
void execNormal(QString command);
void execInsert(QString command);
void execRaw(QString command);
void execCmd(QString command);
QString eval(QString expr);
bool wait_done;
BlinkState blink_state;
QPainter *painter;
@ -134,7 +134,7 @@ protected:
/* wait for input */
QTimer wait_timer;
#ifdef FEAT_MZSCHEME
int mzscheme_timer_id;
#endif

View File

@ -45,7 +45,7 @@
#include <qfont.h>
#include "gui_kde_widget.h"
#include "gui_kde_wid.h"
extern "C" {

View File

@ -2731,6 +2731,7 @@ StringToLine(PyObject *obj)
char *save;
int len;
int i;
char *p;
if (obj == NULL || !PyString_Check(obj))
{
@ -2741,14 +2742,22 @@ StringToLine(PyObject *obj)
str = PyString_AsString(obj);
len = PyString_Size(obj);
/* Error checking: String must not contain newlines, as we
/*
* Error checking: String must not contain newlines, as we
* are replacing a single line, and we must replace it with
* a single line.
* A trailing newline is removed, so that append(f.readlines()) works.
*/
if (memchr(str, '\n', len))
p = memchr(str, '\n', len);
if (p != NULL)
{
PyErr_SetVim(_("string cannot contain newlines"));
return NULL;
if (p == str + len - 1)
--len;
else
{
PyErr_SetVim(_("string cannot contain newlines"));
return NULL;
}
}
/* Create a copy of the string, with internal nulls replaced by

View File

@ -100,9 +100,9 @@ prefix = `os.path.expanduser(prefix)`
GUI_TESTTARGET = gui
KDE
GUI_SRC = gui.c pty.c gui_kde.cc gui_kde_x11.cc
gui_kde_widget_moc.cc
gui_kde_wid_moc.cc
kvim_iface_skel.cc
GUI_OBJ = $BDIR/gui_kde_widget.o
GUI_OBJ = $BDIR/gui_kde_wid.o
GUI_DEFS = -DFEAT_GUI_KDE $NARROW_PROTO
GUI_IPATH = $GUI_INC_LOC
GUI_LIBS_DIR = $GUI_LIB_LOC
@ -218,7 +218,7 @@ test check:
testclean {virtual}:
:del {force} testdir/*.out testdir/test.log
CLEANFILES += gui_kde_widget_moc.cc kvim_iface_skel.cc *.kidl
CLEANFILES += gui_kde_wid_moc.cc kvim_iface_skel.cc *.kidl
# When no fetch target exists we are not a child of the ../main.aap recipe,
# Use ../main.aap to do the fetching.
@ -356,18 +356,18 @@ auto/if_perl.c: if_perl.xs
:sys $PERL $PERLLIB/ExtUtils/xsubpp -prototypes -typemap \
$PERLLIB/ExtUtils/typemap if_perl.xs >> $target
$BDIR/gui_kde_widget.o: gui_kde_widget.cc
:sys $MOC -o gui_kde_widget_moc.cc gui_kde_widget.h
$BDIR/gui_kde_wid.o: gui_kde_wid.cc
:sys $MOC -o gui_kde_wid_moc.cc gui_kde_wid.h
@try:
:sys $KDE_PREFIX/bin/dcopidl kvim_iface.h > kvim_iface.kidl
@except:
:del {f} kvim_iface.kidl
:sys $KDE_PREFIX/bin/dcopidl2cpp --c++-suffix cc --no-stub kvim_iface.kidl
:do compile gui_kde_widget.cc
:do compile gui_kde_wid.cc
gui_kde_widget_moc.cc: $BDIR/gui_kde_widget.o
gui_kde_wid_moc.cc: $BDIR/gui_kde_wid.o
kvim_iface_skel.cc: $BDIR/gui_kde_widget.o
kvim_iface_skel.cc: $BDIR/gui_kde_wid.o
auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in

View File

@ -4338,8 +4338,17 @@ ml_find_line_or_offset(buf, line, offp)
curline = buf->b_ml.ml_locked_high + 1;
}
if (ffdos)
size += line - 1;
if (line != 0)
{
/* Count extra CR characters. */
if (ffdos)
size += line - 1;
/* Don't count the last line break if 'bin' and 'noeol'. */
if (buf->b_p_bin && !buf->b_p_eol)
size -= ffdos + 1;
}
return size;
}

View File

@ -3606,8 +3606,7 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir,
}
/* Store information on starting dir now if path is relative.
* If path is absolute, we do that later.
*/
* If path is absolute, we do that later. */
if (path[0] == '.'
&& (vim_ispathsep(path[1]) || path[1] == NUL)
&& (!tagfile || vim_strchr(p_cpo, CPO_DOTTAG) == NULL)
@ -3886,7 +3885,7 @@ vim_findfile_cleanup(ctx)
* Return a pointer to an allocated file name or NULL if nothing found.
* To get all matching files call this function until you get NULL.
*
* If the passed search_context is NULL, it the returns NULL.
* If the passed search_context is NULL, NULL is returned.
*
* The search algorithm is depth first. To change this replace the
* stack with a list (don't forget to leave partly searched directories on the

View File

@ -1129,7 +1129,7 @@ do_execreg(regname, colon, addcr)
new_last_cmdline = NULL;
/* Escape all control characters with a CTRL-V */
p = vim_strsave_escaped_ext(last_cmdline,
"\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", Ctrl_V, FALSE);
(char_u *)"\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", Ctrl_V, FALSE);
if (p != NULL)
retval = put_in_typebuf(p, TRUE);
vim_free(p);

View File

@ -119,8 +119,8 @@
* ~/Library/Vim or ~/Library/Preferences/org.vim.vim/ ? (Dany)
*/
/* When compiled under MacOS X (including CARBON version)
* we use the Unix File path style */
#if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX
* we use the Unix File path style. Also when UNIX is defined. */
#if defined(UNIX) || (defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX)
# undef COLON_AS_PATHSEP
# define USE_UNIXFILENAME
#else
@ -140,14 +140,16 @@
#define CASE_INSENSITIVE_FILENAME /* ignore case when comparing file names */
#define SPACE_IN_FILENAME
#define BREAKCHECK_SKIP 32 /* call mch_breakcheck() each time, it's
quite fast. Did I forgot to update the comment */
quite fast. Did I forgot to update the
comment */
#undef USE_FNAME_CASE /* So that :e os_Mac.c, :w, save back the file as os_mac.c */
#undef USE_FNAME_CASE /* So that :e os_Mac.c, :w, save back the file
as os_mac.c */
#define BINARY_FILE_IO
#define EOL_DEFAULT EOL_MAC
#ifndef MACOS_X_UNIX /* I hope that switching these two lines */
# define USE_CR /* does what I want -- BNF */
#ifndef MACOS_X_UNIX /* I hope that switching these two lines */
# define USE_CR /* does what I want -- BNF */
# define NO_CONSOLE /* don't include console mode */
#endif
#define HAVE_AVAIL_MEM

View File

@ -16,6 +16,7 @@
#define NO_X11_INCLUDES
#include "vim.h"
#ifdef FEAT_MBYTE
extern char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, int from, int to, int *unconvlenp));
extern int macroman2enc __ARGS((char_u *ptr, long *sizep, long real_size));
extern int enc2macroman __ARGS((char_u *from, size_t fromlen, char_u *to, int *tolenp, int maxtolen, char_u *rest, int *restlenp));
@ -228,3 +229,5 @@ enc2macroman(from, fromlen, to, tolenp, maxtolen, rest, restlenp)
*tolenp = l;
return OK;
}
#endif /* FEAT_MBYTE */

View File

@ -1239,7 +1239,7 @@ msgstr "E173: 1
#: ex_docmd.c:4584
#, c-format
msgid "E173: %ld more files to edit"
msgstr "E173: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (%d)."
msgstr "E173: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (%ld)."
#: ex_docmd.c:4679
msgid "E174: Command already exists: add ! to replace it"
@ -2446,7 +2446,7 @@ msgstr "
#: if_cscope.c:589
#, c-format
msgid "E262: error reading cscope connection %ld"
msgstr "E262: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cscope %d"
msgstr "E262: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cscope %ld"
#: if_cscope.c:694
msgid "E561: unknown cscope search type"
@ -2524,7 +2524,7 @@ msgstr "E261:
#: if_cscope.c:1458
#, c-format
msgid "cscope connection %s closed"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> cscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> cscope %s <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#. should not reach here
#: if_cscope.c:1598

View File

@ -1239,7 +1239,7 @@ msgstr "E173: 1 файл ожидает редактирования."
#: ex_docmd.c:4584
#, c-format
msgid "E173: %ld more files to edit"
msgstr "E173: Есть неотредактированные файлы (%d)."
msgstr "E173: Есть неотредактированные файлы (%ld)."
#: ex_docmd.c:4679
msgid "E174: Command already exists: add ! to replace it"
@ -2446,7 +2446,7 @@ msgstr "Добавлена база данных cscope %s"
#: if_cscope.c:589
#, c-format
msgid "E262: error reading cscope connection %ld"
msgstr "E262: ошибка получения информации от соединения cscope %d"
msgstr "E262: ошибка получения информации от соединения cscope %ld"
#: if_cscope.c:694
msgid "E561: unknown cscope search type"
@ -2524,7 +2524,7 @@ msgstr "E261: соединение с cscope %s не обнаружено"
#: if_cscope.c:1458
#, c-format
msgid "cscope connection %s closed"
msgstr "соединение с cscope закрыто"
msgstr "соединение с cscope %s закрыто"
#. should not reach here
#: if_cscope.c:1598

View File

@ -3760,10 +3760,11 @@ find_prev_quote(line, col_start, quotechar, escape)
* Find quote under the cursor, cursor at end.
* Returns TRUE if found, else FALSE.
*/
/*ARGSUSED*/
int
current_quote(oap, count, include, quotechar)
oparg_T *oap;
long count;
long count; /* not used */
int include; /* TRUE == include quote char */
int quotechar; /* Quote character */
{