forked from aniani/vim
updated for version 7.0018
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 06
|
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -670,19 +670,19 @@ v:fname_diff The name of the diff (patch) file. Only valid while
|
|||||||
*v:folddashes* *folddashes-variable*
|
*v:folddashes* *folddashes-variable*
|
||||||
v:folddashes Used for 'foldtext': dashes representing foldlevel of a closed
|
v:folddashes Used for 'foldtext': dashes representing foldlevel of a closed
|
||||||
fold.
|
fold.
|
||||||
Read-only. |fold-foldtext|
|
Read-only in the |sandbox|. |fold-foldtext|
|
||||||
|
|
||||||
*v:foldlevel* *foldlevel-variable*
|
*v:foldlevel* *foldlevel-variable*
|
||||||
v:foldlevel Used for 'foldtext': foldlevel of closed fold.
|
v:foldlevel Used for 'foldtext': foldlevel of closed fold.
|
||||||
Read-only. |fold-foldtext|
|
Read-only in the |sandbox|. |fold-foldtext|
|
||||||
|
|
||||||
*v:foldend* *foldend-variable*
|
*v:foldend* *foldend-variable*
|
||||||
v:foldend Used for 'foldtext': last line of closed fold.
|
v:foldend Used for 'foldtext': last line of closed fold.
|
||||||
Read-only. |fold-foldtext|
|
Read-only in the |sandbox|. |fold-foldtext|
|
||||||
|
|
||||||
*v:foldstart* *foldstart-variable*
|
*v:foldstart* *foldstart-variable*
|
||||||
v:foldstart Used for 'foldtext': first line of closed fold.
|
v:foldstart Used for 'foldtext': first line of closed fold.
|
||||||
Read-only. |fold-foldtext|
|
Read-only in the |sandbox|. |fold-foldtext|
|
||||||
|
|
||||||
*v:insertmode* *insertmode-variable*
|
*v:insertmode* *insertmode-variable*
|
||||||
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
|
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
|
||||||
@@ -710,9 +710,9 @@ v:lc_time The current locale setting for time messages of the runtime
|
|||||||
command. See |multi-lang|.
|
command. See |multi-lang|.
|
||||||
|
|
||||||
*v:lnum* *lnum-variable*
|
*v:lnum* *lnum-variable*
|
||||||
v:lnum Line number for the 'foldexpr' and 'indentexpr' expressions.
|
v:lnum Line number for the 'foldexpr' |fold-expr| and 'indentexpr'
|
||||||
Only valid while one of these expressions is being evaluated.
|
expressions. Only valid while one of these expressions is
|
||||||
Read-only. |fold-expr| 'indentexpr'
|
being evaluated. Read-only when in the |sandbox|.
|
||||||
|
|
||||||
*v:prevcount* *prevcount-variable*
|
*v:prevcount* *prevcount-variable*
|
||||||
v:prevcount The count given for the last but one Normal mode command.
|
v:prevcount The count given for the last but one Normal mode command.
|
||||||
@@ -812,6 +812,7 @@ argidx() Number current index in the argument list
|
|||||||
argv( {nr}) String {nr} entry of the argument list
|
argv( {nr}) String {nr} entry of the argument list
|
||||||
browse( {save}, {title}, {initdir}, {default})
|
browse( {save}, {title}, {initdir}, {default})
|
||||||
String put up a file requester
|
String put up a file requester
|
||||||
|
browsedir( {title}, {initdir}) String put up a directory requester
|
||||||
bufexists( {expr}) Number TRUE if buffer {expr} exists
|
bufexists( {expr}) Number TRUE if buffer {expr} exists
|
||||||
buflisted( {expr}) Number TRUE if buffer {expr} is listed
|
buflisted( {expr}) Number TRUE if buffer {expr} is listed
|
||||||
bufloaded( {expr}) Number TRUE if buffer {expr} is loaded
|
bufloaded( {expr}) Number TRUE if buffer {expr} is loaded
|
||||||
@@ -987,6 +988,19 @@ browse({save}, {title}, {initdir}, {default})
|
|||||||
{initdir} directory to start browsing in
|
{initdir} directory to start browsing in
|
||||||
{default} default file name
|
{default} default file name
|
||||||
When the "Cancel" button is hit, something went wrong, or
|
When the "Cancel" button is hit, something went wrong, or
|
||||||
|
browsing is not possible, an empty string is returned.
|
||||||
|
|
||||||
|
*browsedir()*
|
||||||
|
browsedir({title}, {initdir})
|
||||||
|
Put up a directory requester. This only works when
|
||||||
|
"has("browse")" returns non-zero (only in some GUI versions).
|
||||||
|
On systems where a directory browser is not supported a file
|
||||||
|
browser is used. In that case: select a file in the directory
|
||||||
|
to be used.
|
||||||
|
The input fields are:
|
||||||
|
{title} title for the requester
|
||||||
|
{initdir} directory to start browsing in
|
||||||
|
When the "Cancel" button is hit, something went wrong, or
|
||||||
browsing is not possible, an empty string is returned.
|
browsing is not possible, an empty string is returned.
|
||||||
|
|
||||||
bufexists({expr}) *bufexists()*
|
bufexists({expr}) *bufexists()*
|
||||||
@@ -1487,6 +1501,16 @@ foldtext() Returns a String, to be displayed for a closed fold. This is
|
|||||||
first non-blank line of the fold. Leading white space, "//"
|
first non-blank line of the fold. Leading white space, "//"
|
||||||
or "/*" and the text from the 'foldmarker' and 'commentstring'
|
or "/*" and the text from the 'foldmarker' and 'commentstring'
|
||||||
options is removed.
|
options is removed.
|
||||||
|
{not available when compiled without the |+folding| feature}
|
||||||
|
|
||||||
|
foldtextresult({lnum}) *foldtextresult()*
|
||||||
|
Returns the text that is displayed for the closed fold at line
|
||||||
|
{lnum}. Evaluates 'foldtext' in the appropriate context.
|
||||||
|
When there is no closed fold at {lnum} an empty string is
|
||||||
|
returned.
|
||||||
|
{lnum} is used like with |getline()|. Thus "." is the current
|
||||||
|
line, "'m" mark m, etc.
|
||||||
|
Useful when exporting folded text, e.g., to HTML.
|
||||||
{not available when compiled without the |+folding| feature}
|
{not available when compiled without the |+folding| feature}
|
||||||
|
|
||||||
*foreground()*
|
*foreground()*
|
||||||
@@ -4716,7 +4740,7 @@ options are evaluated in a sandbox. This means that you are protected from
|
|||||||
these expressions having nasty side effects. This gives some safety for when
|
these expressions having nasty side effects. This gives some safety for when
|
||||||
these options are set from a modeline. It is also used when the command from
|
these options are set from a modeline. It is also used when the command from
|
||||||
a tags file is executed.
|
a tags file is executed.
|
||||||
This is not guaranteed 100% secure, but it should block most attacks.
|
The sandbox is also used for the |:sandbox| command.
|
||||||
|
|
||||||
These items are not allowed in the sandbox:
|
These items are not allowed in the sandbox:
|
||||||
- changing the buffer text
|
- changing the buffer text
|
||||||
@@ -4725,5 +4749,12 @@ These items are not allowed in the sandbox:
|
|||||||
- executing a shell command
|
- executing a shell command
|
||||||
- reading or writing a file
|
- reading or writing a file
|
||||||
- jumping to another buffer or editing a file
|
- jumping to another buffer or editing a file
|
||||||
|
This is not guaranteed 100% secure, but it should block most attacks.
|
||||||
|
|
||||||
|
*:san* *:sandbox*
|
||||||
|
:sandbox {cmd} Execute {cmd} in the sandbox. Useful to evaluate an
|
||||||
|
option that may have been set from a modeline, e.g.
|
||||||
|
'foldexpr'.
|
||||||
|
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*intro.txt* For Vim version 7.0aa. Last change: 2004 Jun 12
|
*intro.txt* For Vim version 7.0aa. Last change: 2004 Oct 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -226,12 +226,14 @@ Vim would never have become what it is now, without the help of these people!
|
|||||||
Kayhan Demirel sent me news in Uganda
|
Kayhan Demirel sent me news in Uganda
|
||||||
Chris & John Downey xvi (ideas for multi-windows version)
|
Chris & John Downey xvi (ideas for multi-windows version)
|
||||||
Henk Elbers first VMS port
|
Henk Elbers first VMS port
|
||||||
|
Daniel Elstner GTK+ 2 port
|
||||||
Eric Fischer Mac port, 'cindent', and other improvements
|
Eric Fischer Mac port, 'cindent', and other improvements
|
||||||
Benji Fisher Answering lots of user questions
|
Benji Fisher Answering lots of user questions
|
||||||
Bill Foster Athena GUI port
|
Bill Foster Athena GUI port
|
||||||
Loic Grenie xvim (ideas for multi windows version)
|
Loic Grenie xvim (ideas for multi windows version)
|
||||||
Sven Guckes Vim promotor and previous WWW page maintainer
|
Sven Guckes Vim promotor and previous WWW page maintainer
|
||||||
Darren Hiebert Exuberant ctags
|
Darren Hiebert Exuberant ctags
|
||||||
|
Jason Hildebrand GTK+ 2 port
|
||||||
Bruce Hunsaker improvements for VMS port
|
Bruce Hunsaker improvements for VMS port
|
||||||
Andy Kahn Cscope support, GTK+ GUI port
|
Andy Kahn Cscope support, GTK+ GUI port
|
||||||
Oezguer Kesim Maintainer of Vim Mailing Lists
|
Oezguer Kesim Maintainer of Vim Mailing Lists
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 7.0aa. Last change: 2004 Oct 07
|
*options.txt* For Vim version 7.0aa. Last change: 2004 Oct 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1062,7 +1062,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
break if 'linebreak' is on.
|
break if 'linebreak' is on.
|
||||||
|
|
||||||
*'browsedir'* *'bsdir'*
|
*'browsedir'* *'bsdir'*
|
||||||
'browsedir' 'bsdir' string (default for "last")
|
'browsedir' 'bsdir' string (default: "last")
|
||||||
global
|
global
|
||||||
{not in Vi} {only for Motif and Win32 GUI}
|
{not in Vi} {only for Motif and Win32 GUI}
|
||||||
Which directory to use for the file browser:
|
Which directory to use for the file browser:
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Sep 18
|
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -393,6 +393,9 @@ Force to omit the line numbers by using a zero value: >
|
|||||||
Go back to the default to use 'number' by deleting the variable: >
|
Go back to the default to use 'number' by deleting the variable: >
|
||||||
:unlet html_number_lines
|
:unlet html_number_lines
|
||||||
|
|
||||||
|
Closed folds are put in the HTML as they are displayed. If you don't want
|
||||||
|
this, use the "zR" command before invoking 2html.
|
||||||
|
|
||||||
By default, HTML optimized for old browsers is generated. If you prefer using
|
By default, HTML optimized for old browsers is generated. If you prefer using
|
||||||
cascading style sheets (CSS1) for the attributes (resulting in considerably
|
cascading style sheets (CSS1) for the attributes (resulting in considerably
|
||||||
shorter and valid HTML 4 file), use: >
|
shorter and valid HTML 4 file), use: >
|
||||||
|
@@ -2266,6 +2266,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
|||||||
:sa windows.txt /*:sa*
|
:sa windows.txt /*:sa*
|
||||||
:sal windows.txt /*:sal*
|
:sal windows.txt /*:sal*
|
||||||
:sall windows.txt /*:sall*
|
:sall windows.txt /*:sall*
|
||||||
|
:san eval.txt /*:san*
|
||||||
|
:sandbox eval.txt /*:sandbox*
|
||||||
:sargument windows.txt /*:sargument*
|
:sargument windows.txt /*:sargument*
|
||||||
:sav editing.txt /*:sav*
|
:sav editing.txt /*:sav*
|
||||||
:saveas editing.txt /*:saveas*
|
:saveas editing.txt /*:saveas*
|
||||||
@@ -4052,6 +4054,7 @@ book intro.txt /*book*
|
|||||||
boolean options.txt /*boolean*
|
boolean options.txt /*boolean*
|
||||||
break-finally eval.txt /*break-finally*
|
break-finally eval.txt /*break-finally*
|
||||||
browse() eval.txt /*browse()*
|
browse() eval.txt /*browse()*
|
||||||
|
browsedir() eval.txt /*browsedir()*
|
||||||
browsefilter editing.txt /*browsefilter*
|
browsefilter editing.txt /*browsefilter*
|
||||||
bufexists() eval.txt /*bufexists()*
|
bufexists() eval.txt /*bufexists()*
|
||||||
buffer-hidden windows.txt /*buffer-hidden*
|
buffer-hidden windows.txt /*buffer-hidden*
|
||||||
@@ -4922,6 +4925,7 @@ hebrew hebrew.txt /*hebrew*
|
|||||||
hebrew.txt hebrew.txt /*hebrew.txt*
|
hebrew.txt hebrew.txt /*hebrew.txt*
|
||||||
help various.txt /*help*
|
help various.txt /*help*
|
||||||
help-context help.txt /*help-context*
|
help-context help.txt /*help-context*
|
||||||
|
help-tags tags 1
|
||||||
help-translated various.txt /*help-translated*
|
help-translated various.txt /*help-translated*
|
||||||
help-xterm-window various.txt /*help-xterm-window*
|
help-xterm-window various.txt /*help-xterm-window*
|
||||||
help.txt help.txt /*help.txt*
|
help.txt help.txt /*help.txt*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 07
|
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30,15 +30,8 @@ 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 -----------------------
|
||||||
|
|
||||||
Add browsedir(): like browse() but for directories.
|
|
||||||
For GTK it already sort-of works when the default name is empty.
|
|
||||||
|
|
||||||
When ":file" sets the alternate file name and it's empty this doesn't make
|
|
||||||
sense. Could skip it, but would that break scripts that rely on the buffer to
|
|
||||||
exist?
|
|
||||||
|
|
||||||
Folding support for 2html. (Carl Osterwisch, Oct 4)
|
Folding support for 2html. (Carl Osterwisch, Oct 4)
|
||||||
How to evaluate an expression in the sandbox?
|
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)
|
||||||
@@ -58,13 +51,6 @@ Solved in os_mswin.c. Add to 6.3?
|
|||||||
|
|
||||||
Patch for Win32 textdomain: NAKADAIRA Yukihiro, Sept 17.
|
Patch for Win32 textdomain: NAKADAIRA Yukihiro, Sept 17.
|
||||||
|
|
||||||
GTK 2 error message with this sequence (Namsh Oct 7):
|
|
||||||
- start gvim with French locale
|
|
||||||
- set enc=utf-8
|
|
||||||
- :aunmenu *
|
|
||||||
- :unlet did_install_default_menus
|
|
||||||
- :source $VIMRUNTIME/menu.vim
|
|
||||||
|
|
||||||
Valencia: executable("xxd.exe") returns true while "!xxd" doesn't work.
|
Valencia: executable("xxd.exe") returns true while "!xxd" doesn't work.
|
||||||
Works fine for me. Only in specific environment?
|
Works fine for me. Only in specific environment?
|
||||||
|
|
||||||
@@ -372,6 +358,8 @@ Support ":enew filename" to edit a new buffer with a name. It's like "enew |
|
|||||||
file filename" but without setting the alternate file to a buffer without a
|
file filename" but without setting the alternate file to a buffer without a
|
||||||
name. (Charles Campbell)
|
name. (Charles Campbell)
|
||||||
|
|
||||||
|
Add gui_mch_browsedir() for Motif, KDE and Mac OS/X.
|
||||||
|
|
||||||
|
|
||||||
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)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*usr_21.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
|
*usr_21.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ a look at an overview:
|
|||||||
:w !{program} execute {program} and send text to its input
|
:w !{program} execute {program} and send text to its input
|
||||||
:[range]!{program} filter text through {program}
|
:[range]!{program} filter text through {program}
|
||||||
|
|
||||||
Notice that the presense of a range before "!{program}" makes a big
|
Notice that the presence of a range before "!{program}" makes a big
|
||||||
difference. Without it executes the program normally, with the range a number
|
difference. Without it executes the program normally, with the range a number
|
||||||
of text lines is filtered through the program.
|
of text lines is filtered through the program.
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 07
|
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -48,6 +48,13 @@ Removed the old and incomplete "VimBuddy" code.
|
|||||||
Buffers without a name report "No Name" instead of "No File". It was
|
Buffers without a name report "No Name" instead of "No File". It was
|
||||||
confusing for buffers with a name and 'buftype' set to "nofile".
|
confusing for buffers with a name and 'buftype' set to "nofile".
|
||||||
|
|
||||||
|
When ":file xxx" is used in a buffer without a name, the alternate file name
|
||||||
|
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
|
||||||
|
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)
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
NEW FEATURES *new-7*
|
NEW FEATURES *new-7*
|
||||||
|
|
||||||
@@ -124,13 +131,18 @@ Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
|
|||||||
|
|
||||||
|:delmarks| Delete marks.
|
|:delmarks| Delete marks.
|
||||||
|
|
||||||
|
|:sandbox| Command modifier: execute the argument in the sandbox.
|
||||||
|
|
||||||
|
|
||||||
New functions: ~
|
New functions: ~
|
||||||
|
|
||||||
|
browsedir(title, init) |browsedir()| Dialog to select a directory.
|
||||||
byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher)
|
byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher)
|
||||||
finddir(name) |finddir()| Find a directory in 'path'.
|
finddir(name) |finddir()| Find a directory in 'path'.
|
||||||
findfile(name) |findfile()| Find a file in 'path'. (Johannes
|
findfile(name) |findfile()| Find a file in 'path'. (Johannes
|
||||||
Zellner)
|
Zellner)
|
||||||
|
foldtextresult(lnum) |foldtextresult()| The text displayed for a closed
|
||||||
|
fold at line "lnum".
|
||||||
getfperm(fname) |getfperm()| Get file permission string. (Nikolai
|
getfperm(fname) |getfperm()| Get file permission string. (Nikolai
|
||||||
Weibull)
|
Weibull)
|
||||||
getftype(fname) |getftype()| Get type of file. (Nikolai Weibull)
|
getftype(fname) |getftype()| Get type of file. (Nikolai Weibull)
|
||||||
@@ -396,4 +408,11 @@ console version.
|
|||||||
Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
|
Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
|
||||||
there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
|
there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
|
||||||
|
|
||||||
|
When two versions of GTK+ 2 are installed it was possible to use the header
|
||||||
|
files from one and the library from the other. Use GTK_LIBDIR to put the
|
||||||
|
directory for the library early in the link flags.
|
||||||
|
|
||||||
|
With the GUI find/replace dialog a replace only worked if the pattern was
|
||||||
|
literal text. Now it works for any pattern.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
@@ -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 May 31
|
" Last Change: 2004 Oct 10
|
||||||
" (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>)
|
||||||
|
|
||||||
@@ -238,40 +238,88 @@ else
|
|||||||
let s:end = line("$")
|
let s:end = line("$")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Closed folds are kept in the HTML. Prepare the closed fold template text.
|
||||||
|
if has('folding')
|
||||||
|
let s:c = &fillchars[matchend(&fillchars, 'fold:')]
|
||||||
|
if s:c == ''
|
||||||
|
let s:c = '-'
|
||||||
|
endif
|
||||||
|
let s:htmlfoldtext = '+' . s:c
|
||||||
|
while strlen(s:htmlfoldtext) < &columns
|
||||||
|
let s:htmlfoldtext = s:htmlfoldtext . s:c
|
||||||
|
endwhile
|
||||||
|
unlet s:c
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
while s:lnum <= s:end
|
while s:lnum <= s:end
|
||||||
|
|
||||||
" Get the current line
|
" Get the current line
|
||||||
let s:line = getline(s:lnum)
|
let s:line = getline(s:lnum)
|
||||||
let s:len = strlen(s:line)
|
|
||||||
let s:new = ""
|
let s:new = ""
|
||||||
|
|
||||||
if s:numblines
|
if has('folding') && foldclosed(s:lnum) > -1
|
||||||
let s:new = '<span class="lnr">' . strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . '</span> '
|
"
|
||||||
endif
|
" 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)
|
||||||
|
|
||||||
" Loop over each character in the line
|
let s:new = s:new . s:line
|
||||||
let s:col = 1
|
if !exists("html_no_pre")
|
||||||
while s:col <= s:len
|
let s:new = s:new . strpart(s:htmlfoldtext, strlen(s:new))
|
||||||
let s:startcol = s:col " The start column for processing text
|
endif
|
||||||
let s:id = synID(s:lnum, s:col, 1)
|
|
||||||
let s:col = s:col + 1
|
" Replace the reserved html characters
|
||||||
" Speed loop (it's small - that's the trick)
|
let s:new = substitute(substitute(substitute(substitute(substitute(s:new, '&', '\&', 'g'), '<', '\<', 'g'), '>', '\>', 'g'), '"', '\"', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g')
|
||||||
" 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
|
let s:id_name = "Folded"
|
||||||
|
let s:id = hlID(s:id_name)
|
||||||
" Output the text with the same synID, with class set to {s:id_name}
|
let s:new = '<span class="' . s:id_name . '">' . s:new . '</span>'
|
||||||
let s:id = synIDtrans(s:id)
|
|
||||||
let s:id_name = synIDattr(s:id, "name", s:whatterm)
|
|
||||||
let s:new = s:new . '<span class="' . s:id_name . '">' . substitute(substitute(substitute(substitute(substitute(strpart(s:line, s:startcol - 1, s:col - s:startcol), '&', '\&', 'g'), '<', '\<', 'g'), '>', '\>', 'g'), '"', '\"', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g') . '</span>'
|
|
||||||
" Add the class to class list if it's not there yet
|
" Add the class to class list if it's not there yet
|
||||||
if stridx(s:idlist, "," . s:id . ",") == -1
|
if stridx(s:idlist, "," . s:id . ",") == -1
|
||||||
let s:idlist = s:idlist . s:id . ","
|
let s:idlist = s:idlist . s:id . ","
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if s:col > s:len
|
" Skip to the end of the fold
|
||||||
break
|
let s:lnum = foldclosedend(s:lnum)
|
||||||
|
|
||||||
|
else
|
||||||
|
"
|
||||||
|
" A line that is not folded.
|
||||||
|
"
|
||||||
|
let s:len = strlen(s:line)
|
||||||
|
|
||||||
|
if s:numblines
|
||||||
|
let s:new = '<span class="lnr">' . strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . '</span> '
|
||||||
endif
|
endif
|
||||||
endwhile
|
|
||||||
|
" Loop over each character in the line
|
||||||
|
let s:col = 1
|
||||||
|
while s:col <= s:len
|
||||||
|
let s:startcol = s:col " The start column for processing text
|
||||||
|
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
|
||||||
|
|
||||||
|
" Output the text with the same synID, with class set to {s:id_name}
|
||||||
|
let s:id = synIDtrans(s:id)
|
||||||
|
let s:id_name = synIDattr(s:id, "name", s:whatterm)
|
||||||
|
let s:new = s:new . '<span class="' . s:id_name . '">' . substitute(substitute(substitute(substitute(substitute(strpart(s:line, s:startcol - 1, s:col - s:startcol), '&', '\&', 'g'), '<', '\<', 'g'), '>', '\>', 'g'), '"', '\"', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g') . '</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
|
||||||
|
|
||||||
|
if s:col > s:len
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
|
||||||
" Expand tabs
|
" Expand tabs
|
||||||
let s:pad=0
|
let s:pad=0
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Slrn score file (based on slrn 0.9.8.0)
|
" Language: Slrn score file (based on slrn 0.9.8.0)
|
||||||
" Maintainer: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
|
" Maintainer: Preben 'Peppe' Guldberg <peppe@wielders.org>
|
||||||
" Last Change: 19 May 2004
|
" Last Change: 8 Oct 2004
|
||||||
|
|
||||||
" For version 5.x: Clear all syntax items
|
" For version 5.x: Clear all syntax items
|
||||||
" For version 6.x: Quit when a syntax file was already loaded
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
@@ -48,7 +48,7 @@ syn region slrnscScoreItem contained matchgroup=Special start="^\s*\~\={::\=" en
|
|||||||
|
|
||||||
syn keyword slrnscScore contained Score
|
syn keyword slrnscScore contained Score
|
||||||
syn match slrnscScoreIdent contained "%.*"
|
syn match slrnscScoreIdent contained "%.*"
|
||||||
syn match slrnScoreLine "^\s*Score::\=\s\+=\=-\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent
|
syn match slrnScoreLine "^\s*Score::\=\s\+=\=[-+]\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" For version 5.7 and earlier: only when not done already
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
577
src/auto/configure
vendored
577
src/auto/configure
vendored
File diff suppressed because it is too large
Load Diff
@@ -1586,7 +1586,7 @@ dnl define an autoconf function to check for a specified version of GTK, and
|
|||||||
dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
|
dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
|
||||||
dnl
|
dnl
|
||||||
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
|
dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(AM_PATH_GTK,
|
AC_DEFUN(AM_PATH_GTK,
|
||||||
[
|
[
|
||||||
@@ -1602,6 +1602,7 @@ AC_DEFUN(AM_PATH_GTK,
|
|||||||
dnl But I guess the dependency on pkgconfig.m4 is not wanted or
|
dnl But I guess the dependency on pkgconfig.m4 is not wanted or
|
||||||
dnl something like that.
|
dnl something like that.
|
||||||
GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
|
GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
|
||||||
|
GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
|
||||||
GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
|
GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
|
||||||
gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
|
gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
|
||||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
@@ -1613,6 +1614,7 @@ AC_DEFUN(AM_PATH_GTK,
|
|||||||
elif test "X$GTK_CONFIG" != "Xno"; then
|
elif test "X$GTK_CONFIG" != "Xno"; then
|
||||||
{
|
{
|
||||||
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
|
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
|
||||||
|
GTK_LIBDIR=
|
||||||
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
|
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
|
||||||
gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
|
gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
@@ -1854,7 +1856,8 @@ if test -z "$SKIP_GTK"; then
|
|||||||
dnl problems (bold fonts, --remote doesn't work).
|
dnl problems (bold fonts, --remote doesn't work).
|
||||||
if test "X$SKIP_GTK2" != "XYES"; then
|
if test "X$SKIP_GTK2" != "XYES"; then
|
||||||
AM_PATH_GTK(2.2.0,
|
AM_PATH_GTK(2.2.0,
|
||||||
[GTK_LIBNAME="$GTK_LIBS"
|
[GUI_LIB_LOC="$GTK_LIBDIR"
|
||||||
|
GTK_LIBNAME="$GTK_LIBS"
|
||||||
GUI_INC_LOC="$GTK_CFLAGS"], )
|
GUI_INC_LOC="$GTK_CFLAGS"], )
|
||||||
if test "x$GTK_CFLAGS" != "x"; then
|
if test "x$GTK_CFLAGS" != "x"; then
|
||||||
SKIP_ATHENA=YES
|
SKIP_ATHENA=YES
|
||||||
|
84
src/eval.c
84
src/eval.c
@@ -184,8 +184,9 @@ current_func_returned()
|
|||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
/* values for flags: */
|
/* values for flags: */
|
||||||
#define VV_COMPAT 1 /* compatible, also used without "v:" */
|
#define VV_COMPAT 1 /* compatible, also used without "v:" */
|
||||||
#define VV_RO 2 /* read-only */
|
#define VV_RO 2 /* read-only */
|
||||||
|
#define VV_RO_SBX 4 /* read-only in the sandbox*/
|
||||||
|
|
||||||
struct vimvar
|
struct vimvar
|
||||||
{
|
{
|
||||||
@@ -193,7 +194,7 @@ struct vimvar
|
|||||||
int len; /* length of name */
|
int len; /* length of name */
|
||||||
char_u *val; /* current value (can also be a number!) */
|
char_u *val; /* current value (can also be a number!) */
|
||||||
char type; /* VAR_NUMBER or VAR_STRING */
|
char type; /* VAR_NUMBER or VAR_STRING */
|
||||||
char flags; /* VV_COMPAT and VV_RO */
|
char flags; /* VV_COMPAT, VV_RO, VV_RO_SBX */
|
||||||
} vimvars[VV_LEN] =
|
} vimvars[VV_LEN] =
|
||||||
{ /* The order here must match the VV_ defines in vim.h! */
|
{ /* The order here must match the VV_ defines in vim.h! */
|
||||||
{"count", sizeof("count") - 1, NULL, VAR_NUMBER, VV_COMPAT+VV_RO},
|
{"count", sizeof("count") - 1, NULL, VAR_NUMBER, VV_COMPAT+VV_RO},
|
||||||
@@ -207,7 +208,7 @@ struct vimvar
|
|||||||
{"this_session", sizeof("this_session") - 1, NULL, VAR_STRING, VV_COMPAT},
|
{"this_session", sizeof("this_session") - 1, NULL, VAR_STRING, VV_COMPAT},
|
||||||
{"version", sizeof("version") - 1, (char_u *)VIM_VERSION_100,
|
{"version", sizeof("version") - 1, (char_u *)VIM_VERSION_100,
|
||||||
VAR_NUMBER, VV_COMPAT+VV_RO},
|
VAR_NUMBER, VV_COMPAT+VV_RO},
|
||||||
{"lnum", sizeof("lnum") - 1, NULL, VAR_NUMBER, VV_RO},
|
{"lnum", sizeof("lnum") - 1, NULL, VAR_NUMBER, VV_RO_SBX},
|
||||||
{"termresponse", sizeof("termresponse") - 1, NULL, VAR_STRING, VV_RO},
|
{"termresponse", sizeof("termresponse") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"fname", sizeof("fname") - 1, NULL, VAR_STRING, VV_RO},
|
{"fname", sizeof("fname") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"lang", sizeof("lang") - 1, NULL, VAR_STRING, VV_RO},
|
{"lang", sizeof("lang") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
@@ -220,10 +221,10 @@ struct vimvar
|
|||||||
{"fname_new", sizeof("fname_new") - 1, NULL, VAR_STRING, VV_RO},
|
{"fname_new", sizeof("fname_new") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"fname_diff", sizeof("fname_diff") - 1, NULL, VAR_STRING, VV_RO},
|
{"fname_diff", sizeof("fname_diff") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"cmdarg", sizeof("cmdarg") - 1, NULL, VAR_STRING, VV_RO},
|
{"cmdarg", sizeof("cmdarg") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"foldstart", sizeof("foldstart") - 1, NULL, VAR_NUMBER, VV_RO},
|
{"foldstart", sizeof("foldstart") - 1, NULL, VAR_NUMBER, VV_RO_SBX},
|
||||||
{"foldend", sizeof("foldend") - 1, NULL, VAR_NUMBER, VV_RO},
|
{"foldend", sizeof("foldend") - 1, NULL, VAR_NUMBER, VV_RO_SBX},
|
||||||
{"folddashes", sizeof("folddashes") - 1, NULL, VAR_STRING, VV_RO},
|
{"folddashes", sizeof("folddashes") - 1, NULL, VAR_STRING, VV_RO_SBX},
|
||||||
{"foldlevel", sizeof("foldlevel") - 1, NULL, VAR_NUMBER, VV_RO},
|
{"foldlevel", sizeof("foldlevel") - 1, NULL, VAR_NUMBER, VV_RO_SBX},
|
||||||
{"progname", sizeof("progname") - 1, NULL, VAR_STRING, VV_RO},
|
{"progname", sizeof("progname") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"servername", sizeof("servername") - 1, NULL, VAR_STRING, VV_RO},
|
{"servername", sizeof("servername") - 1, NULL, VAR_STRING, VV_RO},
|
||||||
{"dying", sizeof("dying") - 1, NULL, VAR_NUMBER, VV_RO},
|
{"dying", sizeof("dying") - 1, NULL, VAR_NUMBER, VV_RO},
|
||||||
@@ -254,6 +255,7 @@ static void f_argc __ARGS((VAR argvars, VAR retvar));
|
|||||||
static void f_argidx __ARGS((VAR argvars, VAR retvar));
|
static void f_argidx __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_argv __ARGS((VAR argvars, VAR retvar));
|
static void f_argv __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_browse __ARGS((VAR argvars, VAR retvar));
|
static void f_browse __ARGS((VAR argvars, VAR retvar));
|
||||||
|
static void f_browsedir __ARGS((VAR argvars, VAR retvar));
|
||||||
static buf_T *find_buffer __ARGS((VAR avar));
|
static buf_T *find_buffer __ARGS((VAR avar));
|
||||||
static void f_bufexists __ARGS((VAR argvars, VAR retvar));
|
static void f_bufexists __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_buflisted __ARGS((VAR argvars, VAR retvar));
|
static void f_buflisted __ARGS((VAR argvars, VAR retvar));
|
||||||
@@ -288,6 +290,7 @@ static void f_foldclosedend __ARGS((VAR argvars, VAR retvar));
|
|||||||
static void foldclosed_both __ARGS((VAR argvars, VAR retvar, int end));
|
static void foldclosed_both __ARGS((VAR argvars, VAR retvar, int end));
|
||||||
static void f_foldlevel __ARGS((VAR argvars, VAR retvar));
|
static void f_foldlevel __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_foldtext __ARGS((VAR argvars, VAR retvar));
|
static void f_foldtext __ARGS((VAR argvars, VAR retvar));
|
||||||
|
static void f_foldtextresult __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_foreground __ARGS((VAR argvars, VAR retvar));
|
static void f_foreground __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_getbufvar __ARGS((VAR argvars, VAR retvar));
|
static void f_getbufvar __ARGS((VAR argvars, VAR retvar));
|
||||||
static void f_getchar __ARGS((VAR argvars, VAR retvar));
|
static void f_getchar __ARGS((VAR argvars, VAR retvar));
|
||||||
@@ -2814,6 +2817,7 @@ static struct fst
|
|||||||
{"argidx", 0, 0, f_argidx},
|
{"argidx", 0, 0, f_argidx},
|
||||||
{"argv", 1, 1, f_argv},
|
{"argv", 1, 1, f_argv},
|
||||||
{"browse", 4, 4, f_browse},
|
{"browse", 4, 4, f_browse},
|
||||||
|
{"browsedir", 2, 2, f_browsedir},
|
||||||
{"bufexists", 1, 1, f_bufexists},
|
{"bufexists", 1, 1, f_bufexists},
|
||||||
{"buffer_exists", 1, 1, f_bufexists}, /* obsolete */
|
{"buffer_exists", 1, 1, f_bufexists}, /* obsolete */
|
||||||
{"buffer_name", 1, 1, f_bufname}, /* obsolete */
|
{"buffer_name", 1, 1, f_bufname}, /* obsolete */
|
||||||
@@ -2848,6 +2852,7 @@ static struct fst
|
|||||||
{"foldclosedend", 1, 1, f_foldclosedend},
|
{"foldclosedend", 1, 1, f_foldclosedend},
|
||||||
{"foldlevel", 1, 1, f_foldlevel},
|
{"foldlevel", 1, 1, f_foldlevel},
|
||||||
{"foldtext", 0, 0, f_foldtext},
|
{"foldtext", 0, 0, f_foldtext},
|
||||||
|
{"foldtextresult", 1, 1, f_foldtextresult},
|
||||||
{"foreground", 0, 0, f_foreground},
|
{"foreground", 0, 0, f_foreground},
|
||||||
{"getbufvar", 2, 2, f_getbufvar},
|
{"getbufvar", 2, 2, f_getbufvar},
|
||||||
{"getchar", 0, 1, f_getchar},
|
{"getchar", 0, 1, f_getchar},
|
||||||
@@ -3379,7 +3384,33 @@ f_browse(argvars, retvar)
|
|||||||
defname = get_var_string_buf(&argvars[3], buf2);
|
defname = get_var_string_buf(&argvars[3], buf2);
|
||||||
|
|
||||||
retvar->var_val.var_string =
|
retvar->var_val.var_string =
|
||||||
do_browse(save, title, defname, NULL, initdir, NULL, curbuf);
|
do_browse(save ? BROWSE_SAVE : 0,
|
||||||
|
title, defname, NULL, initdir, NULL, curbuf);
|
||||||
|
#else
|
||||||
|
retvar->var_val.var_string = NULL;
|
||||||
|
#endif
|
||||||
|
retvar->var_type = VAR_STRING;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "browsedir(title, initdir)" function
|
||||||
|
*/
|
||||||
|
/* ARGSUSED */
|
||||||
|
static void
|
||||||
|
f_browsedir(argvars, retvar)
|
||||||
|
VAR argvars;
|
||||||
|
VAR retvar;
|
||||||
|
{
|
||||||
|
#ifdef FEAT_BROWSE
|
||||||
|
char_u *title;
|
||||||
|
char_u *initdir;
|
||||||
|
char_u buf[NUMBUFLEN];
|
||||||
|
|
||||||
|
title = get_var_string(&argvars[0]);
|
||||||
|
initdir = get_var_string_buf(&argvars[1], buf);
|
||||||
|
|
||||||
|
retvar->var_val.var_string = do_browse(BROWSE_DIR,
|
||||||
|
title, NULL, NULL, initdir, NULL, curbuf);
|
||||||
#else
|
#else
|
||||||
retvar->var_val.var_string = NULL;
|
retvar->var_val.var_string = NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -4398,6 +4429,39 @@ f_foldtext(argvars, retvar)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "foldtextresult(lnum)" function
|
||||||
|
*/
|
||||||
|
/*ARGSUSED*/
|
||||||
|
static void
|
||||||
|
f_foldtextresult(argvars, retvar)
|
||||||
|
VAR argvars;
|
||||||
|
VAR retvar;
|
||||||
|
{
|
||||||
|
#ifdef FEAT_FOLDING
|
||||||
|
linenr_T lnum;
|
||||||
|
char_u *text;
|
||||||
|
char_u buf[51];
|
||||||
|
foldinfo_T foldinfo;
|
||||||
|
int fold_count;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
retvar->var_type = VAR_STRING;
|
||||||
|
retvar->var_val.var_string = NULL;
|
||||||
|
#ifdef FEAT_FOLDING
|
||||||
|
lnum = get_var_lnum(argvars);
|
||||||
|
fold_count = foldedCount(curwin, lnum, &foldinfo);
|
||||||
|
if (fold_count > 0)
|
||||||
|
{
|
||||||
|
text = get_foldtext(curwin, lnum, lnum + fold_count - 1,
|
||||||
|
&foldinfo, buf);
|
||||||
|
if (text == buf)
|
||||||
|
text = vim_strsave(text);
|
||||||
|
retvar->var_val.var_string = text;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "foreground()" function
|
* "foreground()" function
|
||||||
*/
|
*/
|
||||||
@@ -9035,6 +9099,8 @@ set_var(name, varp)
|
|||||||
{
|
{
|
||||||
if (vimvars[i].flags & VV_RO)
|
if (vimvars[i].flags & VV_RO)
|
||||||
EMSG2(_(e_readonlyvar), name);
|
EMSG2(_(e_readonlyvar), name);
|
||||||
|
else if ((vimvars[i].flags & VV_RO_SBX) && sandbox)
|
||||||
|
EMSG2(_(e_readonlysbx), name);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (vimvars[i].type == VAR_STRING)
|
if (vimvars[i].type == VAR_STRING)
|
||||||
|
@@ -2026,6 +2026,8 @@ ex_file(eap)
|
|||||||
* The name of the current buffer will be changed.
|
* The name of the current buffer will be changed.
|
||||||
* A new (unlisted) buffer entry needs to be made to hold the old file
|
* A new (unlisted) buffer entry needs to be made to hold the old file
|
||||||
* name, which will become the alternate file name.
|
* name, which will become the alternate file name.
|
||||||
|
* But don't set the alternate file name if the buffer didn't have a
|
||||||
|
* name.
|
||||||
*/
|
*/
|
||||||
fname = curbuf->b_ffname;
|
fname = curbuf->b_ffname;
|
||||||
sfname = curbuf->b_sfname;
|
sfname = curbuf->b_sfname;
|
||||||
@@ -2039,9 +2041,12 @@ ex_file(eap)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
curbuf->b_flags |= BF_NOTEDITED;
|
curbuf->b_flags |= BF_NOTEDITED;
|
||||||
buf = buflist_new(fname, xfname, curwin->w_cursor.lnum, 0);
|
if (xfname != NULL && *xfname != NUL)
|
||||||
if (buf != NULL && !cmdmod.keepalt)
|
{
|
||||||
curwin->w_alt_fnum = buf->b_fnum;
|
buf = buflist_new(fname, xfname, curwin->w_cursor.lnum, 0);
|
||||||
|
if (buf != NULL && !cmdmod.keepalt)
|
||||||
|
curwin->w_alt_fnum = buf->b_fnum;
|
||||||
|
}
|
||||||
vim_free(fname);
|
vim_free(fname);
|
||||||
vim_free(sfname);
|
vim_free(sfname);
|
||||||
#ifdef FEAT_AUTOCMD
|
#ifdef FEAT_AUTOCMD
|
||||||
@@ -2105,7 +2110,7 @@ do_write(eap)
|
|||||||
#ifdef FEAT_BROWSE
|
#ifdef FEAT_BROWSE
|
||||||
if (cmdmod.browse)
|
if (cmdmod.browse)
|
||||||
{
|
{
|
||||||
browse_file = do_browse(TRUE, (char_u *)_("Save As"), ffname,
|
browse_file = do_browse(BROWSE_SAVE, (char_u *)_("Save As"), ffname,
|
||||||
NULL, NULL, NULL, curbuf);
|
NULL, NULL, NULL, curbuf);
|
||||||
if (browse_file == NULL)
|
if (browse_file == NULL)
|
||||||
goto theend;
|
goto theend;
|
||||||
@@ -2609,7 +2614,7 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
|
|||||||
#ifdef FEAT_BROWSE
|
#ifdef FEAT_BROWSE
|
||||||
if (cmdmod.browse)
|
if (cmdmod.browse)
|
||||||
{
|
{
|
||||||
browse_file = do_browse(FALSE, (char_u *)_("Edit File"), ffname,
|
browse_file = do_browse(0, (char_u *)_("Edit File"), ffname,
|
||||||
NULL, NULL, NULL, curbuf);
|
NULL, NULL, NULL, curbuf);
|
||||||
if (browse_file == NULL)
|
if (browse_file == NULL)
|
||||||
goto theend;
|
goto theend;
|
||||||
|
@@ -573,7 +573,7 @@ EX(CMD_ounmap, "ounmap", ex_unmap,
|
|||||||
EX(CMD_ounmenu, "ounmenu", ex_menu,
|
EX(CMD_ounmenu, "ounmenu", ex_menu,
|
||||||
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
|
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
|
||||||
EX(CMD_print, "print", ex_print,
|
EX(CMD_print, "print", ex_print,
|
||||||
RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN),
|
RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|SBOXOK),
|
||||||
EX(CMD_pclose, "pclose", ex_pclose,
|
EX(CMD_pclose, "pclose", ex_pclose,
|
||||||
BANG|TRLBAR),
|
BANG|TRLBAR),
|
||||||
EX(CMD_perl, "perl", ex_perl,
|
EX(CMD_perl, "perl", ex_perl,
|
||||||
@@ -674,6 +674,8 @@ EX(CMD_sargument, "sargument", ex_argument,
|
|||||||
BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
|
BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
|
||||||
EX(CMD_sall, "sall", ex_all,
|
EX(CMD_sall, "sall", ex_all,
|
||||||
RANGE|NOTADR|COUNT|TRLBAR),
|
RANGE|NOTADR|COUNT|TRLBAR),
|
||||||
|
EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
|
||||||
|
NEEDARG|EXTRA|NOTRLCOM),
|
||||||
EX(CMD_saveas, "saveas", ex_write,
|
EX(CMD_saveas, "saveas", ex_write,
|
||||||
BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR),
|
BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR),
|
||||||
EX(CMD_sbuffer, "sbuffer", ex_buffer,
|
EX(CMD_sbuffer, "sbuffer", ex_buffer,
|
||||||
|
@@ -779,8 +779,8 @@ browse_save_fname(buf)
|
|||||||
{
|
{
|
||||||
char_u *fname;
|
char_u *fname;
|
||||||
|
|
||||||
fname = do_browse(TRUE, (char_u *)_("Save As"), NULL, NULL, NULL,
|
fname = do_browse(BROWSE_SAVE, (char_u *)_("Save As"),
|
||||||
NULL, buf);
|
NULL, NULL, NULL, NULL, buf);
|
||||||
if (fname != NULL)
|
if (fname != NULL)
|
||||||
{
|
{
|
||||||
if (setfname(buf, fname, NULL, TRUE) == OK)
|
if (setfname(buf, fname, NULL, TRUE) == OK)
|
||||||
@@ -2011,7 +2011,7 @@ ex_source(eap)
|
|||||||
{
|
{
|
||||||
char_u *fname = NULL;
|
char_u *fname = NULL;
|
||||||
|
|
||||||
fname = do_browse(FALSE, (char_u *)_("Source Vim script"), eap->arg,
|
fname = do_browse(0, (char_u *)_("Source Vim script"), eap->arg,
|
||||||
NULL, NULL, BROWSE_FILTER_MACROS, NULL);
|
NULL, NULL, BROWSE_FILTER_MACROS, NULL);
|
||||||
if (fname != NULL)
|
if (fname != NULL)
|
||||||
{
|
{
|
||||||
|
@@ -1042,6 +1042,11 @@
|
|||||||
# define MSWIN_FR_BUFSIZE 256
|
# define MSWIN_FR_BUFSIZE 256
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF) \
|
||||||
|
|| defined(MSWIN_FIND_REPLACE) || defined(FEAT_GUI_KDE)
|
||||||
|
# define FIND_REPLACE_DIALOG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* +clientserver Remote control via the remote_send() function
|
* +clientserver Remote control via the remote_send() function
|
||||||
* and the --remote argument
|
* and the --remote argument
|
||||||
|
87
src/fold.c
87
src/fold.c
@@ -1903,6 +1903,93 @@ foldDelMarker(lnum, marker, markerlen)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* get_foldtext() {{{2 */
|
||||||
|
/*
|
||||||
|
* Return the text for a closed fold at line "lnum", with last line "lnume".
|
||||||
|
* When 'foldtext' isn't set puts the result in "buf[51]". Otherwise the
|
||||||
|
* result is in allocated memory.
|
||||||
|
*/
|
||||||
|
char_u *
|
||||||
|
get_foldtext(wp, lnum, lnume, foldinfo, buf)
|
||||||
|
win_T *wp;
|
||||||
|
linenr_T lnum, lnume;
|
||||||
|
foldinfo_T *foldinfo;
|
||||||
|
char_u *buf;
|
||||||
|
{
|
||||||
|
char_u *text = NULL;
|
||||||
|
|
||||||
|
#ifdef FEAT_EVAL
|
||||||
|
if (*wp->w_p_fdt != NUL)
|
||||||
|
{
|
||||||
|
char_u dashes[51];
|
||||||
|
win_T *save_curwin;
|
||||||
|
int level;
|
||||||
|
char_u *p;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
/* Set "v:foldstart" and "v:foldend". */
|
||||||
|
set_vim_var_nr(VV_FOLDSTART, lnum);
|
||||||
|
set_vim_var_nr(VV_FOLDEND, lnume);
|
||||||
|
|
||||||
|
/* Set "v:folddashes" to a string of "level" dashes. */
|
||||||
|
/* Set "v:foldlevel" to "level". */
|
||||||
|
level = foldinfo->fi_level;
|
||||||
|
if (level > 50)
|
||||||
|
level = 50;
|
||||||
|
vim_memset(dashes, '-', (size_t)level);
|
||||||
|
dashes[level] = NUL;
|
||||||
|
set_vim_var_string(VV_FOLDDASHES, dashes, -1);
|
||||||
|
set_vim_var_nr(VV_FOLDLEVEL, (long)level);
|
||||||
|
save_curwin = curwin;
|
||||||
|
curwin = wp;
|
||||||
|
curbuf = wp->w_buffer;
|
||||||
|
|
||||||
|
++emsg_off;
|
||||||
|
text = eval_to_string_safe(wp->w_p_fdt, NULL);
|
||||||
|
--emsg_off;
|
||||||
|
|
||||||
|
curwin = save_curwin;
|
||||||
|
curbuf = curwin->w_buffer;
|
||||||
|
set_vim_var_string(VV_FOLDDASHES, NULL, -1);
|
||||||
|
|
||||||
|
if (text != NULL)
|
||||||
|
{
|
||||||
|
/* Replace unprintable characters, if there are any. But
|
||||||
|
* replace a TAB with a space. */
|
||||||
|
for (p = text; *p != NUL; ++p)
|
||||||
|
{
|
||||||
|
# ifdef FEAT_MBYTE
|
||||||
|
if (has_mbyte && (len = (*mb_ptr2len_check)(p)) > 1)
|
||||||
|
{
|
||||||
|
if (!vim_isprintc((*mb_ptr2char)(p)))
|
||||||
|
break;
|
||||||
|
p += len - 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
if (*p == TAB)
|
||||||
|
*p = ' ';
|
||||||
|
else if (ptr2cells(p) > 1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (*p != NUL)
|
||||||
|
{
|
||||||
|
p = transstr(text);
|
||||||
|
vim_free(text);
|
||||||
|
text = p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (text == NULL)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
sprintf((char *)buf, _("+--%3ld lines folded "),
|
||||||
|
(long)(lnume - lnum + 1));
|
||||||
|
text = buf;
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
/* foldtext_cleanup() {{{2 */
|
/* foldtext_cleanup() {{{2 */
|
||||||
/*
|
/*
|
||||||
* Remove 'foldmarker' and 'commentstring' from "str" (in-place).
|
* Remove 'foldmarker' and 'commentstring' from "str" (in-place).
|
||||||
|
@@ -1276,9 +1276,9 @@ gui_mch_browse(int saving,
|
|||||||
char_u *initdir,
|
char_u *initdir,
|
||||||
char_u *filter)
|
char_u *filter)
|
||||||
{
|
{
|
||||||
GtkFileSelection *fs; /* shortcut */
|
GtkFileSelection *fs; /* shortcut */
|
||||||
char_u dirbuf[MAXPATHL];
|
char_u dirbuf[MAXPATHL];
|
||||||
char_u *p;
|
char_u *p;
|
||||||
|
|
||||||
# ifdef HAVE_GTK2
|
# ifdef HAVE_GTK2
|
||||||
title = CONVERT_TO_UTF8(title);
|
title = CONVERT_TO_UTF8(title);
|
||||||
@@ -1348,6 +1348,75 @@ gui_mch_browse(int saving,
|
|||||||
return vim_strsave(p);
|
return vim_strsave(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Put up a directory selector
|
||||||
|
* Returns the selected name in allocated memory, or NULL for Cancel.
|
||||||
|
* title title for the window
|
||||||
|
* dflt default name
|
||||||
|
* initdir initial directory, NULL for current dir
|
||||||
|
*/
|
||||||
|
/*ARGSUSED*/
|
||||||
|
char_u *
|
||||||
|
gui_mch_browsedir(
|
||||||
|
char_u *title,
|
||||||
|
char_u *initdir)
|
||||||
|
{
|
||||||
|
# if defined(GTK_FILE_CHOOSER) /* Only in GTK 2.4 and later. */
|
||||||
|
char_u dirbuf[MAXPATHL];
|
||||||
|
char_u *p;
|
||||||
|
GtkWidget *dirdlg; /* file selection dialog */
|
||||||
|
char_u *dirname = NULL;
|
||||||
|
|
||||||
|
title = CONVERT_TO_UTF8(title);
|
||||||
|
|
||||||
|
dirdlg = gtk_file_chooser_dialog_new(
|
||||||
|
(const gchar *)title,
|
||||||
|
GTK_WINDOW(gui.mainwin),
|
||||||
|
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||||
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
|
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
CONVERT_TO_UTF8_FREE(title);
|
||||||
|
|
||||||
|
/* if our pointer is currently hidden, then we should show it. */
|
||||||
|
gui_mch_mousehide(FALSE);
|
||||||
|
|
||||||
|
/* GTK appears to insist on an absolute path. */
|
||||||
|
if (initdir == NULL || *initdir == NUL
|
||||||
|
|| vim_FullName(initdir, dirbuf, MAXPATHL - 10, FALSE) == FAIL)
|
||||||
|
mch_dirname(dirbuf, MAXPATHL - 10);
|
||||||
|
|
||||||
|
/* Always need a trailing slash for a directory.
|
||||||
|
* Also add a dummy file name, so that we get to the directory. */
|
||||||
|
add_pathsep(dirbuf);
|
||||||
|
STRCAT(dirbuf, "@zd(*&1|");
|
||||||
|
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dirdlg),
|
||||||
|
(const gchar *)dirbuf);
|
||||||
|
|
||||||
|
/* Run the dialog. */
|
||||||
|
if (gtk_dialog_run(GTK_DIALOG(dirdlg)) == GTK_RESPONSE_ACCEPT)
|
||||||
|
dirname = (char_u *)gtk_file_chooser_get_filename(
|
||||||
|
GTK_FILE_CHOOSER(dirdlg));
|
||||||
|
gtk_widget_destroy(dirdlg);
|
||||||
|
if (dirname == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
/* shorten the file name if possible */
|
||||||
|
mch_dirname(dirbuf, MAXPATHL);
|
||||||
|
p = shorten_fname(dirname, dirbuf);
|
||||||
|
if (p == NULL || *p == NUL)
|
||||||
|
p = dirname;
|
||||||
|
p = vim_strsave(p);
|
||||||
|
g_free(dirname);
|
||||||
|
return p;
|
||||||
|
|
||||||
|
# else
|
||||||
|
/* For GTK 2.2 and earlier: fall back to ordinary file selector. */
|
||||||
|
return gui_mch_browse(0, title, NULL, NULL, initdir, NULL);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* FEAT_BROWSE */
|
#endif /* FEAT_BROWSE */
|
||||||
|
|
||||||
#if (defined(FEAT_GUI_DIALOG) && !defined(HAVE_GTK2)) || defined(PROTO)
|
#if (defined(FEAT_GUI_DIALOG) && !defined(HAVE_GTK2)) || defined(PROTO)
|
||||||
@@ -3038,4 +3107,3 @@ gui_gtk_position_in_parent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !HAVE_GTK2 */
|
#endif /* !HAVE_GTK2 */
|
||||||
|
|
||||||
|
10
src/misc2.c
10
src/misc2.c
@@ -3734,7 +3734,7 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir,
|
|||||||
{
|
{
|
||||||
int llevel;
|
int llevel;
|
||||||
int len;
|
int len;
|
||||||
char_u *errpt;
|
char *errpt;
|
||||||
|
|
||||||
/* save the fix part of the path */
|
/* save the fix part of the path */
|
||||||
ff_search_ctx->ffsc_fix_path = vim_strnsave(path,
|
ff_search_ctx->ffsc_fix_path = vim_strnsave(path,
|
||||||
@@ -3758,15 +3758,15 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir,
|
|||||||
ff_expand_buffer[len++] = *wc_part++;
|
ff_expand_buffer[len++] = *wc_part++;
|
||||||
ff_expand_buffer[len++] = *wc_part++;
|
ff_expand_buffer[len++] = *wc_part++;
|
||||||
|
|
||||||
llevel = strtol((char *)wc_part, (char **)&errpt, 10);
|
llevel = strtol((char *)wc_part, &errpt, 10);
|
||||||
if (errpt != wc_part && llevel > 0 && llevel < 255)
|
if ((char_u *)errpt != wc_part && llevel > 0 && llevel < 255)
|
||||||
ff_expand_buffer[len++] = llevel;
|
ff_expand_buffer[len++] = llevel;
|
||||||
else if (errpt != wc_part && llevel == 0)
|
else if ((char_u *)errpt != wc_part && llevel == 0)
|
||||||
/* restrict is 0 -> remove already added '**' */
|
/* restrict is 0 -> remove already added '**' */
|
||||||
len -= 2;
|
len -= 2;
|
||||||
else
|
else
|
||||||
ff_expand_buffer[len++] = FF_MAX_STAR_STAR_EXPAND;
|
ff_expand_buffer[len++] = FF_MAX_STAR_STAR_EXPAND;
|
||||||
wc_part = errpt;
|
wc_part = (char_u *)errpt;
|
||||||
if (*wc_part != PATHSEP && *wc_part != NUL)
|
if (*wc_part != PATHSEP && *wc_part != NUL)
|
||||||
{
|
{
|
||||||
EMSG2(_("E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'."), PATHSEPSTR);
|
EMSG2(_("E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'."), PATHSEPSTR);
|
||||||
|
@@ -941,10 +941,10 @@ static struct vimoption
|
|||||||
# ifdef FEAT_EVAL
|
# ifdef FEAT_EVAL
|
||||||
(char_u *)VAR_WIN, PV_FDT,
|
(char_u *)VAR_WIN, PV_FDT,
|
||||||
{(char_u *)"foldtext()", (char_u *)NULL}
|
{(char_u *)"foldtext()", (char_u *)NULL}
|
||||||
#else
|
# else
|
||||||
(char_u *)NULL, PV_NONE,
|
(char_u *)NULL, PV_NONE,
|
||||||
{(char_u *)NULL, (char_u *)0L}
|
{(char_u *)NULL, (char_u *)0L}
|
||||||
#endif
|
# endif
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
{"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST,
|
{"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST,
|
||||||
|
@@ -12,6 +12,7 @@ void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int
|
|||||||
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
|
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
|
||||||
void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
|
void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
|
||||||
char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
|
char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
|
||||||
|
char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
|
||||||
int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
|
int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
|
||||||
int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
|
int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
|
||||||
void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
|
void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
|
||||||
|
@@ -12,6 +12,7 @@ int emsgn __ARGS((char_u *s, long n));
|
|||||||
char_u *msg_trunc_attr __ARGS((char_u *s, int force, int attr));
|
char_u *msg_trunc_attr __ARGS((char_u *s, int force, int attr));
|
||||||
char_u *msg_may_trunc __ARGS((int force, char_u *s));
|
char_u *msg_may_trunc __ARGS((int force, char_u *s));
|
||||||
void ex_messages __ARGS((exarg_T *eap));
|
void ex_messages __ARGS((exarg_T *eap));
|
||||||
|
void msg_end_prompt __ARGS((void));
|
||||||
void wait_return __ARGS((int redraw));
|
void wait_return __ARGS((int redraw));
|
||||||
void set_keep_msg __ARGS((char_u *s));
|
void set_keep_msg __ARGS((char_u *s));
|
||||||
void msg_start __ARGS((void));
|
void msg_start __ARGS((void));
|
||||||
@@ -54,5 +55,5 @@ void display_confirm_msg __ARGS((void));
|
|||||||
int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
|
int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
|
||||||
int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
|
int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
|
||||||
int vim_dialog_yesnoallcancel __ARGS((int type, char_u *title, char_u *message, int dflt));
|
int vim_dialog_yesnoallcancel __ARGS((int type, char_u *title, char_u *message, int dflt));
|
||||||
char_u *do_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter, buf_T *buf));
|
char_u *do_browse __ARGS((int flags, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter, buf_T *buf));
|
||||||
/* vim: set ft=c : */
|
/* vim: set ft=c : */
|
||||||
|
@@ -2583,8 +2583,9 @@ ungetchr()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get and return the value of the hex string immediately after the current
|
* Get and return the value of the hex string at the current position.
|
||||||
* position. Return -1 for invalid, or 0-255 for valid. Position is updated:
|
* Return -1 if there is no valid hex number.
|
||||||
|
* The position is updated:
|
||||||
* blahblah\%x20asdf
|
* blahblah\%x20asdf
|
||||||
* before-^ ^-after
|
* before-^ ^-after
|
||||||
* The parameter controls the maximum number of input characters. This will be
|
* The parameter controls the maximum number of input characters. This will be
|
||||||
|
69
src/screen.c
69
src/screen.c
@@ -2020,9 +2020,8 @@ fold_line(wp, fold_count, foldinfo, lnum, row)
|
|||||||
linenr_T lnume = lnum + fold_count - 1;
|
linenr_T lnume = lnum + fold_count - 1;
|
||||||
int len;
|
int len;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
char_u *text = NULL;
|
char_u *text;
|
||||||
int fdc;
|
int fdc;
|
||||||
int level;
|
|
||||||
int col;
|
int col;
|
||||||
int txtcol;
|
int txtcol;
|
||||||
int off = (int)(current_ScreenLine - ScreenLines);
|
int off = (int)(current_ScreenLine - ScreenLines);
|
||||||
@@ -2139,71 +2138,7 @@ fold_line(wp, fold_count, foldinfo, lnum, row)
|
|||||||
/*
|
/*
|
||||||
* 4. Compose the folded-line string with 'foldtext', if set.
|
* 4. Compose the folded-line string with 'foldtext', if set.
|
||||||
*/
|
*/
|
||||||
#ifdef FEAT_EVAL
|
text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
if (*wp->w_p_fdt != NUL)
|
|
||||||
{
|
|
||||||
char_u dashes[51];
|
|
||||||
win_T *save_curwin;
|
|
||||||
|
|
||||||
/* Set "v:foldstart" and "v:foldend". */
|
|
||||||
set_vim_var_nr(VV_FOLDSTART, lnum);
|
|
||||||
set_vim_var_nr(VV_FOLDEND, lnume);
|
|
||||||
|
|
||||||
/* Set "v:folddashes" to a string of "level" dashes. */
|
|
||||||
/* Set "v:foldlevel" to "level". */
|
|
||||||
level = foldinfo->fi_level;
|
|
||||||
if (level > 50)
|
|
||||||
level = 50;
|
|
||||||
vim_memset(dashes, '-', (size_t)level);
|
|
||||||
dashes[level] = NUL;
|
|
||||||
set_vim_var_string(VV_FOLDDASHES, dashes, -1);
|
|
||||||
set_vim_var_nr(VV_FOLDLEVEL, (long)level);
|
|
||||||
save_curwin = curwin;
|
|
||||||
curwin = wp;
|
|
||||||
curbuf = wp->w_buffer;
|
|
||||||
|
|
||||||
++emsg_off;
|
|
||||||
text = eval_to_string_safe(wp->w_p_fdt, NULL);
|
|
||||||
--emsg_off;
|
|
||||||
|
|
||||||
curwin = save_curwin;
|
|
||||||
curbuf = curwin->w_buffer;
|
|
||||||
set_vim_var_string(VV_FOLDDASHES, NULL, -1);
|
|
||||||
|
|
||||||
if (text != NULL)
|
|
||||||
{
|
|
||||||
/* Replace unprintable characters, if there are any. But
|
|
||||||
* replace a TAB with a space. */
|
|
||||||
for (p = text; *p != NUL; ++p)
|
|
||||||
{
|
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
if (has_mbyte && (len = (*mb_ptr2len_check)(p)) > 1)
|
|
||||||
{
|
|
||||||
if (!vim_isprintc((*mb_ptr2char)(p)))
|
|
||||||
break;
|
|
||||||
p += len - 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
if (*p == TAB)
|
|
||||||
*p = ' ';
|
|
||||||
else if (ptr2cells(p) > 1)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (*p != NUL)
|
|
||||||
{
|
|
||||||
p = transstr(text);
|
|
||||||
vim_free(text);
|
|
||||||
text = p;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (text == NULL)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
sprintf((char *)buf, _("+--%3ld lines folded "), fold_count);
|
|
||||||
text = buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtcol = col; /* remember where text starts */
|
txtcol = col; /* remember where text starts */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user