updated for version 7.0019

This commit is contained in:
Bram Moolenaar
2004-10-12 20:02:24 +00:00
parent 5c4e21cf4d
commit 47136d70fa
12 changed files with 241 additions and 48 deletions

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.0aa. Last change: 2004 Sep 16 *change.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -13,6 +13,10 @@ commands with the "." command.
2. Delete and insert |delete-insert| 2. Delete and insert |delete-insert|
3. Simple changes |simple-change| *changing* 3. Simple changes |simple-change| *changing*
4. Complex changes |complex-change| 4. Complex changes |complex-change|
4.1 Filter commands |filter|
4.2 Substitute |:substitute|
4.3 Search and replace |search-replace|
4.4 Changing tabs |change-tabs|
5. Copying and moving text |copy-move| 5. Copying and moving text |copy-move|
6. Formatting text |formatting| 6. Formatting text |formatting|
@ -449,7 +453,19 @@ For example: >
============================================================================== ==============================================================================
4. Complex changes *complex-change* 4. Complex changes *complex-change*
*!* *filter* 4.1 Filter commands *filter*
A filter is a program that accepts text at standard input, changes it in some
way, and sends it to standard output. You can use the commands below to send
some text through a filter, so that it is replace by the filter output.
Examples of filters are "sort", which sorts lines alphabetically, and
"indent", which formats C program files (you need a version of indent that
works like a filter; not all versions do). The 'shell' option specifies the
shell Vim uses to execute the filter command (See also the 'shelltype'
option). You can repeat filter commands with ".". Vim does not recognize a
comment (starting with '"') after the ":!" command.
*!*
!{motion}{filter} Filter {motion} text lines through the external !{motion}{filter} Filter {motion} text lines through the external
program {filter}. program {filter}.
@ -492,17 +508,9 @@ For example: >
{Visual}= Filter the highlighted lines like with ={motion}. {Visual}= Filter the highlighted lines like with ={motion}.
{not in Vi} {not in Vi}
A filter is a program that accepts text at standard input, changes it in some
way, and sends it to standard output. You can use the commands above to send
some text through a filter. Examples of filters are "sort", which sorts lines
alphabetically, and "indent", which formats C program files (you need a
version of indent that works like a filter; not all versions do). The 'shell'
option specifies the shell Vim uses to execute the filter command (See also
the 'shelltype' option). You can repeat filter commands with ".". Vim does
not recognize a comment (starting with '"') after the ":!" command.
4.2 Substitute *:substitute*
*:s* *:su* *:substitute* *:s* *:su*
:[range]s[ubstitute]/{pattern}/{string}/[&][c][e][g][p][r][i][I] [count] :[range]s[ubstitute]/{pattern}/{string}/[&][c][e][g][p][r][i][I] [count]
For each line in [range] replace a match of {pattern} For each line in [range] replace a match of {pattern}
with {string}. with {string}.
@ -741,7 +749,9 @@ Example: >
This replaces an end-of-line with a new line containing the value of $HOME. This replaces an end-of-line with a new line containing the value of $HOME.
*:pro* *:promptfind* 4.3 Search and replace *search-replace*
*:pro* *:promptfind*
:promptf[ind] [string] :promptf[ind] [string]
Put up a Search dialog. When [string] is given, it is Put up a Search dialog. When [string] is given, it is
used as the initial search string. used as the initial search string.
@ -753,6 +763,8 @@ This replaces an end-of-line with a new line containing the value of $HOME.
given, it is used as the initial search string. given, it is used as the initial search string.
{only for Win32, Motif and GTK GUI} {only for Win32, Motif and GTK GUI}
4.4 Changing tabs *change-tabs*
*:ret* *:retab* *:ret* *:retab*
:[range]ret[ab][!] [new_tabstop] :[range]ret[ab][!] [new_tabstop]
Replace all sequences of white-space containing a Replace all sequences of white-space containing a

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 10 *eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -831,6 +831,8 @@ cscope_connection( [{num} , {dbpath} [, {prepend}]])
cursor( {lnum}, {col}) Number position cursor at {lnum}, {col} cursor( {lnum}, {col}) Number position cursor at {lnum}, {col}
delete( {fname}) Number delete file {fname} delete( {fname}) Number delete file {fname}
did_filetype() Number TRUE if FileType autocommand event used did_filetype() Number TRUE if FileType autocommand event used
diff_filler( {lnum}) Number diff filler lines about {lnum}
diff_hlID( {lnum}, {col}) Number diff highlighting at {lnum}/{col}
escape( {string}, {chars}) String escape {chars} in {string} with '\' escape( {string}, {chars}) String escape {chars} in {string} with '\'
eventhandler( ) Number TRUE if inside an event handler eventhandler( ) Number TRUE if inside an event handler
executable( {expr}) Number 1 if executable {expr} exists executable( {expr}) Number 1 if executable {expr} exists
@ -932,7 +934,7 @@ strtrans( {expr}) String translate string to make it printable
submatch( {nr}) String specific match in ":substitute" submatch( {nr}) String specific match in ":substitute"
substitute( {expr}, {pat}, {sub}, {flags}) substitute( {expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub} String all {pat} in {expr} replaced with {sub}
synID( {line}, {col}, {trans}) Number syntax ID at {line} and {col} synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
synIDattr( {synID}, {what} [, {mode}]) synIDattr( {synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID} String attribute {what} of syntax ID {synID}
synIDtrans( {synID}) Number translated syntax ID of {synID} synIDtrans( {synID}) Number translated syntax ID of {synID}
@ -1270,6 +1272,26 @@ did_filetype() Returns non-zero when autocommands are being executed and the
editing another buffer to set 'filetype' and load a syntax editing another buffer to set 'filetype' and load a syntax
file. file.
diff_filler({lnum}) *diff_filler()*
Returns the number of filler lines above line {lnum}.
These are the lines that were inserted at this point in
another diff'ed window. These filler lines are shown in the
display but don't exist in the buffer.
{lnum} is used like with |getline()|. Thus "." is the current
line, "'m" mark m, etc.
Returns 0 if the current window is not in diff mode.
diff_hlID({lnum}, {col}) *diff_hlID()*
Returns the highlight ID for diff mode at line {lnum} column
{col} (byte index). When the current line does not have a
diff change zero is returned.
{lnum} is used like with |getline()|. Thus "." is the current
line, "'m" mark m, etc.
{col} is 1 for the leftmost column, {lnum} is 1 for the first
line.
The highlight ID can be used with |synIDattr()| to obtain
syntax information about the highlighting.
escape({string}, {chars}) *escape()* escape({string}, {chars}) *escape()*
Escape the characters in {chars} that occur in {string} with a Escape the characters in {chars} that occur in {string} with a
backslash. Example: > backslash. Example: >
@ -2630,12 +2652,12 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
:echo substitute("testing", ".*", "\\U\\0", "") :echo substitute("testing", ".*", "\\U\\0", "")
< results in "TESTING". < results in "TESTING".
synID({line}, {col}, {trans}) *synID()* synID({lnum}, {col}, {trans}) *synID()*
The result is a Number, which is the syntax ID at the position The result is a Number, which is the syntax ID at the position
{line} and {col} in the current window. {lnum} and {col} in the current window.
The syntax ID can be used with |synIDattr()| and The syntax ID can be used with |synIDattr()| and
|synIDtrans()| to obtain syntax information about text. |synIDtrans()| to obtain syntax information about text.
{col} is 1 for the leftmost column, {line} is 1 for the first {col} is 1 for the leftmost column, {lnum} is 1 for the first
line. line.
When {trans} is non-zero, transparent items are reduced to the When {trans} is non-zero, transparent items are reduced to the
item that they reveal. This is useful when wanting to know item that they reveal. This is useful when wanting to know

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 10 *syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -420,6 +420,16 @@ To go back to the automatic mechanism, delete the g:html_use_encoding
variable: > variable: >
:unlet html_use_encoding :unlet html_use_encoding
< <
Closed folds are kept as they are displayed. If you don't want closed folds
in the HTML use the |zR| command before converting.
For diff mode a sequence of more than 3 filler lines is displayed as three
lines with the middle line mentioning the total number of inserted lines. If
you prefer to see all the inserted lines use: >
:let html_whole_filler = 1
And to go back to displaying up to three lines again: >
:unlet html_whole_filler
*convert-to-XML* *convert-to-XHTML* *convert-to-XML* *convert-to-XHTML*
An alternative is to have the script generate XHTML (XML compliant HTML). To An alternative is to have the script generate XHTML (XML compliant HTML). To
do this set the "use_xhtml" variable: > do this set the "use_xhtml" variable: >

View File

@ -4161,6 +4161,7 @@ cc change.txt /*cc*
ch-syntax syntax.txt /*ch-syntax* ch-syntax syntax.txt /*ch-syntax*
ch.vim syntax.txt /*ch.vim* ch.vim syntax.txt /*ch.vim*
change-list-jumps motion.txt /*change-list-jumps* change-list-jumps motion.txt /*change-list-jumps*
change-tabs change.txt /*change-tabs*
change.txt change.txt /*change.txt* change.txt change.txt /*change.txt*
changed-5.1 version5.txt /*changed-5.1* changed-5.1 version5.txt /*changed-5.1*
changed-5.2 version5.txt /*changed-5.2* changed-5.2 version5.txt /*changed-5.2*
@ -4417,6 +4418,8 @@ diff-mode diff.txt /*diff-mode*
diff-options diff.txt /*diff-options* diff-options diff.txt /*diff-options*
diff-patchexpr diff.txt /*diff-patchexpr* diff-patchexpr diff.txt /*diff-patchexpr*
diff.txt diff.txt /*diff.txt* diff.txt diff.txt /*diff.txt*
diff_filler() eval.txt /*diff_filler()*
diff_hlID() eval.txt /*diff_hlID()*
digraph-arg change.txt /*digraph-arg* digraph-arg change.txt /*digraph-arg*
digraph-encoding digraph.txt /*digraph-encoding* digraph-encoding digraph.txt /*digraph-encoding*
digraph-table digraph.txt /*digraph-table* digraph-table digraph.txt /*digraph-table*
@ -4691,6 +4694,7 @@ foldlevel() eval.txt /*foldlevel()*
foldlevel-variable eval.txt /*foldlevel-variable* foldlevel-variable eval.txt /*foldlevel-variable*
foldstart-variable eval.txt /*foldstart-variable* foldstart-variable eval.txt /*foldstart-variable*
foldtext() eval.txt /*foldtext()* foldtext() eval.txt /*foldtext()*
foldtextresult() eval.txt /*foldtextresult()*
font-sizes gui_x11.txt /*font-sizes* font-sizes gui_x11.txt /*font-sizes*
fontset mbyte.txt /*fontset* fontset mbyte.txt /*fontset*
foreground() eval.txt /*foreground()* foreground() eval.txt /*foreground()*
@ -5935,6 +5939,7 @@ search-commands pattern.txt /*search-commands*
search-offset pattern.txt /*search-offset* search-offset pattern.txt /*search-offset*
search-pattern pattern.txt /*search-pattern* search-pattern pattern.txt /*search-pattern*
search-range pattern.txt /*search-range* search-range pattern.txt /*search-range*
search-replace change.txt /*search-replace*
searchpair() eval.txt /*searchpair()* searchpair() eval.txt /*searchpair()*
section motion.txt /*section* section motion.txt /*section*
sed-syntax syntax.txt /*sed-syntax* sed-syntax syntax.txt /*sed-syntax*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 10 *todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,9 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Folding support for 2html. (Carl Osterwisch, Oct 4)
Now diff output!
Aborting at the ATTENTION prompt causes trouble: Aborting at the ATTENTION prompt causes trouble:
buffer remains active, nwindows isn't closed (fixed in buffer.c) buffer remains active, nwindows isn't closed (fixed in buffer.c)
alternate buffer gets "read error" flag. alternate buffer gets "read error" flag.
@ -196,6 +193,10 @@ For version 7.0:
Also: when the environment variable exists, use it. If it doesn't Also: when the environment variable exists, use it. If it doesn't
exist, set it. Requires good names: $VIM_USER_VIMRC $VIM_USER_DIR exist, set it. Requires good names: $VIM_USER_VIMRC $VIM_USER_DIR
xterm title: After setting a title, obtaining the title still may result in
the old one. Sometimes happens with the test scripts. Setting the title is
done with an ESC sequence, obtaining the old title with an X library call.
Invoking XFlush() before getting the title doesn't help.
- In the kvim/KDE source files fix the formatting. - In the kvim/KDE source files fix the formatting.
- KDE version is called "kvim". Make it "gvim", like the others? - KDE version is called "kvim". Make it "gvim", like the others?
@ -360,6 +361,8 @@ name. (Charles Campbell)
Add gui_mch_browsedir() for Motif, KDE and Mac OS/X. Add gui_mch_browsedir() for Motif, KDE and Mac OS/X.
Translated manual pages: Install German one in /usr/local/man/de/man1/vim.1
Vi incompatibility: Vi incompatibility:
9 In Ex mode, "u" undoes all changes, not just the last one. (John Cowan) 9 In Ex mode, "u" undoes all changes, not just the last one. (John Cowan)
@ -1281,9 +1284,6 @@ Folding:
commands skip over a closed fold. commands skip over a closed fold.
8 "H" and "L" count buffer lines instead of window lines. (Servatius Brandt) 8 "H" and "L" count buffer lines instead of window lines. (Servatius Brandt)
8 Add a way to add fold-plugins. Johannes Zellner has one for VB. 8 Add a way to add fold-plugins. Johannes Zellner has one for VB.
7 When using 2html.vim, also reproduce folds as you can see them. When
someone doesn't want the folds he can disable them before converting.
First attempt by Carl Osterwisch, 2004 May 10.
7 When using manual folding, the undo command should also restore folds. 7 When using manual folding, the undo command should also restore folds.
- Allow completely hiding a closed fold. Require showing a character in - Allow completely hiding a closed fold. Require showing a character in
'foldcolumn' to avoid the missing line goes unnoticed. 'foldcolumn' to avoid the missing line goes unnoticed.

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 11 *version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -54,6 +54,7 @@ isn't set. This avoids creating buffers without a name that are not useful.
The "2html.vim" script now converts closed folds to HTML. This means the HTML The "2html.vim" script now converts closed folds to HTML. This means the HTML
looks like its displayed, with the same folds open and closed. Use "zR" if no looks like its displayed, with the same folds open and closed. Use "zR" if no
folds should appear in the HTML. (partly by Carl Osterwisch) folds should appear in the HTML. (partly by Carl Osterwisch)
Diff mode now is also converted as it is displayed.
============================================================================== ==============================================================================
NEW FEATURES *new-7* NEW FEATURES *new-7*
@ -187,6 +188,11 @@ SQL-Informix syntax file. (Dean L Hill)
PHP compiler plugin. (Doug Kearns) PHP compiler plugin. (Doug Kearns)
New Keymaps: ~
Sinhala (Sri Lanka) (Harshula Jayasuriya)
New message translations: ~ New message translations: ~
The Ukranian messages are now also available in cp1251. The Ukranian messages are now also available in cp1251.

View File

@ -1,6 +1,6 @@
" Vim syntax support file " Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Oct 10 " Last Change: 2004 Oct 12
" (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>) " (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
" (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>) " (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
@ -251,20 +251,67 @@ if has('folding')
unlet s:c unlet s:c
endif endif
" For diff filler lines
if has('diff')
if s:numblines
let s:fillerline = strpart(' ', 0, strlen(line("$"))) . ' '
else
let s:fillerline = ''
endif
let s:fillchar = &fillchars[matchend(&fillchars, 'diff:')]
if s:fillchar == ''
let s:fillchar = '-'
endif
while strlen(s:fillerline) < &columns
let s:fillerline = s:fillerline . s:fillchar
endwhile
endif
while s:lnum <= s:end while s:lnum <= s:end
" If there are filler lines for diff mode, show these above the line.
let s:filler = diff_filler(s:lnum)
if s:filler > 0
let s:n = s:filler
while s:n > 0
if s:n > 2 && s:n < s:filler && !exists("html_whole_filler")
let s:new = strpart(s:fillerline, 0, 3) . " " . s:filler . " inserted lines "
let s:new = s:new . strpart(s:fillerline, strlen(s:new))
let s:n = 2
else
let s:new = s:fillerline
endif
let s:id_name = "DiffDelete"
let s:id = hlID(s:id_name)
let s:new = '<span class="' . s:id_name . '">' . s:new . '</span>'
" Add the class to class list if it's not there yet
if stridx(s:idlist, "," . s:id . ",") == -1
let s:idlist = s:idlist . s:id . ","
endif
exe s:newwin . "wincmd w"
exe "normal! a" . strtrans(s:new) . "\n\e"
exe s:orgwin . "wincmd w"
let s:n = s:n - 1
endwhile
unlet s:n
endif
unlet s:filler
" Start the line with the line number.
if s:numblines
let s:new = strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . ' '
else
let s:new = ""
endif
" Get the current line " Get the current line
let s:line = getline(s:lnum) let s:line = getline(s:lnum)
let s:new = ""
if has('folding') && foldclosed(s:lnum) > -1 if has('folding') && foldclosed(s:lnum) > -1
" "
" This is the beginning of a folded block " This is the beginning of a folded block
" "
if s:numblines
let s:new = strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . ' '
endif
let s:line = foldtextresult(s:lnum) let s:line = foldtextresult(s:lnum)
let s:new = s:new . s:line let s:new = s:new . s:line
@ -293,18 +340,34 @@ while s:lnum <= s:end
let s:len = strlen(s:line) let s:len = strlen(s:line)
if s:numblines if s:numblines
let s:new = '<span class="lnr">' . strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . '</span> ' let s:new = '<span class="lnr">' . s:new . '</span> '
endif endif
" Get the diff attribute, if any.
let s:diffattr = diff_hlID(s:lnum, 1)
" Loop over each character in the line " Loop over each character in the line
let s:col = 1 let s:col = 1
while s:col <= s:len while s:col <= s:len
let s:startcol = s:col " The start column for processing text let s:startcol = s:col " The start column for processing text
let s:id = synID(s:lnum, s:col, 1) if s:diffattr
let s:col = s:col + 1 let s:id = diff_hlID(s:lnum, s:col)
" Speed loop (it's small - that's the trick) let s:col = s:col + 1
" Go along till we find a change in synID " Speed loop (it's small - that's the trick)
while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile " Go along till we find a change in hlID
while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
while s:len < &columns
" Add spaces at the end to mark the changed line.
let s:line = s:line . ' '
let s:len = s:len + 1
endwhile
else
let s:id = synID(s:lnum, s:col, 1)
let s:col = s:col + 1
" Speed loop (it's small - that's the trick)
" Go along till we find a change in synID
while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile
endif
" Output the text with the same synID, with class set to {s:id_name} " Output the text with the same synID, with class set to {s:id_name}
let s:id = synIDtrans(s:id) let s:id = synIDtrans(s:id)
@ -457,3 +520,4 @@ if !exists("html_use_css")
delfunc s:HtmlOpening delfunc s:HtmlOpening
delfunc s:HtmlClosing delfunc s:HtmlClosing
endif endif
silent! unlet s:htmlfoldtext s:fillerline s:diffattr

2
src/auto/configure vendored
View File

@ -2271,7 +2271,7 @@ echo "configure:2266: checking Tcl version" >&5
echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6 echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6
echo "configure:2273: checking for location of Tcl include" >&5 echo "configure:2273: checking for location of Tcl include" >&5
if test "x$MACOSX" != "xyes"; then if test "x$MACOSX" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include" tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
else else
tclinc="/System/Library/Frameworks/Tcl.framework/Headers" tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
fi fi

View File

@ -713,7 +713,7 @@ if test "$enable_tclinterp" = "yes"; then
AC_MSG_CHECKING(for location of Tcl include) AC_MSG_CHECKING(for location of Tcl include)
if test "x$MACOSX" != "xyes"; then if test "x$MACOSX" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include" tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
else else
dnl For Mac OS X 10.3, use the OS-provided framework location dnl For Mac OS X 10.3, use the OS-provided framework location
tclinc="/System/Library/Frameworks/Tcl.framework/Headers" tclinc="/System/Library/Frameworks/Tcl.framework/Headers"

View File

@ -274,6 +274,8 @@ static void f_cscope_connection __ARGS((VAR argvars, VAR retvar));
static void f_cursor __ARGS((VAR argsvars, VAR retvar)); static void f_cursor __ARGS((VAR argsvars, VAR retvar));
static void f_delete __ARGS((VAR argvars, VAR retvar)); static void f_delete __ARGS((VAR argvars, VAR retvar));
static void f_did_filetype __ARGS((VAR argvars, VAR retvar)); static void f_did_filetype __ARGS((VAR argvars, VAR retvar));
static void f_diff_filler __ARGS((VAR argvars, VAR retvar));
static void f_diff_hlID __ARGS((VAR argvars, VAR retvar));
static void f_escape __ARGS((VAR argvars, VAR retvar)); static void f_escape __ARGS((VAR argvars, VAR retvar));
static void f_eventhandler __ARGS((VAR argvars, VAR retvar)); static void f_eventhandler __ARGS((VAR argvars, VAR retvar));
static void f_executable __ARGS((VAR argvars, VAR retvar)); static void f_executable __ARGS((VAR argvars, VAR retvar));
@ -2837,6 +2839,8 @@ static struct fst
{"cursor", 2, 2, f_cursor}, {"cursor", 2, 2, f_cursor},
{"delete", 1, 1, f_delete}, {"delete", 1, 1, f_delete},
{"did_filetype", 0, 0, f_did_filetype}, {"did_filetype", 0, 0, f_did_filetype},
{"diff_filler", 1, 1, f_diff_filler},
{"diff_hlID", 2, 2, f_diff_hlID},
{"escape", 2, 2, f_escape}, {"escape", 2, 2, f_escape},
{"eventhandler", 0, 0, f_eventhandler}, {"eventhandler", 0, 0, f_eventhandler},
{"executable", 1, 1, f_executable}, {"executable", 1, 1, f_executable},
@ -3976,6 +3980,79 @@ f_did_filetype(argvars, retvar)
#endif #endif
} }
/*
* "diff_filler()" function
*/
/*ARGSUSED*/
static void
f_diff_filler(argvars, retvar)
VAR argvars;
VAR retvar;
{
#ifdef FEAT_DIFF
retvar->var_val.var_number = diff_check_fill(curwin, get_var_lnum(argvars));
#endif
}
/*
* "diff_hlID()" function
*/
/*ARGSUSED*/
static void
f_diff_hlID(argvars, retvar)
VAR argvars;
VAR retvar;
{
#ifdef FEAT_DIFF
linenr_T lnum = get_var_lnum(argvars);
static linenr_T prev_lnum = 0;
static int changedtick = 0;
static int fnum = 0;
static int change_start = 0;
static int change_end = 0;
static enum hlf_value hlID = 0;
int filler_lines;
int col;
if (lnum != prev_lnum
|| changedtick != curbuf->b_changedtick
|| fnum != curbuf->b_fnum)
{
/* New line, buffer, change: need to get the values. */
filler_lines = diff_check(curwin, lnum);
if (filler_lines < 0)
{
if (filler_lines == -1)
{
change_start = MAXCOL;
change_end = -1;
if (diff_find_change(curwin, lnum, &change_start, &change_end))
hlID = HLF_ADD; /* added line */
else
hlID = HLF_CHD; /* changed line */
}
else
hlID = HLF_ADD; /* added line */
}
else
hlID = (enum hlf_value)0;
prev_lnum = lnum;
changedtick = curbuf->b_changedtick;
fnum = curbuf->b_fnum;
}
if (hlID == HLF_CHD || hlID == HLF_TXD)
{
col = get_var_number(&argvars[1]) - 1;
if (col >= change_start && col <= change_end)
hlID = HLF_TXD; /* changed text */
else
hlID = HLF_CHD; /* changed line */
}
retvar->var_val.var_number = hlID == (enum hlf_value)0 ? 0 : (int)hlID;
#endif
}
/* /*
* "escape({string}, {chars})" function * "escape({string}, {chars})" function
*/ */

View File

@ -1535,13 +1535,7 @@ get_x11_windis()
get_x11_title(test_only) get_x11_title(test_only)
int test_only; int test_only;
{ {
int retval; return get_x11_thing(TRUE, test_only);
retval = get_x11_thing(TRUE, test_only);
/* could not get old title: oldtitle == NULL */
return retval;
} }
/* /*
@ -1829,7 +1823,8 @@ mch_settitle(title, icon)
* than x11 calls, because the x11 calls don't always work * than x11 calls, because the x11 calls don't always work
*/ */
#ifdef FEAT_GUI_KDE #ifdef FEAT_GUI_KDE
/* dont know why but KDE needs this one as we don't go through the next function... */ /* dont know why but KDE needs this one as we don't go through the next
* function... */
gui_mch_settitle(title, icon); gui_mch_settitle(title, icon);
#endif #endif
if ((type || *T_TS != NUL) && title != NULL) if ((type || *T_TS != NUL) && title != NULL)

View File

@ -47,6 +47,8 @@ test1.out: test1.in
.in.out: .in.out:
-rm -f $*.failed test.ok X* -rm -f $*.failed test.ok X*
cp $*.ok test.ok cp $*.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up
@-sleep .2
$(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
@/bin/sh -c "if diff test.out $*.ok; \ @/bin/sh -c "if diff test.out $*.ok; \
then mv -f test.out $*.out; \ then mv -f test.out $*.out; \