+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.201
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.201
-Problem: When 'autowriteall' is set ":qall" still refuses to exit if there
- is a modified buffer. (Antoine Mechelynck)
-Solution: Attempt writing modified buffers as intended.
-Files: src/ex_cmds2.c
-
-
-*** ../vim-6.2.200/src/ex_cmds2.c Wed Nov 12 20:50:01 2003
---- src/ex_cmds2.c Wed Jan 21 16:57:12 2004
-***************
-*** 876,885 ****
- win_T *wp;
- #endif
-
-- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- for (;;)
- {
-- #endif
- /* check curbuf first: if it was changed we can't abandon it */
- if (!hidden && curbufIsChanged())
- buf = curbuf;
---- 876,883 ----
-***************
-*** 892,907 ****
- if (buf == NULL) /* No buffers changed */
- return FALSE;
-
-! #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
-! if (p_confirm || cmdmod.confirm)
-! {
-! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
-! break; /* didn't save - still changes */
-! }
-! else
-! break; /* confirm not active - has changes */
- }
-- #endif
-
- exiting = FALSE;
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
---- 890,898 ----
- if (buf == NULL) /* No buffers changed */
- return FALSE;
-
-! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
-! break; /* didn't save - still changes */
- }
-
- exiting = FALSE;
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
-*** ../vim-6.2.200/src/version.c Sun Jan 25 19:45:13 2004
---- src/version.c Sun Jan 25 19:54:00 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 201,
- /**/
-
---
- Another bucket of what can only be described as human ordure hits ARTHUR.
-ARTHUR: ... Right! (to the KNIGHTS) That settles it!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.202
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.202
-Problem: Filetype names of CHILL and ch script are confusing.
-Solution: Rename "ch" to "chill" and "chscript" to "ch".
-Files: runtime/filetype.vim, runtime/makemenu.vim, runtime/synmenu.vim,
- runtime/syntax/ch.vim, runtime/syntax/chill.vim
-
-
-*** ../vim-6.2.201/runtime/filetype.vim Tue Sep 9 22:18:18 2003
---- runtime/filetype.vim Sat Jan 24 20:54:12 2004
-***************
-*** 1,7 ****
- " Vim support file to detect file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2003 Aug 17
-
- " Listen very carefully, I will say this only once
- if exists("did_load_filetypes")
---- 1,7 ----
- " Vim support file to detect file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2004 Jan 24
-
- " Listen very carefully, I will say this only once
- if exists("did_load_filetypes")
-***************
-*** 260,268 ****
- au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp
- endif
-
-! " .h files can be C or C++, set c_syntax_for_h if you want C
- au BufNewFile,BufRead *.h
-! \ if exists("c_syntax_for_h") | setf c | else | setf cpp | endif
-
- " TLH files are C++ headers generated by Visual C++'s #import from typelibs
- au BufNewFile,BufRead *.tlh setf cpp
---- 263,277 ----
- au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp
- endif
-
-! " .h files can be C, Ch or C++, set c_syntax_for_h if you want C,
-! " ch_syntax_for_h if you want Ch.
- au BufNewFile,BufRead *.h
-! \ if exists("c_syntax_for_h") | setf c |
-! \ elseif exists("ch_syntax_for_h") | setf ch |
-! \ else | setf cpp | endif
-!
-! " Ch (CHscript)
-! au BufNewFile,BufRead *.chf setf ch
-
- " TLH files are C++ headers generated by Visual C++'s #import from typelibs
- au BufNewFile,BufRead *.tlh setf cpp
-***************
-*** 279,291 ****
- \| setf debchangelog | else | setf changelog | endif
-
- " CHILL
-! au BufNewFile,BufRead *..ch setf ch
-
- " Changes for WEB and CWEB or CHILL
- au BufNewFile,BufRead *.ch call <SID>FTchange()
-
- " This function checks if one of the first ten lines start with a '@'. In
-! " that case it is probably a change file, otherwise CHILL is assumed.
- fun! <SID>FTchange()
- let lnum = 1
- while lnum <= 10
---- 288,303 ----
- \| setf debchangelog | else | setf changelog | endif
-
- " CHILL
-! au BufNewFile,BufRead *..ch setf chill
-
- " Changes for WEB and CWEB or CHILL
- au BufNewFile,BufRead *.ch call <SID>FTchange()
-
- " This function checks if one of the first ten lines start with a '@'. In
-! " that case it is probably a change file.
-! " If the first line starts with # or ! it's probably a ch file.
-! " If a line has "main", "include", "//" ir "/*" it's probably ch.
-! " Otherwise CHILL is assumed.
- fun! <SID>FTchange()
- let lnum = 1
- while lnum <= 10
-***************
-*** 293,301 ****
- setf change
- return
- endif
- let lnum = lnum + 1
- endwhile
-! setf ch
- endfun
-
- " Clean
---- 305,325 ----
- setf change
- return
- endif
-+ if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!'
-+ setf ch
-+ return
-+ endif
-+ if getline(lnum) =~ "MODULE"
-+ setf chill
-+ return
-+ endif
-+ if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
-+ setf ch
-+ return
-+ endif
- let lnum = lnum + 1
- endwhile
-! setf chill
- endfun
-
- " Clean
-*** ../vim-6.2.201/runtime/makemenu.vim Wed May 14 19:49:47 2003
---- runtime/makemenu.vim Sun Jan 25 20:03:46 2004
-***************
-*** 1,6 ****
- " Script to define the syntax menu in synmenu.vim
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2003 May 14
-
- " This is used by "make menu" in the src directory.
- edit <sfile>:p:h/synmenu.vim
---- 1,6 ----
- " Script to define the syntax menu in synmenu.vim
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2004 Jan 25
-
- " This is used by "make menu" in the src directory.
- edit <sfile>:p:h/synmenu.vim
-***************
-*** 99,107 ****
- SynMenu CD.Cynlib:cynlib
- SynMenu CD.Cascading\ Style\ Sheets:css
- SynMenu CD.Century\ Term:cterm
-! SynMenu CD.CHILL:ch
- SynMenu CD.ChangeLog:changelog
- SynMenu CD.Cheetah\ template:cheetah
- SynMenu CD.Clean:clean
- SynMenu CD.Clever:cl
- SynMenu CD.Clipper:clipper
---- 100,109 ----
- SynMenu CD.Cynlib:cynlib
- SynMenu CD.Cascading\ Style\ Sheets:css
- SynMenu CD.Century\ Term:cterm
-! SynMenu CD.CH\ script:ch
- SynMenu CD.ChangeLog:changelog
- SynMenu CD.Cheetah\ template:cheetah
-+ SynMenu CD.CHILL:chill
- SynMenu CD.Clean:clean
- SynMenu CD.Clever:cl
- SynMenu CD.Clipper:clipper
-*** ../vim-6.2.201/runtime/synmenu.vim Sat Jul 5 19:14:04 2003
---- runtime/synmenu.vim Sun Jan 25 20:03:50 2004
-***************
-*** 81,117 ****
- an 50.20.160 &Syntax.CD.Cynlib :cal SetSyn("cynlib")<CR>
- an 50.20.170 &Syntax.CD.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
- an 50.20.180 &Syntax.CD.Century\ Term :cal SetSyn("cterm")<CR>
-! an 50.20.190 &Syntax.CD.CHILL :cal SetSyn("ch")<CR>
- an 50.20.200 &Syntax.CD.ChangeLog :cal SetSyn("changelog")<CR>
- an 50.20.210 &Syntax.CD.Cheetah\ template :cal SetSyn("cheetah")<CR>
-! an 50.20.220 &Syntax.CD.Clean :cal SetSyn("clean")<CR>
-! an 50.20.230 &Syntax.CD.Clever :cal SetSyn("cl")<CR>
-! an 50.20.240 &Syntax.CD.Clipper :cal SetSyn("clipper")<CR>
-! an 50.20.250 &Syntax.CD.Cold\ Fusion :cal SetSyn("cf")<CR>
-! an 50.20.260 &Syntax.CD.Config.Cfg\ Config\ file :cal SetSyn("cfg")<CR>
-! an 50.20.270 &Syntax.CD.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
-! an 50.20.280 &Syntax.CD.Config.Configure\.in :cal SetSyn("config")<CR>
-! an 50.20.290 &Syntax.CD.Ctrl-H :cal SetSyn("ctrlh")<CR>
-! an 50.20.300 &Syntax.CD.Cobol :cal SetSyn("cobol")<CR>
-! an 50.20.310 &Syntax.CD.CSP :cal SetSyn("csp")<CR>
-! an 50.20.320 &Syntax.CD.CUPL.CUPL :cal SetSyn("cupl")<CR>
-! an 50.20.330 &Syntax.CD.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
-! an 50.20.340 &Syntax.CD.CVS.commit\ file :cal SetSyn("cvs")<CR>
-! an 50.20.350 &Syntax.CD.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
-! an 50.20.370 &Syntax.CD.Debian.Debian\ ChangeLog :cal SetSyn("debchangelog")<CR>
-! an 50.20.380 &Syntax.CD.Debian.Debian\ Control :cal SetSyn("debcontrol")<CR>
-! an 50.20.390 &Syntax.CD.Diff :cal SetSyn("diff")<CR>
-! an 50.20.400 &Syntax.CD.Digital\ Command\ Lang :cal SetSyn("dcl")<CR>
-! an 50.20.410 &Syntax.CD.DNS/BIND\ zone :cal SetSyn("dns")<CR>
-! an 50.20.420 &Syntax.CD.DocBook :cal SetSyn("docbk")<CR>
-! an 50.20.430 &Syntax.CD.Dot :cal SetSyn("dot")<CR>
-! an 50.20.440 &Syntax.CD.Dracula :cal SetSyn("dracula")<CR>
-! an 50.20.450 &Syntax.CD.DSSSL :cal SetSyn("dsl")<CR>
-! an 50.20.460 &Syntax.CD.DTD :cal SetSyn("dtd")<CR>
-! an 50.20.470 &Syntax.CD.DTML\ (Zope) :cal SetSyn("dtml")<CR>
-! an 50.20.480 &Syntax.CD.Dylan.Dylan :cal SetSyn("dylan")<CR>
-! an 50.20.490 &Syntax.CD.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
-! an 50.20.500 &Syntax.CD.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
- an 50.30.100 &Syntax.EFG.EDIF :cal SetSyn("edif")<CR>
- an 50.30.110 &Syntax.EFG.Eiffel :cal SetSyn("eiffel")<CR>
- an 50.30.120 &Syntax.EFG.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
---- 82,120 ----
- an 50.20.160 &Syntax.CD.Cynlib :cal SetSyn("cynlib")<CR>
- an 50.20.170 &Syntax.CD.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
- an 50.20.180 &Syntax.CD.Century\ Term :cal SetSyn("cterm")<CR>
-! an 50.20.190 &Syntax.CD.CH\ script :cal SetSyn("ch")<CR>
- an 50.20.200 &Syntax.CD.ChangeLog :cal SetSyn("changelog")<CR>
- an 50.20.210 &Syntax.CD.Cheetah\ template :cal SetSyn("cheetah")<CR>
-! an 50.20.220 &Syntax.CD.CHILL :cal SetSyn("chill")<CR>
-! an 50.20.230 &Syntax.CD.Clean :cal SetSyn("clean")<CR>
-! an 50.20.240 &Syntax.CD.Clever :cal SetSyn("cl")<CR>
-! an 50.20.250 &Syntax.CD.Clipper :cal SetSyn("clipper")<CR>
-! an 50.20.260 &Syntax.CD.Cold\ Fusion :cal SetSyn("cf")<CR>
-! an 50.20.270 &Syntax.CD.Config.Cfg\ Config\ file :cal SetSyn("cfg")<CR>
-! an 50.20.280 &Syntax.CD.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
-! an 50.20.290 &Syntax.CD.Config.Configure\.in :cal SetSyn("config")<CR>
-! an 50.20.300 &Syntax.CD.Ctrl-H :cal SetSyn("ctrlh")<CR>
-! an 50.20.310 &Syntax.CD.Cobol :cal SetSyn("cobol")<CR>
-! an 50.20.320 &Syntax.CD.CSP :cal SetSyn("csp")<CR>
-! an 50.20.330 &Syntax.CD.CUPL.CUPL :cal SetSyn("cupl")<CR>
-! an 50.20.340 &Syntax.CD.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
-! an 50.20.350 &Syntax.CD.CVS.commit\ file :cal SetSyn("cvs")<CR>
-! an 50.20.360 &Syntax.CD.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
-! an 50.20.380 &Syntax.CD.Debian.Debian\ ChangeLog :cal SetSyn("debchangelog")<CR>
-! an 50.20.390 &Syntax.CD.Debian.Debian\ Control :cal SetSyn("debcontrol")<CR>
-! an 50.20.400 &Syntax.CD.Diff :cal SetSyn("diff")<CR>
-! an 50.20.410 &Syntax.CD.Digital\ Command\ Lang :cal SetSyn("dcl")<CR>
-! an 50.20.420 &Syntax.CD.Dircolors :cal SetSyn("dircolors")<CR>
-! an 50.20.430 &Syntax.CD.DNS/BIND\ zone :cal SetSyn("dns")<CR>
-! an 50.20.440 &Syntax.CD.DocBook :cal SetSyn("docbk")<CR>
-! an 50.20.450 &Syntax.CD.Dot :cal SetSyn("dot")<CR>
-! an 50.20.460 &Syntax.CD.Dracula :cal SetSyn("dracula")<CR>
-! an 50.20.470 &Syntax.CD.DSSSL :cal SetSyn("dsl")<CR>
-! an 50.20.480 &Syntax.CD.DTD :cal SetSyn("dtd")<CR>
-! an 50.20.490 &Syntax.CD.DTML\ (Zope) :cal SetSyn("dtml")<CR>
-! an 50.20.500 &Syntax.CD.Dylan.Dylan :cal SetSyn("dylan")<CR>
-! an 50.20.510 &Syntax.CD.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
-! an 50.20.520 &Syntax.CD.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
- an 50.30.100 &Syntax.EFG.EDIF :cal SetSyn("edif")<CR>
- an 50.30.110 &Syntax.EFG.Eiffel :cal SetSyn("eiffel")<CR>
- an 50.30.120 &Syntax.EFG.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
-*** ../vim-6.2.201/runtime/syntax/ch.vim Thu May 10 21:49:39 2001
---- runtime/syntax/ch.vim Tue Aug 12 22:56:32 2003
-***************
-*** 1,16 ****
- " Vim syntax file
-! " Language: CHILL
-! " Maintainer: YoungSang Yoon <image@lgic.co.kr>
-! " Last change: 2001 May 10
- "
-
-- " first created by image@lgic.co.kr & modified by paris@lgic.co.kr
--
-- " CHILL (CCITT High Level Programming Language) is used for
-- " developing software of ATM switch at LGIC (LG Information
-- " & Communications LTd.)
--
--
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
---- 1,13 ----
- " Vim syntax file
-! " Language: Ch
-! " Maintainer: SoftIntegration, Inc. <info@softintegration.com>
-! " URL: http://www.softintegration.com/download/vim/syntax/ch.vim
-! " Last change: 2003 Aug 05
-! " Created based on cpp.vim
-! "
-! " Ch is a C/C++ interpreter with many high level extensions
- "
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
-***************
-*** 19,131 ****
- finish
- endif
-
-! " A bunch of useful CHILL keywords
-! syn keyword chStatement goto GOTO return RETURN returns RETURNS
-! syn keyword chLabel CASE case ESAC esac
-! syn keyword chConditional if IF else ELSE elsif ELSIF switch SWITCH THEN then FI fi
-! syn keyword chLogical NOT not
-! syn keyword chRepeat while WHILE for FOR do DO od OD TO to
-! syn keyword chProcess START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
-! syn keyword chBlock PROC proc PROCESS process
-! syn keyword chSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever
-!
-! syn keyword chTodo contained TODO FIXME XXX
-!
-! " String and Character constants
-! " Highlight special characters (those which have a backslash) differently
-! syn match chSpecial contained "\\x\x\+\|\\\o\{1,3\}\|\\.\|\\$"
-! syn region chString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=chSpecial
-! syn match chCharacter "'[^\\]'"
-! syn match chSpecialCharacter "'\\.'"
-! syn match chSpecialCharacter "'\\\o\{1,3\}'"
-!
-! "when wanted, highlight trailing white space
-! if exists("ch_space_errors")
-! syn match chSpaceError "\s*$"
-! syn match chSpaceError " \+\t"me=e-1
-! endif
-!
-! "catch errors caused by wrong parenthesis
-! syn cluster chParenGroup contains=chParenError,chIncluded,chSpecial,chTodo,chUserCont,chUserLabel,chBitField
-! syn region chParen transparent start='(' end=')' contains=ALLBUT,@chParenGroup
-! syn match chParenError ")"
-! syn match chInParen contained "[{}]"
-!
-! "integer number, or floating point number without a dot and with "f".
-! syn case ignore
-! syn match chNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
-! "floating point number, with dot, optional exponent
-! syn match chFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
-! "floating point number, starting with a dot, optional exponent
-! syn match chFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
-! "floating point number, without dot, with exponent
-! syn match chFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
-! "hex number
-! syn match chNumber "\<0x\x\+\(u\=l\=\|lu\)\>"
-! "syn match chIdentifier "\<[a-z_][a-z0-9_]*\>"
-! syn case match
-! " flag an octal number with wrong digits
-! syn match chOctalError "\<0\o*[89]"
-!
-! if exists("ch_comment_strings")
-! " A comment can contain chString, chCharacter and chNumber.
-! " But a "*/" inside a chString in a chComment DOES end the comment! So we
-! " need to use a special type of chString: chCommentString, which also ends on
-! " "*/", and sees a "*" at the start of the line as comment again.
-! " Unfortunately this doesn't very well work for // type of comments :-(
-! syntax match chCommentSkip contained "^\s*\*\($\|\s\+\)"
-! syntax region chCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=chSpecial,chCommentSkip
-! syntax region chComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=chSpecial
-! syntax region chComment start="/\*" end="\*/" contains=chTodo,chCommentString,chCharacter,chNumber,chFloat,chSpaceError
-! syntax match chComment "//.*" contains=chTodo,chComment2String,chCharacter,chNumber,chSpaceError
- else
-! syn region chComment start="/\*" end="\*/" contains=chTodo,chSpaceError
-! syn match chComment "//.*" contains=chTodo,chSpaceError
- endif
-- syntax match chCommentError "\*/"
--
-- syn keyword chOperator SIZE size
-- syn keyword chType dcl DCL int INT char CHAR bool BOOL REF ref LOC loc INSTANCE instance
-- syn keyword chStructure struct STRUCT enum ENUM newmode NEWMODE synmode SYNMODE
-- "syn keyword chStorageClass
-- syn keyword chBlock PROC proc END end
-- syn keyword chScope GRANT grant SEIZE seize
-- syn keyword chEDML select SELECT delete DELETE update UPDATE in IN seq SEQ WHERE where INSERT insert include INCLUDE exclude EXCLUDE
-- syn keyword chBoolConst true TRUE false FALSE
--
-- syn region chPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=chComment,chString,chCharacter,chNumber,chCommentError,chSpaceError
-- syn region chIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-- syn match chIncluded contained "<[^>]*>"
-- syn match chInclude "^\s*#\s*include\>\s*["<]" contains=chIncluded
-- "syn match chLineSkip "\\$"
-- syn cluster chPreProcGroup contains=chPreCondit,chIncluded,chInclude,chDefine,chInParen,chUserLabel
-- syn region chDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@chPreProcGroup
-- syn region chPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,@chPreProcGroup
-
-! " Highlight User Labels
-! syn cluster chMultiGroup contains=chIncluded,chSpecial,chTodo,chUserCont,chUserLabel,chBitField
-! syn region chMulti transparent start='?' end=':' contains=ALLBUT,@chMultiGroup
-! " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
-! syn match chUserCont "^\s*\I\i*\s*:$" contains=chUserLabel
-! syn match chUserCont ";\s*\I\i*\s*:$" contains=chUserLabel
-! syn match chUserCont "^\s*\I\i*\s*:[^:]"me=e-1 contains=chUserLabel
-! syn match chUserCont ";\s*\I\i*\s*:[^:]"me=e-1 contains=chUserLabel
-
-! syn match chUserLabel "\I\i*" contained
-
-! " Avoid recognizing most bitfields as labels
-! syn match chBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1
-! syn match chBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1
-!
-! syn match chBracket contained "[<>]"
-! if !exists("ch_minlines")
-! let ch_minlines = 15
-! endif
-! exec "syn sync ccomment chComment minlines=" . ch_minlines
-!
-! " 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_ch_syntax_inits")
- if version < 508
- let did_ch_syntax_inits = 1
---- 16,38 ----
- finish
- endif
-
-! " Read the C syntax to start with
-! if version < 600
-! so <sfile>:p:h/c.vim
- else
-! runtime! syntax/c.vim
-! unlet b:current_syntax
- endif
-
-! " Ch extentions
-
-! syn keyword chStatement new delete this
-! syn keyword chAccess public private
-! syn keyword chStorageClass __declspec(global) __declspec(local)
-! syn keyword chStructure class
-! syn keyword chType string_t array
-
-! " Default highlighting
- if version >= 508 || !exists("did_ch_syntax_inits")
- if version < 508
- let did_ch_syntax_inits = 1
-***************
-*** 133,188 ****
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-!
-! HiLink chLabel Label
-! HiLink chUserLabel Label
-! HiLink chConditional Conditional
-! " hi chConditional term=bold ctermfg=red guifg=red gui=bold
-!
-! HiLink chRepeat Repeat
-! HiLink chProcess Repeat
-! HiLink chSignal Repeat
-! HiLink chCharacter Character
-! HiLink chSpecialCharacter chSpecial
-! HiLink chNumber Number
-! HiLink chFloat Float
-! HiLink chOctalError chError
-! HiLink chParenError chError
-! HiLink chInParen chError
-! HiLink chCommentError chError
-! HiLink chSpaceError chError
-! HiLink chOperator Operator
-! HiLink chStructure Structure
-! HiLink chBlock Operator
-! HiLink chScope Operator
-! "hi chEDML term=underline ctermfg=DarkRed guifg=Red
-! HiLink chEDML PreProc
-! "hi chBoolConst term=bold ctermfg=brown guifg=brown
-! HiLink chBoolConst Constant
-! "hi chLogical term=bold ctermfg=brown guifg=brown
-! HiLink chLogical Constant
-! HiLink chStorageClass StorageClass
-! HiLink chInclude Include
-! HiLink chPreProc PreProc
-! HiLink chDefine Macro
-! HiLink chIncluded chString
-! HiLink chError Error
-! HiLink chStatement Statement
-! HiLink chPreCondit PreCondit
-! HiLink chType Type
-! HiLink chCommentError chError
-! HiLink chCommentString chString
-! HiLink chComment2String chString
-! HiLink chCommentSkip chComment
-! HiLink chString String
-! HiLink chComment Comment
-! " hi chComment term=None ctermfg=lightblue guifg=lightblue
-! HiLink chSpecial SpecialChar
-! HiLink chTodo Todo
-! HiLink chBlock Statement
-! "HiLink chIdentifier Identifier
-! HiLink chBracket Delimiter
-!
- delcommand HiLink
- endif
-
---- 40,50 ----
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-! HiLink chAccess chStatement
-! HiLink chExceptions Exception
-! HiLink chStatement Statement
-! HiLink chType Type
-! HiLink chStructure Structure
- delcommand HiLink
- endif
-
-*** ../vim-6.2.201/runtime/syntax/chill.vim Sun Jan 25 20:08:47 2004
---- runtime/syntax/chill.vim Wed Jan 21 17:52:15 2004
-***************
-*** 0 ****
---- 1,191 ----
-+ " Vim syntax file
-+ " Language: CHILL
-+ " Maintainer: YoungSang Yoon <image@lgic.co.kr>
-+ " Last change: 2004 Jan 21
-+ "
-+
-+ " first created by image@lgic.co.kr & modified by paris@lgic.co.kr
-+
-+ " CHILL (CCITT High Level Programming Language) is used for
-+ " developing software of ATM switch at LGIC (LG Information
-+ " & Communications LTd.)
-+
-+
-+ " 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")
-+ finish
-+ endif
-+
-+ " A bunch of useful CHILL keywords
-+ syn keyword chillStatement goto GOTO return RETURN returns RETURNS
-+ syn keyword chillLabel CASE case ESAC esac
-+ syn keyword chillConditional if IF else ELSE elsif ELSIF switch SWITCH THEN then FI fi
-+ syn keyword chillLogical NOT not
-+ syn keyword chillRepeat while WHILE for FOR do DO od OD TO to
-+ syn keyword chillProcess START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
-+ syn keyword chillBlock PROC proc PROCESS process
-+ syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever
-+
-+ syn keyword chillTodo contained TODO FIXME XXX
-+
-+ " String and Character constants
-+ " Highlight special characters (those which have a backslash) differently
-+ syn match chillSpecial contained "\\x\x\+\|\\\o\{1,3\}\|\\.\|\\$"
-+ syn region chillString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=chillSpecial
-+ syn match chillCharacter "'[^\\]'"
-+ syn match chillSpecialCharacter "'\\.'"
-+ syn match chillSpecialCharacter "'\\\o\{1,3\}'"
-+
-+ "when wanted, highlight trailing white space
-+ if exists("chill_space_errors")
-+ syn match chillSpaceError "\s*$"
-+ syn match chillSpaceError " \+\t"me=e-1
-+ endif
-+
-+ "catch errors caused by wrong parenthesis
-+ syn cluster chillParenGroup contains=chillParenError,chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
-+ syn region chillParen transparent start='(' end=')' contains=ALLBUT,@chillParenGroup
-+ syn match chillParenError ")"
-+ syn match chillInParen contained "[{}]"
-+
-+ "integer number, or floating point number without a dot and with "f".
-+ syn case ignore
-+ syn match chillNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
-+ "floating point number, with dot, optional exponent
-+ syn match chillFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
-+ "floating point number, starting with a dot, optional exponent
-+ syn match chillFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
-+ "floating point number, without dot, with exponent
-+ syn match chillFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
-+ "hex number
-+ syn match chillNumber "\<0x\x\+\(u\=l\=\|lu\)\>"
-+ "syn match chillIdentifier "\<[a-z_][a-z0-9_]*\>"
-+ syn case match
-+ " flag an octal number with wrong digits
-+ syn match chillOctalError "\<0\o*[89]"
-+
-+ if exists("chill_comment_strings")
-+ " A comment can contain chillString, chillCharacter and chillNumber.
-+ " But a "*/" inside a chillString in a chillComment DOES end the comment! So we
-+ " need to use a special type of chillString: chillCommentString, which also ends on
-+ " "*/", and sees a "*" at the start of the line as comment again.
-+ " Unfortunately this doesn't very well work for // type of comments :-(
-+ syntax match chillCommentSkip contained "^\s*\*\($\|\s\+\)"
-+ syntax region chillCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=chillSpecial,chillCommentSkip
-+ syntax region chillComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=chillSpecial
-+ syntax region chillComment start="/\*" end="\*/" contains=chillTodo,chillCommentString,chillCharacter,chillNumber,chillFloat,chillSpaceError
-+ syntax match chillComment "//.*" contains=chillTodo,chillComment2String,chillCharacter,chillNumber,chillSpaceError
-+ else
-+ syn region chillComment start="/\*" end="\*/" contains=chillTodo,chillSpaceError
-+ syn match chillComment "//.*" contains=chillTodo,chillSpaceError
-+ endif
-+ syntax match chillCommentError "\*/"
-+
-+ syn keyword chillOperator SIZE size
-+ syn keyword chillType dcl DCL int INT char CHAR bool BOOL REF ref LOC loc INSTANCE instance
-+ syn keyword chillStructure struct STRUCT enum ENUM newmode NEWMODE synmode SYNMODE
-+ "syn keyword chillStorageClass
-+ syn keyword chillBlock PROC proc END end
-+ syn keyword chillScope GRANT grant SEIZE seize
-+ syn keyword chillEDML select SELECT delete DELETE update UPDATE in IN seq SEQ WHERE where INSERT insert include INCLUDE exclude EXCLUDE
-+ syn keyword chillBoolConst true TRUE false FALSE
-+
-+ syn region chillPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=chillComment,chillString,chillCharacter,chillNumber,chillCommentError,chillSpaceError
-+ syn region chillIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-+ syn match chillIncluded contained "<[^>]*>"
-+ syn match chillInclude "^\s*#\s*include\>\s*["<]" contains=chillIncluded
-+ "syn match chillLineSkip "\\$"
-+ syn cluster chillPreProcGroup contains=chillPreCondit,chillIncluded,chillInclude,chillDefine,chillInParen,chillUserLabel
-+ syn region chillDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup
-+ syn region chillPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup
-+
-+ " Highlight User Labels
-+ syn cluster chillMultiGroup contains=chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
-+ syn region chillMulti transparent start='?' end=':' contains=ALLBUT,@chillMultiGroup
-+ " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
-+ syn match chillUserCont "^\s*\I\i*\s*:$" contains=chillUserLabel
-+ syn match chillUserCont ";\s*\I\i*\s*:$" contains=chillUserLabel
-+ syn match chillUserCont "^\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel
-+ syn match chillUserCont ";\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel
-+
-+ syn match chillUserLabel "\I\i*" contained
-+
-+ " Avoid recognizing most bitfields as labels
-+ syn match chillBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1
-+ syn match chillBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1
-+
-+ syn match chillBracket contained "[<>]"
-+ if !exists("chill_minlines")
-+ let chill_minlines = 15
-+ endif
-+ exec "syn sync ccomment chillComment minlines=" . chill_minlines
-+
-+ " 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_ch_syntax_inits")
-+ if version < 508
-+ let did_ch_syntax_inits = 1
-+ command -nargs=+ HiLink hi link <args>
-+ else
-+ command -nargs=+ HiLink hi def link <args>
-+ endif
-+
-+ HiLink chillLabel Label
-+ HiLink chillUserLabel Label
-+ HiLink chillConditional Conditional
-+ " hi chillConditional term=bold ctermfg=red guifg=red gui=bold
-+
-+ HiLink chillRepeat Repeat
-+ HiLink chillProcess Repeat
-+ HiLink chillSignal Repeat
-+ HiLink chillCharacter Character
-+ HiLink chillSpecialCharacter chillSpecial
-+ HiLink chillNumber Number
-+ HiLink chillFloat Float
-+ HiLink chillOctalError chillError
-+ HiLink chillParenError chillError
-+ HiLink chillInParen chillError
-+ HiLink chillCommentError chillError
-+ HiLink chillSpaceError chillError
-+ HiLink chillOperator Operator
-+ HiLink chillStructure Structure
-+ HiLink chillBlock Operator
-+ HiLink chillScope Operator
-+ "hi chillEDML term=underline ctermfg=DarkRed guifg=Red
-+ HiLink chillEDML PreProc
-+ "hi chillBoolConst term=bold ctermfg=brown guifg=brown
-+ HiLink chillBoolConst Constant
-+ "hi chillLogical term=bold ctermfg=brown guifg=brown
-+ HiLink chillLogical Constant
-+ HiLink chillStorageClass StorageClass
-+ HiLink chillInclude Include
-+ HiLink chillPreProc PreProc
-+ HiLink chillDefine Macro
-+ HiLink chillIncluded chillString
-+ HiLink chillError Error
-+ HiLink chillStatement Statement
-+ HiLink chillPreCondit PreCondit
-+ HiLink chillType Type
-+ HiLink chillCommentError chillError
-+ HiLink chillCommentString chillString
-+ HiLink chillComment2String chillString
-+ HiLink chillCommentSkip chillComment
-+ HiLink chillString String
-+ HiLink chillComment Comment
-+ " hi chillComment term=None ctermfg=lightblue guifg=lightblue
-+ HiLink chillSpecial SpecialChar
-+ HiLink chillTodo Todo
-+ HiLink chillBlock Statement
-+ "HiLink chillIdentifier Identifier
-+ HiLink chillBracket Delimiter
-+
-+ delcommand HiLink
-+ endif
-+
-+ let b:current_syntax = "chill"
-+
-+ " vim: ts=8
-*** ../vim-6.2.201/src/version.c Sun Jan 25 19:56:12 2004
---- src/version.c Sun Jan 25 19:57:47 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 202,
- /**/
-
---
-BEDEVERE: Stand by for attack!!
- [CUT TO enormous army forming up. Trebuchets, rows of PIKEMEN, siege
- towers, pennants flying, shouts of "Stand by for attack!" Traditional
- army build-up shots. The shouts echo across the ranks of the army.
- We see various groups reacting, and stirring themselves in readiness.]
-ARTHUR: Who are they?
-BEDEVERE: Oh, just some friends!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.203
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.203
-Problem: With characterwise text that has more than one line, "3P" works
- wrong. "3p" has the same problem. There also is a display
- problem. (Daniel Goujot)
-Solution: Perform characterwise puts with a count in the right position.
-Files: src/ops.c
-
-
-*** ../vim-6.2.202/src/ops.c Sun Jan 18 20:58:01 2004
---- src/ops.c Sat Jan 24 14:17:22 2004
-***************
-*** 3142,3147 ****
---- 3142,3148 ----
- curwin->w_cursor.lnum = lnum - 1;
- else
- curwin->w_cursor.lnum = lnum;
-+ curbuf->b_op_start = curwin->w_cursor; /* for mark_adjust() */
- #endif
- }
- else if (u_save_cursor() == FAIL)
-***************
-*** 3434,3439 ****
---- 3435,3441 ----
- * First insert y_array[size - 1] in front of second line.
- * Then append y_array[0] to first line.
- */
-+ lnum = new_cursor.lnum;
- ptr = ml_get(lnum) + col;
- totlen = (int)STRLEN(y_array[y_size - 1]);
- newp = alloc_check((unsigned)(STRLEN(ptr) + totlen + 1));
-*** ../vim-6.2.202/src/version.c Sun Jan 25 20:16:26 2004
---- src/version.c Sun Jan 25 20:18:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 203,
- /**/
-
---
-Why is "abbreviation" such a long word?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.204
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.204 (after 6.2.086)
-Problem: "]]" in a file with closed folds moves to the end of the file.
- (Nam SungHyun)
-Solution: Find one position in each closed fold, then move to after the fold.
-Files: src/search.c
-
-
-*** ../vim-6.2.203/src/search.c Sun Jan 18 21:27:18 2004
---- src/search.c Mon Jan 19 12:37:55 2004
-***************
-*** 2375,2381 ****
- #ifdef FEAT_FOLDING
- /* skip folded lines */
- fold_skipped = FALSE;
-! while (hasFolding(curr, &fold_first, &fold_last))
- {
- curr = ((dir > 0) ? fold_last : fold_first) + dir;
- fold_skipped = TRUE;
---- 2375,2381 ----
- #ifdef FEAT_FOLDING
- /* skip folded lines */
- fold_skipped = FALSE;
-! if (first && hasFolding(curr, &fold_first, &fold_last))
- {
- curr = ((dir > 0) ? fold_last : fold_first) + dir;
- fold_skipped = TRUE;
-*** ../vim-6.2.203/src/version.c Sun Jan 25 20:19:00 2004
---- src/version.c Sun Jan 25 20:20:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 204,
- /**/
-
---
-ARTHUR: CHARGE!
- [The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
- Shouts etc. Suddenly there is a wail of a siren and a couple of police
- cars roar round in front of the charging ARMY and the POLICE leap out and
- stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
- behind them.]
-HISTORIAN'S WIFE: They're the ones, I'm sure.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.205
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.205 (extra)
-Problem: MS-Windows: When the taskbar is at the left or top of the screen,
- the Vim window placement is wrong.
-Solution: Compute the size and position of the window correctly. (Taro
- Muraoka)
-Files: src/gui_w32.c, src/gui_w48.c
-
-
-*** ../vim-6.2.204/src/gui_w32.c Sun Oct 12 16:42:14 2003
---- src/gui_w32.c Tue Jan 13 12:05:08 2004
-***************
-*** 1197,1202 ****
---- 1197,1211 ----
- if (win_ypos < workarea_rect.top)
- win_ypos = workarea_rect.top;
-
-+ /* When the taskbar is placed on the left or top of the screen,
-+ * SetWindowPlacement() adds its width or height automatically, compensate
-+ * for that. When the offset is over 400 it's probably something else,
-+ * skip it then (just in case). */
-+ if (workarea_rect.left > 0 && workarea_rect.left < 400)
-+ win_xpos -= workarea_rect.left;
-+ if (workarea_rect.top > 0 && workarea_rect.top < 400)
-+ win_ypos -= workarea_rect.top;
-+
- wndpl.rcNormalPosition.left = win_xpos;
- wndpl.rcNormalPosition.right = win_xpos + win_width;
- wndpl.rcNormalPosition.top = win_ypos;
-*** ../vim-6.2.204/src/gui_w48.c Sun Jan 18 21:01:53 2004
---- src/gui_w48.c Wed Jan 21 16:11:49 2004
-***************
-*** 2348,2354 ****
- gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
- {
-
-! *screen_w = GetSystemMetrics(SM_CXSCREEN)
- - GetSystemMetrics(SM_CXFRAME) * 2;
- /* FIXME: dirty trick: Because the gui_get_base_height() doesn't include
- * the menubar for MSwin, we subtract it from the screen height, so that
---- 2348,2354 ----
- gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
- {
-
-! *screen_w = GetSystemMetrics(SM_CXFULLSCREEN)
- - GetSystemMetrics(SM_CXFRAME) * 2;
- /* FIXME: dirty trick: Because the gui_get_base_height() doesn't include
- * the menubar for MSwin, we subtract it from the screen height, so that
-*** ../vim-6.2.204/src/version.c Sun Jan 25 20:21:35 2004
---- src/version.c Sun Jan 25 20:22:48 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 205,
- /**/
-
---
- [The rest of the ARMY stand around looking at a loss.]
-INSPECTOR END OF FILM: (picks up megaphone) All right! Clear off! Go on!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.206
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.206
-Problem: Multi-byte characters cannot be used as hotkeys in a console
- dialog. (Mattias Erkisson)
-Solution: Handle multi-byte characters properly. Also put () or [] around
- default hotkeys.
-Files: src/message.c, src/macros.h
-
-
-*** ../vim-6.2.205/src/message.c Thu Jan 8 20:54:45 2004
---- src/message.c Thu Jan 22 14:35:02 2004
-***************
-*** 2536,2541 ****
---- 2536,2542 ----
- int retval = 0;
- char_u *hotkeys;
- int c;
-+ int i;
-
- #ifndef NO_CONSOLE
- /* Don't output anything in silent mode ("ex -s") */
-***************
-*** 2579,2601 ****
- case NL:
- retval = dfltbutton;
- break;
-! case Ctrl_C: /* User aborts/cancels */
- case ESC:
- retval = 0;
- break;
- default: /* Could be a hotkey? */
-! if (c > 255) /* special keys are ignored here */
- continue;
-! for (retval = 0; hotkeys[retval]; retval++)
- {
-! if (hotkeys[retval] == TOLOWER_LOC(c))
-! break;
- }
-! if (hotkeys[retval])
-! {
-! retval++;
- break;
-- }
- /* No hotkey match, so keep waiting */
- continue;
- }
---- 2580,2612 ----
- case NL:
- retval = dfltbutton;
- break;
-! case Ctrl_C: /* User aborts/cancels */
- case ESC:
- retval = 0;
- break;
- default: /* Could be a hotkey? */
-! if (c < 0) /* special keys are ignored here */
- continue;
-! /* Make the character lowercase, as chars in "hotkeys" are. */
-! c = MB_TOLOWER(c);
-! retval = 1;
-! for (i = 0; hotkeys[i]; ++i)
- {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! {
-! if ((*mb_ptr2char)(hotkeys + i) == c)
-! break;
-! i += (*mb_ptr2len_check)(hotkeys + i) - 1;
-! }
-! else
-! #endif
-! if (hotkeys[i] == c)
-! break;
-! ++retval;
- }
-! if (hotkeys[i])
- break;
- /* No hotkey match, so keep waiting */
- continue;
- }
-***************
-*** 2615,2628 ****
- return retval;
- }
-
- /*
- * Format the dialog string, and display it at the bottom of
- * the screen. Return a string of hotkey chars (if defined) for
-! * each 'button'. If a button has no hotkey defined, the string
-! * has the buttons first letter.
-! *
-! * Returns allocated array, or NULL for error.
- *
- */
- static char_u *
- msg_show_console_dialog(message, buttons, dfltbutton)
---- 2626,2680 ----
- return retval;
- }
-
-+ static int copy_char __ARGS((char_u *from, char_u *to, int lowercase));
-+
-+ /*
-+ * Copy one character from "*from" to "*to", taking care of multi-byte
-+ * characters. Return the length of the character in bytes.
-+ */
-+ static int
-+ copy_char(from, to, lowercase)
-+ char_u *from;
-+ char_u *to;
-+ int lowercase; /* make character lower case */
-+ {
-+ #ifdef FEAT_MBYTE
-+ int len;
-+ int c;
-+
-+ if (has_mbyte)
-+ {
-+ if (lowercase)
-+ {
-+ c = MB_TOLOWER((*mb_ptr2char)(from));
-+ return (*mb_char2bytes)(c, to);
-+ }
-+ else
-+ {
-+ len = (*mb_ptr2len_check)(from);
-+ mch_memmove(to, from, (size_t)len);
-+ return len;
-+ }
-+ }
-+ else
-+ #endif
-+ {
-+ if (lowercase)
-+ *to = (char_u)TOLOWER_LOC(*from);
-+ else
-+ *to = *from;
-+ return 1;
-+ }
-+ }
-+
- /*
- * Format the dialog string, and display it at the bottom of
- * the screen. Return a string of hotkey chars (if defined) for
-! * each 'button'. If a button has no hotkey defined, the first character of
-! * the button is used.
-! * The hotkeys can be multi-byte characters, but without combining chars.
- *
-+ * Returns an allocated string with hotkeys, or NULL for error.
- */
- static char_u *
- msg_show_console_dialog(message, buttons, dfltbutton)
-***************
-*** 2631,2726 ****
- int dfltbutton;
- {
- int len = 0;
-! int lenhotkey = 1; /*first button*/
-! char_u *hotk;
-! char_u *p;
-! char_u *q;
- char_u *r;
-
- /*
-! * First compute how long a string we need to allocate for the message.
- */
-! r = buttons;
-! while (*r)
- {
-! if (*r == DLG_BUTTON_SEP)
- {
-! len++; /* '\n' -> ', ' */
-! lenhotkey++; /* each button needs a hotkey */
-! }
-! else if (*r == DLG_HOTKEY_CHAR)
-! {
-! len++; /* '&a' -> '[a]' */
-! }
-! r++;
-! }
-!
-! len += STRLEN(message)
-! + 2 /* for the NL's */
-! + STRLEN(buttons)
-! + 3; /* for the ": " and NUL */
-
-! lenhotkey++; /* for the NUL */
-
-! /*
-! * Now allocate and load the strings
-! */
-! vim_free(confirm_msg);
-! confirm_msg = alloc(len);
-! if (confirm_msg == NULL)
-! return NULL;
-! *confirm_msg = NUL;
-! hotk = alloc(lenhotkey);
-! if (hotk == NULL)
-! return NULL;
-!
-! *confirm_msg = '\n';
-! STRCPY(confirm_msg + 1, message);
-!
-! p = confirm_msg + 1 + STRLEN(message);
-! q = hotk;
-! r = buttons;
-! *q = (char_u)TOLOWER_LOC(*r); /* define lowercase hotkey */
-!
-! /* Remember where the choices start, displaying starts here when "q" typed
-! * at the more prompt. */
-! confirm_msg_tail = p;
-! *p++ = '\n';
-
-! while (*r)
-! {
-! if (*r == DLG_BUTTON_SEP)
- {
-! *p++ = ',';
-! *p++ = ' '; /* '\n' -> ', ' */
-! *(++q) = (char_u)TOLOWER_LOC(*(r + 1)); /* next hotkey */
-! if (dfltbutton)
-! --dfltbutton;
-! }
-! else if (*r == DLG_HOTKEY_CHAR)
-! {
-! r++;
-! if (*r == DLG_HOTKEY_CHAR) /* '&&a' -> '&a' */
-! *p++ = *r;
- else
-! {
-! /* '&a' -> '[a]' */
-! *p++ = (dfltbutton == 1) ? '[' : '(';
-! *p++ = *r;
-! *p++ = (dfltbutton == 1) ? ']' : ')';
-! *q = (char_u)TOLOWER_LOC(*r); /* define lowercase hotkey */
-! }
- }
- else
- {
-! *p++ = *r; /* everything else copy literally */
- }
-- r++;
- }
-- *p++ = ':';
-- *p++ = ' ';
-- *p = NUL;
-- *(++q) = NUL;
-
- display_confirm_msg();
- return hotk;
---- 2683,2841 ----
- int dfltbutton;
- {
- int len = 0;
-! #ifdef FEAT_MBYTE
-! # define HOTK_LEN (has_mbyte ? MB_MAXBYTES : 1)
-! #else
-! # define HOTK_LEN 1
-! #endif
-! int lenhotkey = HOTK_LEN; /* count first button */
-! char_u *hotk = NULL;
-! char_u *msgp = NULL;
-! char_u *hotkp = NULL;
- char_u *r;
-+ int copy;
-+ #define HAS_HOTKEY_LEN 30
-+ char_u has_hotkey[HAS_HOTKEY_LEN];
-+ int first_hotkey = FALSE; /* first char of button is hotkey */
-+ int idx;
-+
-+ has_hotkey[0] = FALSE;
-
- /*
-! * First loop: compute the size of memory to allocate.
-! * Second loop: copy to the allocated memory.
- */
-! for (copy = 0; copy <= 1; ++copy)
- {
-! r = buttons;
-! idx = 0;
-! while (*r)
- {
-! if (*r == DLG_BUTTON_SEP)
-! {
-! if (copy)
-! {
-! *msgp++ = ',';
-! *msgp++ = ' '; /* '\n' -> ', ' */
-
-! /* advance to next hotkey and set default hotkey */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! hotkp += (*mb_ptr2len_check)(hotkp);
-! else
-! #endif
-! ++hotkp;
-! (void)copy_char(r + 1, hotkp, TRUE);
-! if (dfltbutton)
-! --dfltbutton;
-!
-! /* If no hotkey is specified first char is used. */
-! if (idx < HAS_HOTKEY_LEN - 1 && !has_hotkey[++idx])
-! first_hotkey = TRUE;
-! }
-! else
-! {
-! len += 3; /* '\n' -> ', '; 'x' -> '(x)' */
-! lenhotkey += HOTK_LEN; /* each button needs a hotkey */
-! if (idx < HAS_HOTKEY_LEN - 1)
-! has_hotkey[++idx] = FALSE;
-! }
-! }
-! else if (*r == DLG_HOTKEY_CHAR || first_hotkey)
-! {
-! if (*r == DLG_HOTKEY_CHAR)
-! ++r;
-! first_hotkey = FALSE;
-! if (copy)
-! {
-! if (*r == DLG_HOTKEY_CHAR) /* '&&a' -> '&a' */
-! *msgp++ = *r;
-! else
-! {
-! /* '&a' -> '[a]' */
-! *msgp++ = (dfltbutton == 1) ? '[' : '(';
-! msgp += copy_char(r, msgp, FALSE);
-! *msgp++ = (dfltbutton == 1) ? ']' : ')';
-!
-! /* redefine hotkey */
-! (void)copy_char(r, hotkp, TRUE);
-! }
-! }
-! else
-! {
-! ++len; /* '&a' -> '[a]' */
-! if (idx < HAS_HOTKEY_LEN - 1)
-! has_hotkey[idx] = TRUE;
-! }
-! }
-! else
-! {
-! /* everything else copy literally */
-! if (copy)
-! msgp += copy_char(r, msgp, FALSE);
-! }
-
-! /* advance to the next character */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! r += (*mb_ptr2len_check)(r);
-! else
-! #endif
-! ++r;
-! }
-
-! if (copy)
- {
-! *msgp++ = ':';
-! *msgp++ = ' ';
-! *msgp = NUL;
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! hotkp += (*mb_ptr2len_check)(hotkp);
- else
-! #endif
-! ++hotkp;
-! *hotkp = NUL;
- }
- else
- {
-! len += STRLEN(message)
-! + 2 /* for the NL's */
-! + STRLEN(buttons)
-! + 3; /* for the ": " and NUL */
-! lenhotkey++; /* for the NUL */
-!
-! /*
-! * Now allocate and load the strings
-! */
-! vim_free(confirm_msg);
-! confirm_msg = alloc(len);
-! if (confirm_msg == NULL)
-! return NULL;
-! *confirm_msg = NUL;
-! hotk = alloc(lenhotkey);
-! if (hotk == NULL)
-! return NULL;
-!
-! *confirm_msg = '\n';
-! STRCPY(confirm_msg + 1, message);
-!
-! msgp = confirm_msg + 1 + STRLEN(message);
-! hotkp = hotk;
-!
-! /* define first default hotkey */
-! (void)copy_char(buttons, hotkp, TRUE);
-!
-! /* If no hotkey is specified first char is used. */
-! if (!has_hotkey[0])
-! first_hotkey = TRUE;
-!
-! /* Remember where the choices start, displaying starts here when
-! * "hotkp" typed at the more prompt. */
-! confirm_msg_tail = msgp;
-! *msgp++ = '\n';
- }
- }
-
- display_confirm_msg();
- return hotk;
-*** ../vim-6.2.205/src/macros.h Sat Sep 27 19:36:47 2003
---- src/macros.h Thu Jan 22 14:33:13 2004
-***************
-*** 81,93 ****
-
- /*
- * MB_ISLOWER() and MB_ISUPPER() are to be used on multi-byte characters. But
-! * don't use them for negative values or values above 0x100 for DBCS.
- */
- #ifdef FEAT_MBYTE
-! # define MB_ISLOWER(c) (enc_utf8 && (c) > 0x80 ? utf_islower(c) : islower(c))
-! # define MB_ISUPPER(c) (enc_utf8 && (c) > 0x80 ? utf_isupper(c) : isupper(c))
-! # define MB_TOLOWER(c) (enc_utf8 && (c) > 0x80 ? utf_tolower(c) : TOLOWER_LOC(c))
-! # define MB_TOUPPER(c) (enc_utf8 && (c) > 0x80 ? utf_toupper(c) : TOUPPER_LOC(c))
- #else
- # define MB_ISLOWER(c) islower(c)
- # define MB_ISUPPER(c) isupper(c)
---- 81,93 ----
-
- /*
- * MB_ISLOWER() and MB_ISUPPER() are to be used on multi-byte characters. But
-! * don't use them for negative values.
- */
- #ifdef FEAT_MBYTE
-! # define MB_ISLOWER(c) (enc_utf8 && (c) > 0x80 ? utf_islower(c) : (has_mbyte && c > 255 ? FALSE : islower(c)))
-! # define MB_ISUPPER(c) (enc_utf8 && (c) > 0x80 ? utf_isupper(c) : (has_mbyte && c > 255 ? FALSE : isupper(c)))
-! # define MB_TOLOWER(c) (enc_utf8 && (c) > 0x80 ? utf_tolower(c) : (has_mbyte && c > 255 ? c : TOLOWER_LOC(c)))
-! # define MB_TOUPPER(c) (enc_utf8 && (c) > 0x80 ? utf_toupper(c) : (has_mbyte && c > 255 ? c : TOUPPER_LOC(c)))
- #else
- # define MB_ISLOWER(c) islower(c)
- # define MB_ISUPPER(c) isupper(c)
-*** ../vim-6.2.205/src/version.c Sun Jan 25 20:24:03 2004
---- src/version.c Sun Jan 25 20:26:14 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 206,
- /**/
-
---
-"I love deadlines. I especially like the whooshing sound they
-make as they go flying by."
- -- Douglas Adams
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.207
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.207
-Problem: When 'encoding' is a multi-byte encoding, expanding an
- abbreviation that starts where insertion started results in
- characters before the insertion to be deleted. (Xiangjiang Ma)
-Solution: Stop searching leftwards for the start of the word at the position
- where insertion started.
-Files: src/getchar.c
-
-
-*** ../vim-6.2.206/src/getchar.c Sat Sep 27 19:36:46 2003
---- src/getchar.c Thu Jan 22 18:11:38 2004
-***************
-*** 1234,1239 ****
---- 1234,1240 ----
-
- /*
- * Restore the typeahead to what it was before calling save_typeahead().
-+ * The allocated memory is freed, can only be called once!
- */
- void
- restore_typeahead(tp)
-***************
-*** 3879,3885 ****
- is_id = vim_iswordp(mb_prevptr(ptr, p));
- }
- clen = 1;
-! while (p > ptr)
- {
- p = mb_prevptr(ptr, p);
- if (vim_isspace(*p) || (!vim_abbr && is_id != vim_iswordp(p)))
---- 3880,3886 ----
- is_id = vim_iswordp(mb_prevptr(ptr, p));
- }
- clen = 1;
-! while (p > ptr + mincol)
- {
- p = mb_prevptr(ptr, p);
- if (vim_isspace(*p) || (!vim_abbr && is_id != vim_iswordp(p)))
-*** ../vim-6.2.206/src/version.c Sun Jan 25 20:28:03 2004
---- src/version.c Sun Jan 25 20:29:20 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 207,
- /**/
-
---
-INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving!
- [Suddenly he notices the cameras.]
-INSPECTOR END OF FILM: (to Camera) All right, put that away sonny.
- [He walks over to it and puts his hand over the lens.]
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.208
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.208
-Problem: When using fold markers, three lines in a row have the start
- marker and deleting the first one with "dd", a nested fold is not
- deleted. (Kamil Burzynski)
- Using marker folding, a level 1 fold doesn't stop when it is
- followed by "{{{2", starting a level 2 fold.
-Solution: Don't stop updating folds at the end of a change when the nesting
- level of folds is larger than the fold level.
- Correctly compute the number of folds that start at "{{{2".
- Also avoid a crash for a NULL pointer.
-Files: src/fold.c
-
-
-*** ../vim-6.2.207/src/fold.c Mon Dec 29 20:30:12 2003
---- src/fold.c Sat Jan 24 17:01:17 2004
-***************
-*** 2262,2270 ****
- && getlevel != foldlevelExpr
- && getlevel != foldlevelSyntax)
- break;
-! if (lvl == level
-! && foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2))
-! bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top;
- else if (fp->fd_top + fp->fd_len <= flp->lnum && lvl >= level)
- finish = TRUE;
- else
---- 2262,2287 ----
- && getlevel != foldlevelExpr
- && getlevel != foldlevelSyntax)
- break;
-! i = 0;
-! fp2 = fp;
-! if (lvl >= level)
-! {
-! /* Compute how deep the folds currently are, if it's deeper
-! * than "lvl" then some must be deleted, need to update
-! * at least one nested fold. */
-! ll = flp->lnum - fp->fd_top;
-! while (foldFind(&fp2->fd_nested, ll, &fp2))
-! {
-! ++i;
-! ll -= fp2->fd_top;
-! }
-! }
-! if (lvl < level + i)
-! {
-! foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2);
-! if (fp2 != NULL)
-! bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top;
-! }
- else if (fp->fd_top + fp->fd_len <= flp->lnum && lvl >= level)
- finish = TRUE;
- else
-***************
-*** 2959,2964 ****
---- 2976,2982 ----
- char_u *startmarker;
- int cstart;
- int cend;
-+ int start_lvl = flp->lvl;
- char_u *s;
- int n;
-
-***************
-*** 2987,2993 ****
- {
- flp->lvl = n;
- flp->lvl_next = n;
-! ++flp->start;
- }
- }
- else
---- 3005,3014 ----
- {
- flp->lvl = n;
- flp->lvl_next = n;
-! if (n < start_lvl)
-! flp->start = 0;
-! else
-! flp->start = n - start_lvl;
- }
- }
- else
-***************
-*** 3036,3042 ****
- fline_T *flp;
- {
- #ifndef FEAT_SYN_HL
-! flp->start = FALSE;
- flp->lvl = 0;
- #else
- linenr_T lnum = flp->lnum + flp->off;
---- 3057,3063 ----
- fline_T *flp;
- {
- #ifndef FEAT_SYN_HL
-! flp->start = 0;
- flp->lvl = 0;
- #else
- linenr_T lnum = flp->lnum + flp->off;
-***************
-*** 3044,3050 ****
-
- /* Use the maximum fold level at the start of this line and the next. */
- flp->lvl = syn_get_foldlevel(flp->wp, lnum);
-! flp->start = FALSE;
- if (lnum < flp->wp->w_buffer->b_ml.ml_line_count)
- {
- n = syn_get_foldlevel(flp->wp, lnum + 1);
---- 3065,3071 ----
-
- /* Use the maximum fold level at the start of this line and the next. */
- flp->lvl = syn_get_foldlevel(flp->wp, lnum);
-! flp->start = 0;
- if (lnum < flp->wp->w_buffer->b_ml.ml_line_count)
- {
- n = syn_get_foldlevel(flp->wp, lnum + 1);
-*** ../vim-6.2.207/src/version.c Sun Jan 25 20:30:03 2004
---- src/version.c Sun Jan 25 20:32:00 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 208,
- /**/
-
---
-JOHN CLEESE PLAYED: SECOND SOLDIER WITH A KEEN INTEREST IN BIRDS, LARGE MAN
- WITH DEAD BODY, BLACK KNIGHT, MR NEWT (A VILLAGE
- BLACKSMITH INTERESTED IN BURNING WITCHES), A QUITE
- EXTRAORDINARILY RUDE FRENCHMAN, TIM THE WIZARD, SIR
- LAUNCELOT
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.209
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.209
-Problem: A bogus fold is created when using "P" while the cursor is in the
- middle of a closed fold. (Kamil Burzynski)
-Solution: Correct the line number where marks are modified for closed folds.
-Files: src/ops.c
-
-
-*** ../vim-6.2.208/src/ops.c Sun Jan 25 20:19:00 2004
---- src/ops.c Sat Jan 24 14:17:22 2004
-***************
-*** 3506,3520 ****
- {
- curbuf->b_op_start.col = 0;
- if (dir == FORWARD)
-- {
-- #ifdef FEAT_FOLDING
-- /* a "p" inside a closed fold is like a "p" in the last
-- * line of the fold */
-- (void)hasFolding(curbuf->b_op_start.lnum, NULL,
-- &curbuf->b_op_start.lnum);
-- #endif
- curbuf->b_op_start.lnum++;
-- }
- }
- mark_adjust(curbuf->b_op_start.lnum + (y_type == MCHAR),
- (linenr_T)MAXLNUM, nr_lines, 0L);
---- 3506,3512 ----
-*** ../vim-6.2.208/src/version.c Sun Jan 25 20:33:47 2004
---- src/version.c Sun Jan 25 20:36:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 209,
- /**/
-
---
-TERRY GILLIAM PLAYED: PATSY (ARTHUR'S TRUSTY STEED), THE GREEN KNIGHT
- SOOTHSAYER, BRIDGEKEEPER, SIR GAWAIN (THE FIRST TO BE
- KILLED BY THE RABBIT)
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.210 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.210 (extra)
-Problem: Mac OSX: antialiased fonts are not supported.
-Solution: Add the 'antialias' option to switch on antialiasing on Mac OSX
- 10.2 and later. (Peter Cucka)
-Files: runtime/doc/options.txt, src/gui_mac.c, src/option.h, src/option.c
-
-
-*** ../vim-6.2.209/runtime/doc/options.txt Tue Aug 12 20:01:59 2003
---- runtime/doc/options.txt Thu Jan 22 10:47:26 2004
-***************
-*** 1,4 ****
-! *options.txt* For Vim version 6.2. Last change: 2003 Aug 12
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *options.txt* For Vim version 6.2. Last change: 2004 Jan 22
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 619,644 ****
- Registered sign, Greek/Cyrillic letters are represented by two octets,
- therefore those fonts have "wide" glyphs for them. This is also
- true of some line drawing characters used to make tables in text
-! file. Therefore, when a CJK font is used for GUI vim or
-! vim is running inside a terminal (emulators) that uses a CJK font
-! (or vim is run inside an xterm invoked with "-cjkwidth" option.),
- this option should be set to "double" to match the width perceived
- by Vim with the width of glyphs in the font. Perhaps it also has
- to be set to "double" under CJK Windows 9x/ME or Windows 2k/XP
- when the system locale is set to one of CJK locales. See Unicode
- Standard Annex #11 (http://www.unicode.org/reports/tr11).
-
-! *'autochdir'* *'acd'* *'noatuochdir'* *'noacd'*
- 'autochdir' 'acd' boolean (default off)
- global
- {not in Vi}
- {only available when compiled with the
- |+netbeans_intg| or |+sun_workshop| feature}
-! When on, vim will change its value for the current working directory
- whenever you open a file, switch buffers, delete a buffer or
- open/close a window. It will change to the directory containing the
- file which was opened or selected. This option is provided for
-! backward compatibility with the vim released with Sun ONE Studio 4
- Enterprise Edition.
-
- *'arabic'* *'arab'* *'noarabic'* *'noarab'*
---- 621,658 ----
- Registered sign, Greek/Cyrillic letters are represented by two octets,
- therefore those fonts have "wide" glyphs for them. This is also
- true of some line drawing characters used to make tables in text
-! file. Therefore, when a CJK font is used for GUI Vim or
-! Vim is running inside a terminal (emulators) that uses a CJK font
-! (or Vim is run inside an xterm invoked with "-cjkwidth" option.),
- this option should be set to "double" to match the width perceived
- by Vim with the width of glyphs in the font. Perhaps it also has
- to be set to "double" under CJK Windows 9x/ME or Windows 2k/XP
- when the system locale is set to one of CJK locales. See Unicode
- Standard Annex #11 (http://www.unicode.org/reports/tr11).
-
-! *'antialias'* *'anti'* *'noantialias'* *'noanti'*
-! 'antialias' 'anti' boolean (default: off)
-! global
-! {not in Vi}
-! {only available when compiled with GUI enabled
-! on Mac OS X}
-! This option only has an effect in the GUI version of Vim on Mac OS X
-! v10.2 or later. When on, Vim will use smooth ("antialiased") fonts,
-! which can be easier to read at certain sizes on certain displays.
-! Setting this option can sometimes cause problems if |guifont| is set
-! to its default (empty string).
-!
-! *'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
- 'autochdir' 'acd' boolean (default off)
- global
- {not in Vi}
- {only available when compiled with the
- |+netbeans_intg| or |+sun_workshop| feature}
-! When on, Vim will change its value for the current working directory
- whenever you open a file, switch buffers, delete a buffer or
- open/close a window. It will change to the directory containing the
- file which was opened or selected. This option is provided for
-! backward compatibility with the Vim released with Sun ONE Studio 4
- Enterprise Edition.
-
- *'arabic'* *'arab'* *'noarabic'* *'noarab'*
-*** ../vim-6.2.209/src/gui_mac.c Sun Nov 2 15:27:37 2003
---- src/gui_mac.c Thu Jan 22 10:44:31 2004
-***************
-*** 2794,2799 ****
---- 2850,2861 ----
- gui.scrollbar_height = gui.scrollbar_width = 15; /* cheat 1 overlap */
- gui.border_offset = gui.border_width = 2;
-
-+ #if defined(FEAT_GUI) && defined(MACOS_X)
-+ /* If Quartz-style text antialiasing is available (see
-+ gui_mch_draw_string() below), enable it for all font sizes. */
-+ vim_setenv((char_u *)"QDTEXT_MINSIZE", (char_u *)"1");
-+ #endif
-+
- /* TODO: Load bitmap if using TOOLBAR */
- return OK;
- }
-***************
-*** 3265,3295 ****
- int len;
- int flags;
- {
-- TextMode (srcCopy);
-- TextFace (normal);
-
-! /* SelectFont(hdc, gui.currFont); */
-
-! if (flags & DRAW_TRANSP)
- {
-! TextMode (srcOr);
- }
-
-! MoveTo (TEXT_X(col), TEXT_Y(row));
-! DrawText ((char *)s, 0, len);
-
-
-! if (flags & DRAW_BOLD)
-! {
-! TextMode (srcOr);
-! MoveTo (TEXT_X(col) + 1, TEXT_Y(row));
- DrawText ((char *)s, 0, len);
-- }
-
-! if (flags & DRAW_UNDERL)
-! {
-! MoveTo (FILL_X(col), FILL_Y(row + 1) - 1);
-! LineTo (FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
- }
- }
-
---- 3327,3411 ----
- int len;
- int flags;
- {
-
-! #if defined(FEAT_GUI) && defined(MACOS_X)
-! /*
-! * On OS X, try using Quartz-style text antialiasing.
-! */
-! SInt32 sys_version = 0;
-
-! Gestalt(gestaltSystemVersion, &sys_version);
-! if (sys_version >= 0x1020)
- {
-! /* Quartz antialiasing is available only in OS 10.2 and later. */
-! UInt32 qd_flags = (p_antialias ?
-! kQDUseCGTextRendering | kQDUseCGTextMetrics : 0);
-! (void)SwapQDTextFlags(qd_flags);
-! }
-!
-! if (sys_version >= 0x1020 && p_antialias)
-! {
-! StyleParameter face;
-!
-! face = normal;
-! if (flags & DRAW_BOLD)
-! face |= bold;
-! if (flags & DRAW_UNDERL)
-! face |= underline;
-! TextFace(face);
-!
-! /* Quartz antialiasing works only in srcOr transfer mode. */
-! TextMode(srcOr);
-!
-! if (!(flags & DRAW_TRANSP))
-! {
-! /*
-! * Since we're using srcOr mode, we have to clear the block
-! * before drawing the text. The following is like calling
-! * gui_mch_clear_block(row, col, row, col + len - 1),
-! * but without setting the bg color to gui.back_pixel.
-! */
-! Rect rc;
-! rc.left = FILL_X(col);
-! rc.top = FILL_Y(row);
-! rc.right = FILL_X(col + len) + (col + len == Columns);
-! rc.bottom = FILL_Y(row + 1);
-! EraseRect(&rc);
-! }
-!
-! MoveTo(TEXT_X(col), TEXT_Y(row));
-! DrawText((char*)s, 0, len);
- }
-+ else
-+ #endif
-+ {
-+ /* Use old-style, non-antialiased QuickDraw text rendering. */
-+ TextMode (srcCopy);
-+ TextFace (normal);
-
-! /* SelectFont(hdc, gui.currFont); */
-
-+ if (flags & DRAW_TRANSP)
-+ {
-+ TextMode (srcOr);
-+ }
-
-! MoveTo (TEXT_X(col), TEXT_Y(row));
- DrawText ((char *)s, 0, len);
-
-!
-! if (flags & DRAW_BOLD)
-! {
-! TextMode (srcOr);
-! MoveTo (TEXT_X(col) + 1, TEXT_Y(row));
-! DrawText ((char *)s, 0, len);
-! }
-!
-! if (flags & DRAW_UNDERL)
-! {
-! MoveTo (FILL_X(col), FILL_Y(row + 1) - 1);
-! LineTo (FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
-! }
- }
- }
-
-***************
-*** 4045,4050 ****
---- 4161,4167 ----
- int key = 0;
- int modifiers = 0;
- char_u *p_actext;
-+
- p_actext = menu->actext;
- key = find_special_key(&p_actext, &modifiers, /*keycode=*/0);
- if (*p_actext != 0)
-***************
-*** 5110,5116 ****
- #if defined(FEAT_CW_EDITOR) || defined(PROTO)
- /* TODO: Is it need for MACOS_X? (Dany) */
- void
-! mch_post_buffer_write (buf_T *buf)
- {
- # ifdef USE_SIOUX
- printf ("Writing Buf...\n");
---- 5227,5233 ----
- #if defined(FEAT_CW_EDITOR) || defined(PROTO)
- /* TODO: Is it need for MACOS_X? (Dany) */
- void
-! mch_post_buffer_write(buf_T *buf)
- {
- # ifdef USE_SIOUX
- printf ("Writing Buf...\n");
-*** ../vim-6.2.209/src/option.h Sun Jan 18 23:21:49 2004
---- src/option.h Thu Jan 22 10:37:55 2004
-***************
-*** 290,295 ****
---- 290,298 ----
- #ifdef FEAT_MBYTE
- EXTERN char_u *p_ambw; /* 'ambiwidth' */
- #endif
-+ #if defined(FEAT_GUI) && defined(MACOS_X)
-+ EXTERN int *p_antialias; /* 'antialias' */
-+ #endif
- EXTERN int p_ar; /* 'autoread' */
- EXTERN int p_aw; /* 'autowrite' */
- EXTERN int p_awa; /* 'autowriteall' */
-*** ../vim-6.2.209/src/option.c Sun Jan 18 20:58:01 2004
---- src/option.c Thu Jan 22 10:39:02 2004
-***************
-*** 320,325 ****
---- 320,334 ----
- (char_u *)224L,
- #endif
- (char_u *)0L}},
-+ {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
-+ #if defined(FEAT_GUI) && defined(MACOS_X)
-+ (char_u *)&p_antialias, PV_NONE,
-+ {(char_u *)FALSE, (char_u *)FALSE}
-+ #else
-+ (char_u *)NULL, PV_NONE,
-+ {(char_u *)FALSE, (char_u *)FALSE}
-+ #endif
-+ },
- {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM,
- #ifdef FEAT_ARABIC
- (char_u *)VAR_WIN, PV_ARAB,
-*** ../vim-6.2.209/src/version.c Sun Jan 25 20:37:29 2004
---- src/version.c Sun Jan 25 20:39:47 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 210,
- /**/
-
---
-ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
- KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
- HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
- LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
- BROTHER MAYNARD
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.211 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.211 (extra)
-Problem: Code for handling file dropped on Vim is duplicated.
-Solution: Move the common code to gui_handle_drop().
- Add code to drop the files in the window under the cursor.
- Support drag&drop on the Macintosh. (Taro Muraoka)
- When dropping a directory name edit that directory (using the
- explorer plugin)
- Fix that changing directory with Shift pressed didn't work for
- relative path names.
-Files: src/fileio.c, src/gui.c, src/gui_gtk_x11.c, src/gui_mac.c,
- src/gui_w48.c, src/proto/fileio.pro, src/proto/gui.pro
-
-
-*** ../vim-6.2.210/src/fileio.c Sun Jan 18 21:31:56 2004
---- src/fileio.c Wed Jan 21 14:49:33 2004
-***************
-*** 4834,4839 ****
---- 4834,4840 ----
- }
-
- /*
-+ * Shorten filenames for all buffers.
- * When "force" is TRUE: Use full path from now on for files currently being
- * edited, both for file name and swap file name. Try to shorten the file
- * names a bit, if safe to do so.
-***************
-*** 4879,4884 ****
---- 4880,4919 ----
- #endif
- }
-
-+ #if (defined(FEAT_DND) && defined(FEAT_GUI_GTK)) \
-+ || defined(FEAT_GUI_MSWIN) \
-+ || defined(FEAT_GUI_MAC) \
-+ || defined(PROTO)
-+ /*
-+ * Shorten all filenames in "fnames[count]" by current directory.
-+ */
-+ void
-+ shorten_filenames(fnames, count)
-+ char_u **fnames;
-+ int count;
-+ {
-+ int i;
-+ char_u dirname[MAXPATHL];
-+ char_u *p;
-+
-+ if (fnames == NULL || count < 1)
-+ return;
-+ mch_dirname(dirname, sizeof(dirname));
-+ for (i = 0; i < count; ++i)
-+ {
-+ if ((p = shorten_fname(fnames[i], dirname)) != NULL)
-+ {
-+ /* shorten_fname() returns pointer in given "fnames[i]". If free
-+ * "fnames[i]" first, "p" becomes invalid. So we need to copy
-+ * "p" first then free fnames[i]. */
-+ p = vim_strsave(p);
-+ vim_free(fnames[i]);
-+ fnames[i] = p;
-+ }
-+ }
-+ }
-+ #endif
-+
- /*
- * add extention to file name - change path/fo.o.h to path/fo.o.h.ext or
- * fo_o_h.ext for MSDOS or when shortname option set.
-*** ../vim-6.2.210/src/gui.c Thu Jan 8 20:54:45 2004
---- src/gui.c Thu Jan 22 16:53:48 2004
-***************
-*** 4481,4483 ****
---- 4481,4615 ----
- }
-
- #endif
-+
-+ #if (defined(FEAT_DND) && defined(FEAT_GUI_GTK)) \
-+ || defined(FEAT_GUI_MSWIN) \
-+ || defined(FEAT_GUI_MAC) \
-+ || defined(PROTO)
-+
-+ #ifdef FEAT_WINDOWS
-+ static void gui_wingoto_xy __ARGS((int x, int y));
-+
-+ /*
-+ * Jump to the window at specified point (x, y).
-+ */
-+ static void
-+ gui_wingoto_xy(x, y)
-+ int x;
-+ int y;
-+ {
-+ int row = Y_2_ROW(y);
-+ int col = X_2_COL(x);
-+ win_T *wp;
-+
-+ if (row >= 0 && col >= 0)
-+ {
-+ wp = mouse_find_win(&row, &col);
-+ if (wp != NULL && wp != curwin)
-+ win_goto(wp);
-+ }
-+ }
-+ #endif
-+
-+ /*
-+ * Process file drop. Mouse cursor position, key modifiers, name of files
-+ * and count of files are given. Argument "fnames[count]" has full pathnames
-+ * of dropped files, they will be freed in this function, and caller can't use
-+ * fnames after call this function.
-+ */
-+ /*ARGSUSED*/
-+ void
-+ gui_handle_drop(x, y, modifiers, fnames, count)
-+ int x;
-+ int y;
-+ int_u modifiers;
-+ char_u **fnames;
-+ int count;
-+ {
-+ int i;
-+ char_u *p;
-+
-+ /*
-+ * When the cursor is at the command line, add the file names to the
-+ * command line, don't edit the files.
-+ */
-+ if (State & CMDLINE)
-+ {
-+ shorten_filenames(fnames, count);
-+ for (i = 0; i < count; ++i)
-+ {
-+ if (fnames[i] != NULL)
-+ {
-+ if (i > 0)
-+ add_to_input_buf((char_u*)" ", 1);
-+
-+ /* We don't know what command is used thus we can't be sure
-+ * about which characters need to be escaped. Only escape the
-+ * most common ones. */
-+ # ifdef BACKSLASH_IN_FILENAME
-+ p = vim_strsave_escaped(fnames[i], (char_u *)" \t\"|");
-+ # else
-+ p = vim_strsave_escaped(fnames[i], (char_u *)"\\ \t\"|");
-+ # endif
-+ if (p != NULL)
-+ add_to_input_buf(p, (int)STRLEN(p));
-+ vim_free(p);
-+ vim_free(fnames[i]);
-+ }
-+ }
-+ vim_free(fnames);
-+ }
-+ else
-+ {
-+ /* Go to the window under mouse cursor, then shorten given "fnames" by
-+ * current window, because a window can have local current dir. */
-+ # ifdef FEAT_WINDOWS
-+ gui_wingoto_xy(x, y);
-+ # endif
-+ shorten_filenames(fnames, count);
-+
-+ /* If Shift held down, remember the first item. */
-+ if ((modifiers & MOUSE_SHIFT) != 0)
-+ p = vim_strsave(fnames[0]);
-+ else
-+ p = NULL;
-+
-+ /* Handle the drop, :edit or :split to get to the file. This also
-+ * frees fnames[]. Skip this if there is only one item it's a
-+ * directory and Shift is held down. */
-+ if (count == 1 && (modifiers & MOUSE_SHIFT) != 0
-+ && mch_isdir(fnames[0]))
-+ {
-+ vim_free(fnames[0]);
-+ vim_free(fnames);
-+ }
-+ else
-+ handle_drop(count, fnames, (modifiers & MOUSE_CTRL) != 0);
-+
-+ /* If Shift held down, change to first file's directory. If the first
-+ * item is a directory, change to that directory (and let the explorer
-+ * plugin show the contents). */
-+ if (p != NULL)
-+ {
-+ if (mch_isdir(p))
-+ {
-+ if (mch_chdir((char *)p) == 0)
-+ shorten_fnames(TRUE);
-+ }
-+ else if (vim_chdirfile(p) == OK)
-+ shorten_fnames(TRUE);
-+ vim_free(p);
-+ }
-+
-+ /* Update the screen display */
-+ update_screen(NOT_VALID);
-+ # ifdef FEAT_MENU
-+ gui_update_menus(0);
-+ # endif
-+ setcursor();
-+ out_flush();
-+ gui_update_cursor(FALSE, FALSE);
-+ gui_mch_flush();
-+ }
-+ }
-+ #endif
-*** ../vim-6.2.210/src/gui_gtk_x11.c Sun Jan 11 12:45:02 2004
---- src/gui_gtk_x11.c Wed Jan 21 16:07:00 2004
-***************
-*** 1823,1981 ****
- * Drag aNd Drop support handlers.
- */
-
-! static void
-! drag_handle_uri_list(GdkDragContext *context,
-! GtkSelectionData *data,
-! guint time_,
-! GdkModifierType state)
- {
-! char_u **fnames;
-! int redo_dirs = FALSE;
-! int i;
-! int n;
-! char_u *start;
-! char_u *copy;
-! char_u *names;
-! int nfiles = 0;
-! int url = FALSE;
-
-! names = data->data;
-! copy = alloc((unsigned)(data->length + 1));
-! if (copy == NULL)
-! return;
-! /*
-! * Count how many items there may be and separate them with a NUL.
-! * Apparently the items are separated with \r\n. This is not documented,
-! * thus be careful not to go past the end. Also allow separation with NUL
-! * characters.
-! */
-! start = copy;
-! for (i = 0; i < data->length; ++i)
- {
-! if (names[i] == NUL || names[i] == '\n' || names[i] == '\r')
- {
-! if (start > copy && start[-1] != NUL)
- {
-! ++nfiles;
-! *start++ = NUL;
- }
- }
-! else if (names[i] == '%' && i + 2 < data->length
-! && hexhex2nr(names + i + 1) > 0)
- {
-! *start++ = hexhex2nr(names + i + 1);
- i += 2;
- }
- else
-! *start++ = names[i];
- }
-! if (start > copy && start[-1] != NUL)
- {
-! *start = NUL; /* last item didn't have \r or \n */
-! ++nfiles;
- }
-
-! fnames = (char_u **)alloc((unsigned)(nfiles * sizeof(char_u *)));
-! if (fnames == NULL)
-! {
-! vim_free(copy);
-! return;
-! }
-! url = FALSE; /* Set when a non-file URL was found. */
-! start = copy;
-! for (n = 0; n < nfiles; ++n)
- {
-! if (STRNCMP(start, "file://localhost", 16) == 0)
-! start += 16;
-! else
- {
-! if (STRNCMP(start, "file:", 5) != 0)
-! url = TRUE;
-! else
-! {
-! start += 5;
-! while (start[0] == '/' && start[1] == '/')
-! ++start;
-! }
- }
-! fnames[n] = vim_strsave(start);
-! start += STRLEN(start) + 1;
- }
-
-! /* accept */
-! gtk_drag_finish(context, TRUE, FALSE, time_);
-
-! /* Special handling when all items are real files. */
-! if (url == FALSE)
-! {
-! if (nfiles == 1)
-! {
-! if (fnames[0] != NULL && mch_isdir(fnames[0]))
-! {
-! /* Handle dropping a directory on Vim. */
-! if (mch_chdir((char *)fnames[0]) == 0)
-! {
-! vim_free(fnames[0]);
-! fnames[0] = NULL;
-! redo_dirs = TRUE;
-! }
-! }
-! }
-! else
-! {
-! /* Ignore any directories */
-! for (i = 0; i < nfiles; ++i)
-! {
-! if (fnames[i] != NULL && mch_isdir(fnames[i]))
-! {
-! vim_free(fnames[i]);
-! fnames[i] = NULL;
-! }
-! }
-! }
-
-! if (state & GDK_SHIFT_MASK)
-! {
-! /* Shift held down, change to first file's directory */
-! if (fnames[0] != NULL && vim_chdirfile(fnames[0]) == OK)
-! redo_dirs = TRUE;
-! }
-! else
-! {
-! char_u dirname[MAXPATHL];
-! char_u *s;
-
-! /* Shorten dropped file names. */
-! if (mch_dirname(dirname, MAXPATHL) == OK)
-! for (i = 0; i < nfiles; ++i)
-! if (fnames[i] != NULL)
-! {
-! s = shorten_fname(fnames[i], dirname);
-! if (s != NULL && (s = vim_strsave(s)) != NULL)
-! {
-! vim_free(fnames[i]);
-! fnames[i] = s;
-! }
-! }
-! }
-! }
-! vim_free(copy);
-
-! /* Handle the drop, :edit or :split to get to the file */
-! handle_drop(nfiles, fnames, (state & GDK_CONTROL_MASK) != 0);
-
-! if (redo_dirs)
-! shorten_fnames(TRUE);
-
-! /* Update the screen display */
-! update_screen(NOT_VALID);
-! # ifdef FEAT_MENU
-! gui_update_menus(0);
-! # endif
-! setcursor();
-! out_flush();
-! gui_update_cursor(FALSE, FALSE);
-! gui_mch_flush();
- }
-
- static void
---- 1823,1940 ----
- * Drag aNd Drop support handlers.
- */
-
-! /*
-! * Count how many items there may be and separate them with a NUL.
-! * Apparently the items are separated with \r\n. This is not documented,
-! * thus be careful not to go past the end. Also allow separation with
-! * NUL characters.
-! */
-! static int
-! count_and_decode_uri_list(char_u *out, char_u *raw, int len)
- {
-! int i;
-! char_u *p = out;
-! int count = 0;
-
-! for (i = 0; i < len; ++i)
- {
-! if (raw[i] == NUL || raw[i] == '\n' || raw[i] == '\r')
- {
-! if (p > out && p[-1] != NUL)
- {
-! ++count;
-! *p++ = NUL;
- }
- }
-! else if (raw[i] == '%' && i + 2 < len && hexhex2nr(raw + i + 1) > 0)
- {
-! *p++ = hexhex2nr(raw + i + 1);
- i += 2;
- }
- else
-! *p++ = raw[i];
- }
-! if (p > out && p[-1] != NUL)
- {
-! *p = NUL; /* last item didn't have \r or \n */
-! ++count;
- }
-+ return count;
-+ }
-
-! /*
-! * Parse NUL separated "src" strings. Make it an array "outlist" form. On
-! * this process, URI which protocol is not "file:" are removed. Return
-! * length of array (less than "max").
-! */
-! static int
-! filter_uri_list(char_u **outlist, int max, char_u *src)
-! {
-! int i, j;
-!
-! for (i = j = 0; i < max; ++i)
- {
-! outlist[i] = NULL;
-! if (STRNCMP(src, "file:", 5) == 0)
- {
-! src += 5;
-! if (STRNCMP(src, "//localhost", 11) == 0)
-! src += 11;
-! while (src[0] == '/' && src[1] == '/')
-! ++src;
-! outlist[j++] = vim_strsave(src);
- }
-! src += STRLEN(src) + 1;
- }
-+ return j;
-+ }
-
-! static char_u **
-! parse_uri_list(int *count, char_u *data, int len)
-! {
-! int n = 0;
-! char_u *tmp = NULL;
-! char_u **array = NULL;;
-!
-! if (data != NULL && len > 0 && (tmp = (char_u *)alloc(len + 1)) != NULL)
-! {
-! n = count_and_decode_uri_list(tmp, data, len);
-! if (n > 0 && (array = (char_u **)alloc(n * sizeof(char_u *))) != NULL)
-! n = filter_uri_list(array, n, tmp);
-! }
-! vim_free(tmp);
-! *count = n;
-! return array;
-! }
-
-! static void
-! drag_handle_uri_list(GdkDragContext *context,
-! GtkSelectionData *data,
-! guint time_,
-! GdkModifierType state,
-! gint x,
-! gint y)
-! {
-! char_u **fnames;
-! int nfiles = 0;
-
-! fnames = parse_uri_list(&nfiles, data->data, data->length);
-
-! if (fnames != NULL && nfiles > 0)
-! {
-! int_u modifiers = 0;
-
-! gtk_drag_finish(context, TRUE, FALSE, time_); /* accept */
-
-! if (state & GDK_SHIFT_MASK)
-! modifiers |= MOUSE_SHIFT;
-! if (state & GDK_CONTROL_MASK)
-! modifiers |= MOUSE_CTRL;
-! if (state & GDK_MOD1_MASK)
-! modifiers |= MOUSE_ALT;
-
-! gui_handle_drop(x, y, modifiers, fnames, nfiles);
-! }
- }
-
- static void
-***************
-*** 2071,2077 ****
-
- /* Not sure about the role of "text/plain" here... */
- if (info == (guint)TARGET_TEXT_URI_LIST)
-! drag_handle_uri_list(context, data, time_, state);
- else
- drag_handle_text(context, data, time_, state);
-
---- 2030,2036 ----
-
- /* Not sure about the role of "text/plain" here... */
- if (info == (guint)TARGET_TEXT_URI_LIST)
-! drag_handle_uri_list(context, data, time_, state, x, y);
- else
- drag_handle_text(context, data, time_, state);
-
-*** ../vim-6.2.210/src/gui_mac.c Sun Jan 25 20:42:15 2004
---- src/gui_mac.c Thu Jan 22 10:44:31 2004
-***************
-*** 2653,2658 ****
---- 2653,2712 ----
- }
- #endif
-
-+ static OSErr
-+ receiveHandler(WindowRef theWindow, void* handlerRefCon, DragRef theDrag)
-+ {
-+ int x, y;
-+ int_u modifiers;
-+ char_u **fnames = NULL;
-+ int count;
-+ int i, j;
-+
-+ /* Get drop position, modifiers and count of items */
-+ {
-+ Point point;
-+ SInt16 mouseUpModifiers;
-+ UInt16 countItem;
-+
-+ GetDragMouse(theDrag, &point, NULL);
-+ GlobalToLocal(&point);
-+ x = point.h;
-+ y = point.v;
-+ GetDragModifiers(theDrag, NULL, NULL, &mouseUpModifiers);
-+ modifiers = EventModifiers2VimMouseModifiers(mouseUpModifiers);
-+ CountDragItems(theDrag, &countItem);
-+ count = countItem;
-+ }
-+
-+ fnames = (char_u **)alloc(count * sizeof(char_u *));
-+ if (fnames == NULL)
-+ return dragNotAcceptedErr;
-+
-+ /* Get file names dropped */
-+ for (i = j = 0; i < count; ++i)
-+ {
-+ DragItemRef item;
-+ OSErr err;
-+ Size size;
-+ FlavorType type = flavorTypeHFS;
-+ HFSFlavor hfsFlavor;
-+
-+ fnames[i] = NULL;
-+ GetDragItemReferenceNumber(theDrag, i + 1, &item);
-+ err = GetFlavorDataSize(theDrag, item, type, &size);
-+ if (err != noErr || size > sizeof(hfsFlavor))
-+ continue;
-+ err = GetFlavorData(theDrag, item, type, &hfsFlavor, &size, 0);
-+ if (err != noErr)
-+ continue;
-+ fnames[j++] = FullPathFromFSSpec_save(hfsFlavor.fileSpec);
-+ }
-+ count = j;
-+
-+ gui_handle_drop(x, y, modifiers, fnames, count);
-+ return noErr;
-+ }
-+
- /*
- * Initialise the GUI. Create all the windows, set up all the call-backs
- * etc.
-***************
-*** 2721,2726 ****
---- 2775,2782 ----
-
- gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true, documentProc,
- (WindowPtr) -1L, false, 0);
-+ InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler,
-+ gui.VimWindow, NULL);
- #ifdef USE_CARBONIZED
- SetPortWindowPort ( gui.VimWindow );
- #else
-*** ../vim-6.2.210/src/gui_w48.c Sun Jan 25 20:24:03 2004
---- src/gui_w48.c Wed Jan 21 16:11:49 2004
-***************
-*** 2841,2924 ****
- char szFile[BUFPATHLEN];
- UINT cFiles = DragQueryFile(hDrop, DRAGQVAL, szFile, BUFPATHLEN);
- UINT i;
-- char_u *fname;
- char_u **fnames;
- char_u redo_dirs = FALSE;
-
- /* TRACE("_OnDropFiles: %d files dropped\n", cFiles); */
-
- # ifdef FEAT_VISUAL
- reset_VIsual();
- # endif
-
- fnames = (char_u **)alloc(cFiles * sizeof(char_u *));
-
-! for (i = 0; i < cFiles; ++i)
-! {
-! DragQueryFile(hDrop, i, szFile, BUFPATHLEN);
-!
-! mch_dirname(IObuff, IOSIZE);
-! fname = shorten_fname(szFile, IObuff);
-! if (fname == NULL)
-! fname = szFile;
-! fnames[i] = vim_strsave(fname);
-! }
-! DragFinish(hDrop);
-!
-! /*
-! * When the cursor is at the command line, add the file names to the
-! * command line, don't edit the files.
-! */
-! if (State & CMDLINE)
-! {
- for (i = 0; i < cFiles; ++i)
- {
-! if (fnames[i] != NULL)
-! {
-! if (i > 0)
-! add_to_input_buf(" ", 1);
-! add_to_input_buf(fnames[i], (int)STRLEN(fnames[i]));
-! }
-! }
-! }
-! else
-! {
-! /*
-! * Handle dropping a directory on Vim.
-! * Change to that directory and don't open any file.
-! */
-! if (cFiles == 1 && mch_isdir(fnames[0]))
-! {
-! if (mch_chdir(fnames[0]) == 0)
-! {
-! msg_str((char_u *)":cd %s", fnames[0]);
-! vim_free(fnames[0]);
-! fnames[0] = NULL;
-! redo_dirs = TRUE;
-! }
- }
-
-! if (fnames[0] != NULL)
-! {
-! /* If Shift held down, change to first file's directory */
-! if (GetKeyState(VK_SHIFT) & 0x8000)
-! if (vim_chdirfile(fnames[0]) == OK)
-! redo_dirs = TRUE;
-!
-! /* Handle the drop, :edit or :split to get to the file */
-! handle_drop(cFiles, fnames,
-! ((GetKeyState(VK_CONTROL) & 0x8000) != 0));
-! }
-
-! if (redo_dirs)
-! shorten_fnames(TRUE);
-
-! /* Update the screen display */
-! update_screen(NOT_VALID);
-! setcursor();
-! out_flush();
- }
-- s_need_activate = TRUE;
- #endif
- }
-
---- 2841,2885 ----
- char szFile[BUFPATHLEN];
- UINT cFiles = DragQueryFile(hDrop, DRAGQVAL, szFile, BUFPATHLEN);
- UINT i;
- char_u **fnames;
- char_u redo_dirs = FALSE;
-+ POINT pt;
-+ int_u modifiers = 0;
-
- /* TRACE("_OnDropFiles: %d files dropped\n", cFiles); */
-
-+ /* Obtain dropped position */
-+ DragQueryPoint(hDrop, &pt);
-+ MapWindowPoints(s_hwnd, s_textArea, &pt, 1);
-+
- # ifdef FEAT_VISUAL
- reset_VIsual();
- # endif
-
- fnames = (char_u **)alloc(cFiles * sizeof(char_u *));
-
-! if (fnames != NULL)
- for (i = 0; i < cFiles; ++i)
- {
-! DragQueryFile(hDrop, i, szFile, BUFPATHLEN);
-! fnames[i] = vim_strsave(szFile);
- }
-
-! DragFinish(hDrop);
-!
-! if (fnames != NULL)
-! {
-! if ((GetKeyState(VK_SHIFT) & 0x8000) != 0)
-! modifiers |= MOUSE_SHIFT;
-! if ((GetKeyState(VK_CONTROL) & 0x8000) != 0)
-! modifiers |= MOUSE_CTRL;
-! if ((GetKeyState(VK_MENU) & 0x8000) != 0)
-! modifiers |= MOUSE_ALT;
-
-! gui_handle_drop(pt.x, pt.y, modifiers, fnames, cFiles);
-
-! s_need_activate = TRUE;
- }
- #endif
- }
-
-*** ../vim-6.2.210/src/proto/fileio.pro Sun Jun 1 12:26:09 2003
---- src/proto/fileio.pro Wed Jan 21 15:32:29 2004
-***************
-*** 5,10 ****
---- 5,11 ----
- int buf_write __ARGS((buf_T *buf, char_u *fname, char_u *sfname, linenr_T start, linenr_T end, exarg_T *eap, int append, int forceit, int reset_changed, int filtering));
- char_u *shorten_fname __ARGS((char_u *full_path, char_u *dir_name));
- void shorten_fnames __ARGS((int force));
-+ void shorten_filenames __ARGS((char_u **fnames, int count));
- char_u *modname __ARGS((char_u *fname, char_u *ext, int prepend_dot));
- char_u *buf_modname __ARGS((int shortname, char_u *fname, char_u *ext, int prepend_dot));
- int vim_fgets __ARGS((char_u *buf, int size, FILE *fp));
-*** ../vim-6.2.210/src/proto/gui.pro Sun Jun 1 12:26:24 2003
---- src/proto/gui.pro Wed Jan 21 15:32:24 2004
-***************
-*** 57,60 ****
---- 57,61 ----
- void gui_update_screen __ARGS((void));
- char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
- int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
-+ void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
- /* vim: set ft=c : */
-*** ../vim-6.2.210/src/version.c Sun Jan 25 20:42:15 2004
---- src/version.c Sun Jan 25 20:44:30 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 211,
- /**/
-
---
-NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE
- MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.212
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.212 (after 6.2.199)
-Problem: NetBeans: Replacing with a count is not handled correctly.
-Solution: Move reporting the change outside of the loop for the count.
- (Gordon Prieur)
-Files: src/normal.c
-
-
-*** ../vim-6.2.211/src/normal.c Sun Jan 25 19:40:26 2004
---- src/normal.c Tue Jan 27 17:06:04 2004
-***************
-*** 6134,6149 ****
- || cap->nchar == ']'))
- showmatch();
- ++curwin->w_cursor.col;
- #ifdef FEAT_NETBEANS_INTG
-! if (usingNetbeans)
-! {
-! colnr_T start = (colnr_T)(curwin->w_cursor.col
-! - cap->count1);
-! netbeans_inserted(curbuf, curwin->w_cursor.lnum, start,
-! (int)cap->count1, &ptr[start], (int)cap->count1);
-! }
-! #endif
- }
-
- /* mark the buffer as changed and prepare for displaying */
- changed_bytes(curwin->w_cursor.lnum,
---- 6134,6149 ----
- || cap->nchar == ']'))
- showmatch();
- ++curwin->w_cursor.col;
-+ }
- #ifdef FEAT_NETBEANS_INTG
-! if (usingNetbeans)
-! {
-! colnr_T start = (colnr_T)(curwin->w_cursor.col - cap->count1);
-!
-! netbeans_inserted(curbuf, curwin->w_cursor.lnum, start,
-! (int)cap->count1, &ptr[start], (int)cap->count1);
- }
-+ #endif
-
- /* mark the buffer as changed and prepare for displaying */
- changed_bytes(curwin->w_cursor.lnum,
-*** ../vim-6.2.211/src/version.c Sun Jan 25 20:45:55 2004
---- src/version.c Tue Jan 27 17:08:48 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 212,
- /**/
-
---
-DENNIS: Oh, very nice. King, eh! I expect you've got a palace and fine
- clothes and courtiers and plenty of food. And how d'you get that? By
- exploiting the workers! By hanging on to outdated imperialist dogma
- which perpetuates the social and economic differences in our society!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.213
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.213 (after 6.2.208)
-Problem: Using marker folding, "{{{1" doesn't start a new fold when already
- at fold level 1. (Servatius Brandt)
-Solution: Correctly compute the number of folds that start at "{{{1".
-Files: src/fold.c
-
-
-*** ../vim-6.2.212/src/fold.c Sun Jan 25 20:33:47 2004
---- src/fold.c Mon Jan 26 16:08:12 2004
-***************
-*** 3005,3012 ****
- {
- flp->lvl = n;
- flp->lvl_next = n;
-! if (n < start_lvl)
-! flp->start = 0;
- else
- flp->start = n - start_lvl;
- }
---- 3005,3012 ----
- {
- flp->lvl = n;
- flp->lvl_next = n;
-! if (n <= start_lvl)
-! flp->start = 1;
- else
- flp->start = n - start_lvl;
- }
-*** ../vim-6.2.212/src/version.c Tue Jan 27 17:09:16 2004
---- src/version.c Tue Jan 27 17:54:13 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 213,
- /**/
-
---
-OLD WOMAN: Well, how did you become king, then?
-ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
- held Excalibur aloft from the bosom of the water to signify by Divine
- Providence ... that I, Arthur, was to carry Excalibur ... That is
- why I am your king!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.214 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.214 (after 6.2.211) (extra)
-Problem: Warning for an unused variable.
-Solution: Delete the declaration. (Bill McCarthy)
-Files: src/gui_w48.c
-
-
-*** ../vim-6.2.213/src/gui_w48.c Sun Jan 25 20:45:55 2004
---- src/gui_w48.c Mon Jan 26 20:08:56 2004
-***************
-*** 2842,2848 ****
- UINT cFiles = DragQueryFile(hDrop, DRAGQVAL, szFile, BUFPATHLEN);
- UINT i;
- char_u **fnames;
-- char_u redo_dirs = FALSE;
- POINT pt;
- int_u modifiers = 0;
-
---- 2842,2847 ----
-*** ../vim-6.2.213/src/version.c Tue Jan 27 17:55:24 2004
---- src/version.c Wed Jan 1 01:31:25 2003
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 214,
- /**/
-
---
-DENNIS: Look, strange women lying on their backs in ponds handing out
- swords ... that's no basis for a system of government. Supreme
- executive power derives from a mandate from the masses, not from some
- farcical aquatic ceremony.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.215
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.215
-Problem: NetBeans: problems saving an unmodified file.
-Solution: Add isNetbeansModified() function. Disable netbeans_unmodified().
- (Gordon Prieur)
-Files: src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
- runtime/doc/netbeans.txt, runtime/doc/tags
-
-
-*** ../vim-6.2.214/src/fileio.c Sun Jan 25 20:45:55 2004
---- src/fileio.c Fri Jan 30 20:15:37 2004
-***************
-*** 2663,2669 ****
- {
- if (whole)
- {
-! if (buf->b_changed)
- {
- netbeans_save_buffer(buf);
- return retval;
---- 2663,2673 ----
- {
- if (whole)
- {
-! /*
-! * b_changed can be 0 after an undo, but we still need to write
-! * the buffer to NetBeans.
-! */
-! if (buf->b_changed || isNetbeansModified(buf))
- {
- netbeans_save_buffer(buf);
- return retval;
-*** ../vim-6.2.214/src/netbeans.c Sun Jan 25 19:40:26 2004
---- src/netbeans.c Fri Jan 30 20:45:18 2004
-***************
-*** 785,790 ****
---- 785,810 ----
- }
-
- /*
-+ * NetBeans and Vim have different undo models. In Vim, the file isn't
-+ * changed if changes are undone via the undo command. In NetBeans, once
-+ * a change has been made the file is marked as modified until saved. It
-+ * doesn't matter if the change was undone.
-+ *
-+ * So this function is for the corner case where Vim thinks a buffer is
-+ * unmodified but NetBeans thinks it IS modified.
-+ */
-+ int
-+ isNetbeansModified(buf_T *bufp)
-+ {
-+ int bufno = nb_getbufno(bufp);
-+
-+ if (bufno > 0)
-+ return buf_list[bufno].modified;
-+ else
-+ return FALSE;
-+ }
-+
-+ /*
- * Given a Netbeans buffer number, return the netbeans buffer.
- * Returns NULL for 0 or a negative number. A 0 bufno means a
- * non-buffer related command has been sent.
-***************
-*** 1496,1501 ****
---- 1516,1524 ----
- return FAIL;
- }
- buf->fireChanges = 0;
-+ if (buf->bufp != NULL && !buf->bufp->b_netbeans_file)
-+ EMSGN(_("E658: NetBeans connection lost for buffer %ld"),
-+ buf->bufp->b_fnum);
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "setTitle"))
-***************
-*** 2504,2516 ****
---- 2527,2543 ----
- /*
- * Send netbeans an unmodufied command.
- */
-+ /*ARGSUSED*/
- void
- netbeans_unmodified(buf_T *bufp)
- {
-+ #if 0
- char_u buf[128];
- int bufno;
- nbbuf_T *nbbuf;
-
-+ /* This has been disabled, because NetBeans considers a buffer modified
-+ * even when all changes have been undone. */
- nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
- if (nbbuf == NULL)
- return;
-***************
-*** 2520,2525 ****
---- 2547,2553 ----
- sprintf((char *)buf, "%d:unmodified=%d\n", bufno, cmdno);
- nbdebug(("EVT: %s", buf));
- nb_send((char *)buf, "netbeans_unmodified");
-+ #endif
- }
-
- /*
-*** ../vim-6.2.214/src/proto/netbeans.pro Sun Jan 18 21:31:56 2004
---- src/proto/netbeans.pro Fri Jan 30 20:15:58 2004
-***************
-*** 4,9 ****
---- 4,10 ----
- void netbeans_w32_connect __ARGS((void));
- void messageFromNetbeansW32 __ARGS((void));
- int isNetbeansBuffer __ARGS((buf_T *bufp));
-+ int isNetbeansModified __ARGS((buf_T *bufp));
- void netbeans_end __ARGS((void));
- void netbeans_startup_done __ARGS((void));
- void netbeans_frame_moved __ARGS((int new_x, int new_y));
-*** ../vim-6.2.214/runtime/doc/netbeans.txt Sun Jan 18 21:31:56 2004
---- runtime/doc/netbeans.txt Fri Jan 30 20:16:10 2004
-***************
-*** 189,194 ****
---- 189,202 ----
- NetBeans does not support partial writes for buffers that were
- opened from NetBeans.
-
-+ *E658*
-+ NetBeans connection lost for this buffer
-+ NetBeans has become confused about the state of this file.
-+ Rather than risc data corruption, NetBeans has severed the
-+ connection for this file. Vim will take over responsibility
-+ for saving changes to this file and NetBeans will no longer
-+ know of these changes.
-+
- ==============================================================================
- 9. Running Vim from NetBeans *netbeans-run*
-
-*** ../vim-6.2.214/runtime/doc/tags Sun Jan 18 21:19:56 2004
---- runtime/doc/tags Fri Jan 30 20:40:22 2004
-***************
-*** 3420,3425 ****
---- 3454,3463 ----
- E652 netbeans.txt /*E652*
- E653 netbeans.txt /*E653*
- E654 netbeans.txt /*E654*
-+ E655 eval.txt /*E655*
-+ E656 netbeans.txt /*E656*
-+ E657 netbeans.txt /*E657*
-+ E658 netbeans.txt /*E658*
- E66 syntax.txt /*E66*
- E67 syntax.txt /*E67*
- E68 pattern.txt /*E68*
-*** ../vim-6.2.214/src/version.c Wed Jan 1 01:32:06 2003
---- src/version.c Fri Jan 30 21:00:52 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 215,
- /**/
-
---
-I learned the customs and mannerisms of engineers by observing them, much the
-way Jane Goodall learned about the great apes, but without the hassle of
-grooming.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.216
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.216 (after 6.2.206)
-Problem: Multi-byte characters stil cannot be used as hotkeys in a console
- dialog. (Mattias Erkisson)
-Solution: Make get_keystroke() handle multi-byte characters.
-Files: src/misc1.c
-
-
-*** ../vim-6.2.215/src/misc1.c Sun Jan 18 20:58:01 2004
---- src/misc1.c Wed Jan 28 13:54:06 2004
-***************
-*** 2832,2837 ****
---- 2832,2846 ----
- continue;
- }
- }
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ {
-+ if (MB_BYTE2LEN(n) > len)
-+ continue; /* more bytes to get */
-+ buf[len >= CBUFLEN ? CBUFLEN - 1 : len] = NUL;
-+ n = (*mb_ptr2char)(buf);
-+ }
-+ #endif
- #ifdef UNIX
- if (n == intr_char)
- n = ESC;
-*** ../vim-6.2.215/src/version.c Fri Jan 30 21:03:16 2004
---- src/version.c Sun Feb 1 16:37:31 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 216,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-6. You refuse to go to a vacation spot with no electricity and no phone lines.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.217
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.217
-Problem: GTK: setting the title doesn't always work correctly.
-Solution: Invoke gui_mch_settitle(). (Tomas Stehlik)
-Files: src/os_unix.c
-
-
-*** ../vim-6.2.216/src/os_unix.c Sun Oct 12 17:14:12 2003
---- src/os_unix.c Thu Jan 29 21:38:08 2004
-***************
-*** 1742,1748 ****
- if (get_x11_windis() == OK)
- type = 1;
- #else
-! # if defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)
- if (gui.in_use)
- type = 1;
- # endif
---- 1747,1753 ----
- if (get_x11_windis() == OK)
- type = 1;
- #else
-! # if defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_GTK)
- if (gui.in_use)
- type = 1;
- # endif
-*** ../vim-6.2.216/src/version.c Sun Feb 1 16:39:09 2004
---- src/version.c Sun Feb 1 19:51:21 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 217,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-9. All your daydreaming is preoccupied with getting a faster connection to the
- net: 28.8...ISDN...cable modem...T1...T3.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.218
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.218
-Problem: Warning for function without prototype.
-Solution: Add argument types to the msgCB field of the BalloonEval struct.
-Files: src/gui_beval.h
-
-
-*** ../vim-6.2.217/src/gui_beval.h Sun Oct 12 16:42:14 2003
---- src/gui_beval.h Fri Jan 30 19:51:37 2004
-***************
-*** 26,32 ****
- ShS_SHOWING /* the balloon is being displayed */
- } BeState;
-
-! typedef struct
- {
- #ifdef FEAT_GUI_GTK
- GtkWidget *target; /* widget we are monitoring */
---- 26,32 ----
- ShS_SHOWING /* the balloon is being displayed */
- } BeState;
-
-! typedef struct BalloonEvalStruct
- {
- #ifdef FEAT_GUI_GTK
- GtkWidget *target; /* widget we are monitoring */
-***************
-*** 60,66 ****
- #endif
- int ts; /* tabstop setting for this buffer */
- char_u *msg;
-! void (*msgCB)();
- void *clientData; /* For callback */
- #if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
- Dimension screen_width; /* screen width in pixels */
---- 60,66 ----
- #endif
- int ts; /* tabstop setting for this buffer */
- char_u *msg;
-! void (*msgCB)__ARGS((struct BalloonEvalStruct *, int));
- void *clientData; /* For callback */
- #if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
- Dimension screen_width; /* screen width in pixels */
-*** ../vim-6.2.217/src/version.c Sun Feb 1 19:56:37 2004
---- src/version.c Sun Feb 1 19:58:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 218,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-10. And even your night dreams are in HTML.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.219
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.219
-Problem: Syntax highlighting hangs on an empty match of an item with a
- nextgroup. (Charles Campbell)
-Solution: Remember that the item has already matched and don't match it
- again at the same position.
-Files: src/syntax.c
-
-
-*** ../vim-6.2.218/src/syntax.c Sat Sep 27 19:26:33 2003
---- src/syntax.c Thu Jan 29 21:14:40 2004
-***************
-*** 348,354 ****
- static void validate_current_state __ARGS((void));
- static int syn_finish_line __ARGS((int syncing));
- static int syn_current_attr __ARGS((int syncing, int displaying));
-! static int did_match_already __ARGS((int idx));
- static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
- static void check_state_ends __ARGS((void));
- static void update_si_attr __ARGS((int idx));
---- 348,354 ----
- static void validate_current_state __ARGS((void));
- static int syn_finish_line __ARGS((int syncing));
- static int syn_current_attr __ARGS((int syncing, int displaying));
-! static int did_match_already __ARGS((int idx, garray_T *gap));
- static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
- static void check_state_ends __ARGS((void));
- static void update_si_attr __ARGS((int idx));
-***************
-*** 1730,1737 ****
---- 1730,1740 ----
- reg_extmatch_T *cur_extmatch = NULL;
- char_u *line; /* current line. NOTE: becomes invalid after
- looking for a pattern match! */
-+
-+ /* variables for zero-width matches that have a "nextgroup" argument */
- int keep_next_list;
- int zero_width_next_list = FALSE;
-+ garray_T zero_width_next_ga;
-
- /*
- * No character, no attributes! Past end of line?
-***************
-*** 1775,1780 ****
---- 1778,1787 ----
- && (syn_buf->b_keywtab != NULL
- || syn_buf->b_keywtab_ic != NULL);
-
-+ /* Init the list of zero-width matches with a nextlist. This is used to
-+ * avoid matching the same item in the same position twice. */
-+ ga_init2(&zero_width_next_ga, sizeof(int), 10);
-+
- /*
- * Repeat matching keywords and patterns, to find contained items at the
- * same column. This stops when there are no extra matches at the current
-***************
-*** 1951,1957 ****
- * before, skip it. Must retry in the next
- * column, because it may match from there.
- */
-! if (did_match_already(idx))
- {
- try_next_column = TRUE;
- continue;
---- 1958,1964 ----
- * before, skip it. Must retry in the next
- * column, because it may match from there.
- */
-! if (did_match_already(idx, &zero_width_next_ga))
- {
- try_next_column = TRUE;
- continue;
-***************
-*** 2070,2075 ****
---- 2077,2092 ----
- current_next_flags = lspp->sp_flags;
- keep_next_list = TRUE;
- zero_width_next_list = TRUE;
-+
-+ /* Add the index to a list, so that we can check
-+ * later that we don't match it again (and cause an
-+ * endless loop). */
-+ if (ga_grow(&zero_width_next_ga, 1) == OK)
-+ {
-+ ((int *)(zero_width_next_ga.ga_data))
-+ [zero_width_next_ga.ga_len++] = next_match_idx;
-+ --zero_width_next_ga.ga_room;
-+ }
- next_match_idx = -1;
- }
- else
-***************
-*** 2172,2177 ****
---- 2189,2197 ----
- && !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY)))
- current_next_list = NULL;
-
-+ if (zero_width_next_ga.ga_len > 0)
-+ ga_clear(&zero_width_next_ga);
-+
- /* No longer need external matches. But keep next_match_extmatch. */
- unref_extmatch(re_extmatch_out);
- re_extmatch_out = NULL;
-***************
-*** 2185,2202 ****
- * Check if we already matched pattern "idx" at the current column.
- */
- static int
-! did_match_already(idx)
-! int idx;
- {
- int i;
-
- for (i = current_state.ga_len; --i >= 0; )
-- {
- if (CUR_STATE(i).si_m_startcol == (int)current_col
- && CUR_STATE(i).si_m_lnum == (int)current_lnum
- && CUR_STATE(i).si_idx == idx)
- return TRUE;
-! }
- return FALSE;
- }
-
---- 2205,2228 ----
- * Check if we already matched pattern "idx" at the current column.
- */
- static int
-! did_match_already(idx, gap)
-! int idx;
-! garray_T *gap;
- {
- int i;
-
- for (i = current_state.ga_len; --i >= 0; )
- if (CUR_STATE(i).si_m_startcol == (int)current_col
- && CUR_STATE(i).si_m_lnum == (int)current_lnum
- && CUR_STATE(i).si_idx == idx)
- return TRUE;
-!
-! /* Zero-width matches with a nextgroup argument are not put on the syntax
-! * stack, and can only be matched once anyway. */
-! for (i = gap->ga_len; --i >= 0; )
-! if (((int *)(gap->ga_data))[i] == idx)
-! return TRUE;
-!
- return FALSE;
- }
-
-*** ../vim-6.2.218/src/version.c Sun Feb 1 19:59:21 2004
---- src/version.c Sun Feb 1 20:00:45 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 219,
- /**/
-
---
-The Feynman problem solving Algorithm:
- 1) Write down the problem
- 2) Think real hard
- 3) Write down the answer
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.220
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.220
-Problem: When a Vim server runs in a console a remote command isn't handled
- before a key is typed. (Joshua Neuheisel)
-Solution: Don't try reading more input when a client-server command has been
- received.
-Files: src/os_unix.c
-
-
-*** ../vim-6.2.219/src/os_unix.c Sun Feb 1 19:56:37 2004
---- src/os_unix.c Sun Feb 1 20:05:07 2004
-***************
-*** 383,388 ****
---- 383,393 ----
- if (do_resize) /* interrupted by SIGWINCH signal */
- continue;
-
-+ #ifdef FEAT_CLIENTSERVER
-+ if (received_from_client)
-+ return 0; /* Input was put directly in typeahead buffer */
-+ #endif
-+
- /*
- * For some terminals we only get one character at a time.
- * We want the get all available characters, so we could keep on
-*** ../vim-6.2.219/src/version.c Sun Feb 1 20:02:19 2004
---- src/version.c Sun Feb 1 20:06:15 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 220,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-11. You find yourself typing "com" after every period when using a word
- processor.com
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.221
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.221
-Problem: No file name completion for ":cscope add".
-Solution: Add the XFILE flag to ":cscope". (Gary Johnson)
-Files: src/ex_cmds.h
-
-
-*** ../vim-6.2.220/src/ex_cmds.h Sun Jan 25 19:32:46 2004
---- src/ex_cmds.h Fri Jan 30 11:23:53 2004
-***************
-*** 257,263 ****
- EX(CMD_crewind, "crewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cscope, "cscope", do_cscope,
-! EXTRA|NOTRLCOM|SBOXOK),
- EX(CMD_cstag, "cstag", do_cstag,
- BANG|TRLBAR|WORD1),
- EX(CMD_cunmap, "cunmap", ex_unmap,
---- 257,263 ----
- EX(CMD_crewind, "crewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cscope, "cscope", do_cscope,
-! EXTRA|NOTRLCOM|SBOXOK|XFILE),
- EX(CMD_cstag, "cstag", do_cstag,
- BANG|TRLBAR|WORD1),
- EX(CMD_cunmap, "cunmap", ex_unmap,
-*** ../vim-6.2.220/src/version.c Sun Feb 1 20:06:29 2004
---- src/version.c Sun Feb 1 20:08:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 221,
- /**/
-
---
-Me? A skeptic? I trust you have proof.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.222
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.222
-Problem: Using "--remote" several times on a row only opens some of the
- files. (Dany St-Amant)
-Solution: Don't delete all typehead when the server receives a command from
- a client, only delete typed characters.
-Files: src/main.c
-
-
-*** ../vim-6.2.221/src/main.c Wed Nov 12 20:44:40 2003
---- src/main.c Fri Jan 30 15:49:09 2004
-***************
-*** 3051,3060 ****
- str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE);
- p_cpo = cpo_save;
-
-! /* Can't use add_to_input_buf() here, we now have K_SPECIAL bytes.
-! * First clear the typeahead buffer, there could be half a mapping there. */
-! del_typebuf(typebuf.tb_len, 0);
-! (void)ins_typebuf(str, REMAP_NONE, 0, TRUE, FALSE);
- vim_free((char_u *)ptr);
-
- /* Let input_available() know we inserted text in the typeahead buffer. */
---- 3059,3075 ----
- str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE);
- p_cpo = cpo_save;
-
-! /*
-! * Add the string to the input stream.
-! * Can't use add_to_input_buf() here, we now have K_SPECIAL bytes.
-! *
-! * First clear typed characters from the typeahead buffer, there could be
-! * half a mapping there. Then append to the existing string, so that
-! * multiple commands from a client are concatenated.
-! */
-! if (typebuf.tb_maplen < typebuf.tb_len)
-! del_typebuf(typebuf.tb_len - typebuf.tb_maplen, typebuf.tb_maplen);
-! (void)ins_typebuf(str, REMAP_NONE, typebuf.tb_len, TRUE, FALSE);
- vim_free((char_u *)ptr);
-
- /* Let input_available() know we inserted text in the typeahead buffer. */
-*** ../vim-6.2.221/src/version.c Sun Feb 1 20:08:40 2004
---- src/version.c Mon Feb 2 09:50:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 222,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-16. You step out of your room and realize that your parents have moved and
- you don't have a clue when it happened.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.223
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.223
-Problem: Cscope: Avoid a hang when cscope waits for a response while Vim
- waits for a prompt.
- Error messages from Cscope mess up the display.
-Solution: Detect the hit-enter message and respond by sending a return
- character to cscope. (Gary Johnson)
- Use EMSG() and strerror() when possible. Replace perror() with
- PERROR() everywhere, add emsg3().
-Files: src/diff.c, src/if_cscope.c, src/integration.c, src/message.c,
- src/proto/message.pro, src/misc2.c, src/netbeans.c, src/vim.h
-
-
-*** ../vim-6.2.222/src/diff.c Sun Jan 18 20:58:01 2004
---- src/diff.c Sun Feb 1 15:01:19 2004
-***************
-*** 130,136 ****
- return;
- }
-
-! EMSG2(_("E96: Can not diff more than %ld buffers"), DB_COUNT);
- }
-
- /*
---- 130,136 ----
- return;
- }
-
-! EMSGN(_("E96: Can not diff more than %ld buffers"), DB_COUNT);
- }
-
- /*
-*** ../vim-6.2.222/src/if_cscope.c Wed Sep 10 21:35:55 2003
---- src/if_cscope.c Sun Feb 1 15:23:43 2004
-***************
-*** 754,764 ****
- err_save = dup(STDERR_FILENO);
- #endif
- if (dup2(to_cs[0], STDIN_FILENO) == -1)
-! perror("cs_create_connection 1");
- if (dup2(from_cs[1], STDOUT_FILENO) == -1)
-! perror("cs_create_connection 2");
- if (dup2(from_cs[1], STDERR_FILENO) == -1)
-! perror("cs_create_connection 3");
-
- /* close unused */
- #if defined(UNIX)
---- 754,764 ----
- err_save = dup(STDERR_FILENO);
- #endif
- if (dup2(to_cs[0], STDIN_FILENO) == -1)
-! PERROR("cs_create_connection 1");
- if (dup2(from_cs[1], STDOUT_FILENO) == -1)
-! PERROR("cs_create_connection 2");
- if (dup2(from_cs[1], STDERR_FILENO) == -1)
-! PERROR("cs_create_connection 3");
-
- /* close unused */
- #if defined(UNIX)
-***************
-*** 839,845 ****
-
- #if defined(UNIX)
- if (execl("/bin/sh", "sh", "-c", cmd, NULL) == -1)
-! perror(_("cs_create_connection exec failed"));
-
- exit(127);
- /* NOTREACHED */
---- 839,845 ----
-
- #if defined(UNIX)
- if (execl("/bin/sh", "sh", "-c", cmd, NULL) == -1)
-! PERROR(_("cs_create_connection exec failed"));
-
- exit(127);
- /* NOTREACHED */
-***************
-*** 889,895 ****
- # endif
- if (ph == -1)
- {
-! perror(_("cs_create_connection exec failed"));
- (void)EMSG(_("E623: Could not spawn cscope process"));
- goto err_closing;
- }
---- 889,895 ----
- # endif
- if (ph == -1)
- {
-! PERROR(_("cs_create_connection exec failed"));
- (void)EMSG(_("E623: Could not spawn cscope process"));
- goto err_closing;
- }
-***************
-*** 903,911 ****
- * reopen as streams.
- */
- if ((csinfo[i].to_fp = fdopen(to_cs[1], "w")) == NULL)
-! perror(_("cs_create_connection: fdopen for to_fp failed"));
- if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL)
-! perror(_("cs_create_connection: fdopen for fr_fp failed"));
-
- #if defined(UNIX)
- /* close unused */
---- 903,911 ----
- * reopen as streams.
- */
- if ((csinfo[i].to_fp = fdopen(to_cs[1], "w")) == NULL)
-! PERROR(_("cs_create_connection: fdopen for to_fp failed"));
- if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL)
-! PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-
- #if defined(UNIX)
- /* close unused */
-***************
-*** 1974,2027 ****
- int ch;
- char *buf = NULL; /* buffer for possible error message from cscope */
- int bufpos = 0;
-! static char *cs_emsg = N_("E609: Cscope error: %s");
-! /* maximum allowed len for Cscope error message */
-! int maxlen = IOSIZE - strlen(_(cs_emsg));
-
- for (;;)
- {
- while ((ch = getc(csinfo[i].fr_fp)) != EOF && ch != CSCOPE_PROMPT[0])
-! /* if verbose, have space and char is printable */
-! if (p_csverbose && bufpos < maxlen - 1 && vim_isprintc(ch))
- {
- if (buf == NULL) /* lazy buffer allocation */
- buf = (char *)alloc(maxlen);
-!
-! if (buf != NULL) /* append character to a string */
- {
- buf[bufpos++] = ch;
- buf[bufpos] = NUL;
- }
- }
-
-! if (ch == EOF)
- {
-! perror("cs_read_prompt EOF(1)");
-! if (buf != NULL && buf[0] != NUL)
-! (void)EMSG2(_(cs_emsg), buf);
-! else if (p_csverbose)
-! cs_reading_emsg(i); /* don't have additional information */
-! cs_release_csp(i, TRUE);
-! vim_free(buf);
-! return CSCOPE_FAILURE;
-! }
-
-! ch = getc(csinfo[i].fr_fp);
-! if (ch == EOF)
-! perror("cs_read_prompt EOF(2)");
-! if (ch != CSCOPE_PROMPT[1])
-! continue;
-
-- ch = getc(csinfo[i].fr_fp);
- if (ch == EOF)
-! perror("cs_read_prompt EOF(3)");
-! if (ch != CSCOPE_PROMPT[2])
-! continue;
-! break;
- }
- vim_free(buf);
- return CSCOPE_SUCCESS;
-! } /* cs_read_prompt */
-
-
- /*
---- 1974,2053 ----
- int ch;
- char *buf = NULL; /* buffer for possible error message from cscope */
- int bufpos = 0;
-! char *cs_emsg;
-! int maxlen;
-! static char *eprompt = "Press the RETURN key to continue:";
-! int epromptlen = strlen(eprompt);
-! int n;
-!
-! cs_emsg = _("E609: Cscope error: %s");
-! /* compute maximum allowed len for Cscope error message */
-! maxlen = (int)(IOSIZE - strlen(cs_emsg));
-
- for (;;)
- {
- while ((ch = getc(csinfo[i].fr_fp)) != EOF && ch != CSCOPE_PROMPT[0])
-! /* if there is room and char is printable */
-! if (bufpos < maxlen - 1 && vim_isprintc(ch))
- {
- if (buf == NULL) /* lazy buffer allocation */
- buf = (char *)alloc(maxlen);
-! if (buf != NULL)
- {
-+ /* append character to the message */
- buf[bufpos++] = ch;
- buf[bufpos] = NUL;
-+ if (bufpos >= epromptlen
-+ && strcmp(&buf[bufpos - epromptlen], eprompt) == 0)
-+ {
-+ /* remove eprompt from buf */
-+ buf[bufpos - epromptlen] = NUL;
-+
-+ /* print message to user */
-+ (void)EMSG2(cs_emsg, buf);
-+
-+ /* send RETURN to cscope */
-+ (void)putc('\n', csinfo[i].to_fp);
-+ (void)fflush(csinfo[i].to_fp);
-+
-+ /* clear buf */
-+ bufpos = 0;
-+ buf[bufpos] = NUL;
-+ }
- }
- }
-
-! for (n = 0; n < (int)strlen(CSCOPE_PROMPT); ++n)
- {
-! if (n > 0)
-! ch = getc(csinfo[i].fr_fp);
-! if (ch == EOF)
-! {
-! PERROR("cs_read_prompt EOF");
-! if (buf != NULL && buf[0] != NUL)
-! (void)EMSG2(cs_emsg, buf);
-! else if (p_csverbose)
-! cs_reading_emsg(i); /* don't have additional information */
-! cs_release_csp(i, TRUE);
-! vim_free(buf);
-! return CSCOPE_FAILURE;
-! }
-
-! if (ch != CSCOPE_PROMPT[n])
-! {
-! ch = EOF;
-! break;
-! }
-! }
-
- if (ch == EOF)
-! continue; /* didn't find the prompt */
-! break; /* did find the prompt */
- }
-+
- vim_free(buf);
- return CSCOPE_SUCCESS;
-! }
-
-
- /*
-*** ../vim-6.2.222/src/integration.c Sun Jul 27 14:16:53 2003
---- src/integration.c Sun Feb 1 15:20:40 2004
-***************
-*** 648,654 ****
- port = atoi(address);
-
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
-
---- 648,654 ----
- port = atoi(address);
-
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
-
-***************
-*** 658,671 ****
- server.sin_family = AF_INET;
- server.sin_port = port;
- if ((host = gethostbyname(NOCATGETS("localhost"))) == NULL) {
-! perror(NOCATGETS("gethostbyname"));
- sd = -1;
- return;
- }
- memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
-
---- 658,671 ----
- server.sin_family = AF_INET;
- server.sin_port = port;
- if ((host = gethostbyname(NOCATGETS("localhost"))) == NULL) {
-! PERROR(NOCATGETS("gethostbyname"));
- sd = -1;
- return;
- }
- memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
-
-***************
-*** 678,700 ****
- close(sd);
- #ifdef INET_SOCKETS
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
- #endif
- if (connect(sd, (struct sockaddr *)&server,
- sizeof(server))) {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
-
- } else {
-! perror(NOCATGETS("workshop_connect"));
- return;
- }
- }
---- 678,700 ----
- close(sd);
- #ifdef INET_SOCKETS
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
- #endif
- if (connect(sd, (struct sockaddr *)&server,
- sizeof(server))) {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
-
- } else {
-! PERROR(NOCATGETS("workshop_connect"));
- return;
- }
- }
-*** ../vim-6.2.222/src/message.c Sun Jan 25 20:28:03 2004
---- src/message.c Sun Feb 1 15:14:08 2004
-***************
-*** 554,563 ****
---- 554,576 ----
- return msg_attr(s, attr);
- }
-
-+ /*
-+ * Print an error message with one "%s" and one string argument.
-+ */
- int
- emsg2(s, a1)
- char_u *s, *a1;
- {
-+ return emsg3(s, a1, NULL);
-+ }
-+
-+ /*
-+ * Print an error message with one or two "%s" and one or two string arguments.
-+ */
-+ int
-+ emsg3(s, a1, a2)
-+ char_u *s, *a1, *a2;
-+ {
- if ((emsg_off > 0 && *p_debug == NUL)
- #ifdef FEAT_EVAL
- || emsg_skip > 0
-***************
-*** 568,582 ****
- /* Check for NULL strings (just in case) */
- if (a1 == NULL)
- a1 = (char_u *)"[NULL]";
-! /* Check for very long strings (can happen with ":help ^A<CR>").
-! * Careful, the argument could actually be a long. */
-! if (STRLEN(s) + (strstr((char *)s, "%s") != NULL ? STRLEN(a1) : 20)
-! >= (size_t)IOSIZE)
-! a1 = (char_u *)_("[string too long]");
-! sprintf((char *)IObuff, (char *)s, (char *)a1);
- return emsg(IObuff);
- }
-
- int
- emsgn(s, n)
- char_u *s;
---- 581,600 ----
- /* Check for NULL strings (just in case) */
- if (a1 == NULL)
- a1 = (char_u *)"[NULL]";
-! if (a2 == NULL)
-! a2 = (char_u *)"[NULL]";
-!
-! /* Check for very long strings (can happen with ":help ^A<CR>"). */
-! if (STRLEN(s) + STRLEN(a1) + STRLEN(a2) >= (size_t)IOSIZE)
-! a1 = a2 = (char_u *)_("[string too long]");
-!
-! sprintf((char *)IObuff, (char *)s, (char *)a1, (char *)a2);
- return emsg(IObuff);
- }
-
-+ /*
-+ * Print an error message with one "%ld" and one long int argument.
-+ */
- int
- emsgn(s, n)
- char_u *s;
-*** ../vim-6.2.222/src/proto/message.pro Sun Jun 1 12:26:14 2003
---- src/proto/message.pro Sun Feb 1 15:23:42 2004
-***************
-*** 6,11 ****
---- 6,12 ----
- void trunc_string __ARGS((char_u *s, char_u *buf, int room));
- int emsg __ARGS((char_u *s));
- int emsg2 __ARGS((char_u *s, char_u *a1));
-+ int emsg3 __ARGS((char_u *s, char_u *a1, char_u *a2));
- int emsgn __ARGS((char_u *s, long n));
- char_u *msg_trunc_attr __ARGS((char_u *s, int force, int attr));
- char_u *msg_may_trunc __ARGS((int force, char_u *s));
-*** ../vim-6.2.222/src/misc2.c Sun Jan 18 20:58:01 2004
---- src/misc2.c Sun Feb 1 15:26:21 2004
-***************
-*** 896,902 ****
- {
- /* Don't hide this message */
- emsg_silent = 0;
-! EMSG2(_("E342: Out of memory! (allocating %lu bytes)"), size);
- did_outofmem_msg = TRUE;
- }
- }
---- 896,902 ----
- {
- /* Don't hide this message */
- emsg_silent = 0;
-! EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
- did_outofmem_msg = TRUE;
- }
- }
-*** ../vim-6.2.222/src/netbeans.c Fri Jan 30 21:03:16 2004
---- src/netbeans.c Sun Feb 1 15:21:15 2004
-***************
-*** 272,278 ****
-
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
-! perror("socket() in netbeans_connect()");
- return;
- }
-
---- 272,278 ----
-
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
-! PERROR("socket() in netbeans_connect()");
- return;
- }
-
-***************
-*** 289,295 ****
- sd = open(hostname, O_RDONLY);
- return;
- }
-! perror("gethostbyname() in netbeans_connect()");
- sd = -1;
- return;
- }
---- 289,295 ----
- sd = open(hostname, O_RDONLY);
- return;
- }
-! PERROR("gethostbyname() in netbeans_connect()");
- sd = -1;
- return;
- }
-***************
-*** 297,303 ****
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
-! perror("socket()");
- return;
- }
-
---- 297,303 ----
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
-! PERROR("socket()");
- return;
- }
-
-***************
-*** 314,326 ****
- #ifdef INET_SOCKETS
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
-! perror("socket()#2 in netbeans_connect()");
- return;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
-! perror("socket()#2 in netbeans_connect()");
- return;
- }
- #endif
---- 314,326 ----
- #ifdef INET_SOCKETS
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
-! PERROR("socket()#2 in netbeans_connect()");
- return;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
-! PERROR("socket()#2 in netbeans_connect()");
- return;
- }
- #endif
-***************
-*** 343,349 ****
- if (!success)
- {
- /* Get here when the server can't be found. */
-! perror(_("Cannot connect to Netbeans #2"));
- getout(1);
- }
- }
---- 343,349 ----
- if (!success)
- {
- /* Get here when the server can't be found. */
-! PERROR(_("Cannot connect to Netbeans #2"));
- getout(1);
- }
- }
-***************
-*** 351,357 ****
- }
- else
- {
-! perror(_("Cannot connect to Netbeans"));
- getout(1);
- }
- }
---- 351,357 ----
- }
- else
- {
-! PERROR(_("Cannot connect to Netbeans"));
- getout(1);
- }
- }
-***************
-*** 630,636 ****
- netbeans_disconnect();
- nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
- if (len < 0)
-! perror(_("read from Netbeans socket"));
- return; /* don't try to parse it */;
- }
-
---- 630,636 ----
- netbeans_disconnect();
- nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
- if (len < 0)
-! PERROR(_("read from Netbeans socket"));
- return; /* don't try to parse it */;
- }
-
-*** ../vim-6.2.222/src/vim.h Wed Nov 5 10:32:28 2003
---- src/vim.h Sun Feb 1 15:17:21 2004
-***************
-*** 1242,1247 ****
---- 1242,1255 ----
- #define MSG_PUTS_LONG(s) msg_puts_long((char_u *)(s))
- #define MSG_PUTS_LONG_ATTR(s, a) msg_puts_long_attr((char_u *)(s), (a))
-
-+ /* Prefer using emsg3(), because perror() may send the output to the wrong
-+ * destination and mess up the screen. */
-+ #ifdef HAVE_STRERROR
-+ # define PERROR(msg) (void)emsg3((char_u *)"%s: %s", (char_u *)msg, (char_u *)strerror(errno))
-+ #else
-+ # define PERROR(msg) perror(msg)
-+ #endif
-+
- typedef long linenr_T; /* line number type */
- typedef unsigned colnr_T; /* column number type */
- typedef unsigned short disptick_T; /* display tick type */
-*** ../vim-6.2.222/src/version.c Mon Feb 2 10:03:01 2004
---- src/version.c Mon Feb 2 12:47:46 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 223,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-25. You believe nothing looks sexier than a man in boxer shorts illuminated
- only by a 17" inch svga monitor.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.224
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.224
-Problem: Mac: Can't compile with small features. (Axel Kielhorn)
-Solution: Also include vim_chdirfile() when compiling for the Mac.
-Files: src/misc2.c
-
-
-*** ../vim-6.2.223/src/misc2.c Mon Feb 2 12:53:51 2004
---- src/misc2.c Sun Feb 1 15:26:21 2004
-***************
-*** 2638,2644 ****
- return State;
- }
-
-! #if defined(FEAT_SESSION) || defined(MSWIN) \
- || (defined(FEAT_GUI_GTK) \
- && (defined(FEAT_WINDOWS) || defined(FEAT_DND))) \
- || defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) \
---- 2638,2644 ----
- return State;
- }
-
-! #if defined(FEAT_SESSION) || defined(MSWIN) || defined(FEAT_GUI_MAC) \
- || (defined(FEAT_GUI_GTK) \
- && (defined(FEAT_WINDOWS) || defined(FEAT_DND))) \
- || defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) \
-*** ../vim-6.2.223/src/version.c Mon Feb 2 12:53:51 2004
---- src/version.c Mon Feb 2 12:59:39 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 224,
- /**/
-
---
-If all you have is a hammer, everything looks like a nail.
-When your hammer is C++, everything begins to look like a thumb.
- -- Steve Hoflich, comp.lang.c++
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.225
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.225
-Problem: NetBeans: Reported modified state isn't exactly right.
-Solution: Report a file being modified in the NetBeans way.
-Files: src/netbeans.c
-
-
-*** ../vim-6.2.224/src/netbeans.c Mon Feb 2 12:53:51 2004
---- src/netbeans.c Sun Feb 1 15:21:15 2004
-***************
-*** 1120,1126 ****
- nb_reply_nr(cmdno, (long)count_changed_buffers());
- else
- /* Return whether the buffer is modified. */
-! nb_reply_nr(cmdno, (long)buf->bufp->b_changed);
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "saveAndExit"))
---- 1120,1127 ----
- nb_reply_nr(cmdno, (long)count_changed_buffers());
- else
- /* Return whether the buffer is modified. */
-! nb_reply_nr(cmdno, (long)(buf->bufp->b_changed
-! || isNetbeansModified(buf->bufp)));
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "saveAndExit"))
-*** ../vim-6.2.224/src/version.c Mon Feb 2 13:00:19 2004
---- src/version.c Mon Feb 2 13:01:46 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 225,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-26. You check your mail. It says "no new messages." So you check it again.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.226 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.226 (after 6.2.107) (extra)
-Problem: The "ws2-32.lib" file isn't always available.
-Solution: Use "WSock32.lib" instead. (Taro Muraoka, Dan Sharp)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
-
-
-*** ../vim-6.2.225/src/Make_cyg.mak Tue Jan 6 16:33:35 2004
---- src/Make_cyg.mak Tue Feb 3 10:47:32 2004
-***************
-*** 1,6 ****
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2004 Jan 03
- #
- # This compiles Vim as a Windows application. If you want Vim to run as a
- # Cygwin application use the Makefile (just like on Unix).
---- 1,6 ----
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2004 Feb 03
- #
- # This compiles Vim as a Windows application. If you want Vim to run as a
- # Cygwin application use the Makefile (just like on Unix).
-***************
-*** 296,302 ****
- ifeq (yes, $(NETBEANS))
- DEFINES += -DFEAT_NETBEANS_INTG
- EXTRA_OBJS += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
-! EXTRA_LIBS += -lws2_32
-
- ifeq (yes, $(DEBUG))
- DEFINES += -DNBDEBUG
---- 296,302 ----
- ifeq (yes, $(NETBEANS))
- DEFINES += -DFEAT_NETBEANS_INTG
- EXTRA_OBJS += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
-! EXTRA_LIBS += -lwsock32
-
- ifeq (yes, $(DEBUG))
- DEFINES += -DNBDEBUG
-*** ../vim-6.2.225/src/Make_ming.mak Tue Jan 6 16:33:35 2004
---- src/Make_ming.mak Tue Feb 3 10:47:43 2004
-***************
-*** 379,385 ****
- endif
- ifeq ($(NETBEANS),yes)
- OBJ += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
-! LIB += -lws2_32
- endif
- ifdef XPM
- OBJ += $(OUTDIR)/xpm_w32.o
---- 379,385 ----
- endif
- ifeq ($(NETBEANS),yes)
- OBJ += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
-! LIB += -lwsock32
- endif
- ifdef XPM
- OBJ += $(OUTDIR)/xpm_w32.o
-*** ../vim-6.2.225/src/Make_mvc.mak Sun Oct 12 16:42:14 2003
---- src/Make_mvc.mak Fri Oct 17 19:26:10 2003
-***************
-*** 199,205 ****
- NBDEBUG_INCL = nbdebug.h
- NBDEBUG_SRC = nbdebug.c
- !endif
-! NETBEANS_LIB = Ws2_32.lib
- !endif
-
- !ifdef XPM
---- 199,205 ----
- NBDEBUG_INCL = nbdebug.h
- NBDEBUG_SRC = nbdebug.c
- !endif
-! NETBEANS_LIB = WSock32.lib
- !endif
-
- !ifdef XPM
-*** ../vim-6.2.225/src/version.c Mon Feb 2 13:02:59 2004
---- src/version.c Tue Feb 3 16:12:44 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 226,
- /**/
-
---
-The technology involved in making anything invisible is so infinitely
-complex that nine hundred and ninety-nine billion, nine hundred and
-ninety-nine million, nine hundred and ninety-nine thousand, nine hundred
-and ninety-nine times out of a trillion it is much simpler and more
-effective just to take the thing away and do without it.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.227 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.227 (extra)
-Problem: The "PC" symbol is defined but not used anywhere.
-Solution: Remove "-DPC" from the makefiles.
-Files: src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
- src/Make_ming.mak
-
-
-*** ../vim-6.2.226/src/Make_bc3.mak Wed May 14 19:31:56 2003
---- src/Make_bc3.mak Tue Feb 3 10:46:21 2004
-***************
-*** 164,170 ****
- -Iproto
- -I$(INCLUDEPATH)
- -L$(LIBPATH)
-! -DPC;MSDOS$(SPAWND)
- | vim.cfg
-
- test:
---- 164,170 ----
- -Iproto
- -I$(INCLUDEPATH)
- -L$(LIBPATH)
-! -DMSDOS$(SPAWND)
- | vim.cfg
-
- test:
-*** ../vim-6.2.226/src/Make_bc5.mak Tue Jan 6 16:33:35 2004
---- src/Make_bc5.mak Tue Feb 3 10:47:26 2004
-***************
-*** 284,290 ****
- # shouldn't have to change:
- LIB = $(BOR)\lib
- INCLUDE = $(BOR)\include;.;proto
-! DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DPC -DHAVE_PATHDEF \
- -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
-
- !ifdef PERL
---- 284,290 ----
- # shouldn't have to change:
- LIB = $(BOR)\lib
- INCLUDE = $(BOR)\include;.;proto
-! DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DHAVE_PATHDEF \
- -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
-
- !ifdef PERL
-*** ../vim-6.2.226/src/Make_cyg.mak Tue Feb 3 16:14:03 2004
---- src/Make_cyg.mak Tue Feb 3 10:47:32 2004
-***************
-*** 91,97 ****
- ### See feature.h for a list of optionals.
- ### Any other defines can be included here.
-
-! DEFINES = -DWIN32 -DPC -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
- -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
- INCLUDES = -mcpu=$(CPUNR) -march=$(ARCH) -Iproto
-
---- 91,97 ----
- ### See feature.h for a list of optionals.
- ### Any other defines can be included here.
-
-! DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
- -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
- INCLUDES = -mcpu=$(CPUNR) -march=$(ARCH) -Iproto
-
-*** ../vim-6.2.226/src/Make_ming.mak Tue Feb 3 16:14:03 2004
---- src/Make_ming.mak Tue Feb 3 10:47:43 2004
-***************
-*** 204,210 ****
- # See feature.h for a list of options.
- # Any other defines can be included here.
- DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
-! DEFINES=-DWIN32 -DPC -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
- -DHAVE_PATHDEF -DFEAT_$(FEATURES)
- ifeq ($(CROSS),yes)
- # cross-compiler:
---- 204,210 ----
- # See feature.h for a list of options.
- # Any other defines can be included here.
- DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
-! DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
- -DHAVE_PATHDEF -DFEAT_$(FEATURES)
- ifeq ($(CROSS),yes)
- # cross-compiler:
-*** ../vim-6.2.226/src/version.c Tue Feb 3 16:14:03 2004
---- src/version.c Tue Feb 3 16:18:55 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 227,
- /**/
-
---
-This planet has -- or rather had -- a problem, which was this: most
-of the people living on it were unhappy for pretty much of the time.
-Many solutions were suggested for this problem, but most of these
-were largely concerned with the movements of small green pieces of
-paper, which is odd because on the whole it wasn't the small green
-pieces of paper that were unhappy.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.228
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.228
-Problem: Receiving CTRL-\ CTRL-N after typing "f" or "m" doesn't switch Vim
- back to Normal mode. Same for CTRL-\ CTRL-G.
-Solution: Check if the character typed after a command is CTRL-\ and obtain
- another character to check for CTRL-N or CTRL-G, waiting up to
- 'ttimeoutlen' msec.
-Files: src/normal.c
-
-
-*** ../vim-6.2.227/src/normal.c Tue Jan 27 17:09:16 2004
---- src/normal.c Tue Feb 3 16:26:11 2004
-***************
-*** 250,256 ****
- {Ctrl_Y, nv_scroll_line, 0, FALSE},
- {Ctrl_Z, nv_suspend, 0, 0},
- {ESC, nv_esc, 0, FALSE},
-! {Ctrl_BSL, nv_normal, 0, 0},
- {Ctrl_RSB, nv_ident, NV_NCW, 0},
- {Ctrl_HAT, nv_hat, NV_NCW, 0},
- {Ctrl__, nv_error, 0, 0},
---- 250,256 ----
- {Ctrl_Y, nv_scroll_line, 0, FALSE},
- {Ctrl_Z, nv_suspend, 0, 0},
- {ESC, nv_esc, 0, FALSE},
-! {Ctrl_BSL, nv_normal, NV_NCH_ALW, 0},
- {Ctrl_RSB, nv_ident, NV_NCW, 0},
- {Ctrl_HAT, nv_hat, NV_NCW, 0},
- {Ctrl__, nv_error, 0, 0},
-***************
-*** 880,886 ****
- #ifdef FEAT_CMDL_INFO
- need_flushbuf |= add_to_showcmd(ca.nchar);
- #endif
-! if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`')
- {
- cp = &ca.extra_char; /* need to get a third character */
- if (ca.nchar != 'r')
---- 880,887 ----
- #ifdef FEAT_CMDL_INFO
- need_flushbuf |= add_to_showcmd(ca.nchar);
- #endif
-! if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
-! || ca.nchar == Ctrl_BSL)
- {
- cp = &ca.extra_char; /* need to get a third character */
- if (ca.nchar != 'r')
-***************
-*** 992,997 ****
---- 993,1035 ----
- #endif
- }
-
-+ /*
-+ * When the next character is CTRL-\ a following CTRL-N means the
-+ * command is aborted and we go to Normal mode.
-+ */
-+ if (cp == &ca.extra_char
-+ && ca.nchar == Ctrl_BSL
-+ && (ca.extra_char == Ctrl_N || ca.extra_char == Ctrl_G))
-+ {
-+ ca.cmdchar = Ctrl_BSL;
-+ ca.nchar = ca.extra_char;
-+ idx = find_command(ca.cmdchar);
-+ }
-+ else if (*cp == Ctrl_BSL)
-+ {
-+ long towait = (p_ttm >= 0 ? p_ttm : p_tm);
-+
-+ /* There is a busy wait here when typing "f<C-\>" and then
-+ * something different from CTRL-N. Can't be avoided. */
-+ while ((c = vpeekc()) <= 0 && towait > 0L)
-+ {
-+ do_sleep(towait > 50L ? 50L : towait);
-+ towait -= 50L;
-+ }
-+ if (c > 0)
-+ {
-+ c = safe_vgetc();
-+ if (c != Ctrl_N && c != Ctrl_G)
-+ vungetc(c);
-+ else
-+ {
-+ ca.cmdchar = Ctrl_BSL;
-+ ca.nchar = c;
-+ idx = find_command(ca.cmdchar);
-+ }
-+ }
-+ }
-+
- #ifdef FEAT_MBYTE
- /* When getting a text character and the next character is a
- * multi-byte character, it could be a composing character.
-***************
-*** 7746,7754 ****
- nv_normal(cap)
- cmdarg_T *cap;
- {
-! int c = safe_vgetc();
-!
-! if (c == Ctrl_N || c == Ctrl_G)
- {
- clearop(cap->oap);
- if (restart_edit != 0 && p_smd)
---- 7784,7790 ----
- nv_normal(cap)
- cmdarg_T *cap;
- {
-! if (cap->nchar == Ctrl_N || cap->nchar == Ctrl_G)
- {
- clearop(cap->oap);
- if (restart_edit != 0 && p_smd)
-***************
-*** 7766,7772 ****
- }
- #endif
- /* CTRL-\ CTRL-G restarts Insert mode when 'insertmode' is set. */
-! if (c == Ctrl_G && p_im)
- restart_edit = 'a';
- }
- else
---- 7802,7808 ----
- }
- #endif
- /* CTRL-\ CTRL-G restarts Insert mode when 'insertmode' is set. */
-! if (cap->nchar == Ctrl_G && p_im)
- restart_edit = 'a';
- }
- else
-*** ../vim-6.2.227/src/version.c Tue Feb 3 16:20:37 2004
---- src/version.c Tue Feb 3 16:28:19 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 228,
- /**/
-
---
-Time is an illusion. Lunchtime doubly so.
- -- Ford Prefect, in Douglas Adams'
- "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.229
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.229
-Problem: ":function" with a name that uses magic curlies does not work
- inside a function. (Servatius Brandt)
-Solution: Skip over the function name properly.
-Files: src/eval.c
-
-
-*** ../vim-6.2.228/src/eval.c Sun Jan 18 21:27:18 2004
---- src/eval.c Mon Feb 2 16:49:46 2004
-***************
-*** 8892,8899 ****
- p += eval_fname_script(p);
- if (ASCII_ISALPHA(*p))
- {
-! while (ASCII_ISALPHA(*p) || isdigit(*p) || *p == '_')
-! ++p;
- if (*skipwhite(p) == '(')
- {
- ++nesting;
---- 8905,8911 ----
- p += eval_fname_script(p);
- if (ASCII_ISALPHA(*p))
- {
-! (void)trans_function_name(&p, TRUE, FALSE);
- if (*skipwhite(p) == '(')
- {
- ++nesting;
-*** ../vim-6.2.228/src/version.c Tue Feb 3 16:29:52 2004
---- src/version.c Tue Feb 3 16:32:13 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 229,
- /**/
-
---
-Tips for aliens in New York: Land anywhere. Central Park, anywhere.
-No one will care or indeed even notice.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.230 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.230 (extra)
-Problem: Win32: a complex pattern may cause a crash.
-Solution: Use __try and __except to catch the exception and handle it
- gracefully, when possible. Add myresetstkoflw() to reset the
- stack overflow. (Benjamin Peterson)
-Files: src/Make_bc5.mak, src/os_mswin.c src/os_win32.c, src/os_win32.h,
- src/proto/os_win32.pro, src/regexp.c
-
-
-*** ../vim-6.2.229/src/Make_bc5.mak Tue Feb 3 16:20:37 2004
---- src/Make_bc5.mak Tue Feb 3 10:47:26 2004
-***************
-*** 488,494 ****
- CC = $(BOR)\BIN\Bcc32
- LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
- LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
-! CFLAGS = -w-aus -w-par -w-pch -I$(INCLUDE) -d -x- -RT- -k- -Oi $(HEADERS) -f-
- !endif
-
- CC1 = -c
---- 488,494 ----
- CC = $(BOR)\BIN\Bcc32
- LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
- LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
-! CFLAGS = -w-aus -w-par -w-pch -I$(INCLUDE) -d -RT- -k- -Oi $(HEADERS) -f-
- !endif
-
- CC1 = -c
-*** ../vim-6.2.229/src/os_mswin.c Sun Oct 12 16:42:14 2003
---- src/os_mswin.c Sun Feb 1 17:18:09 2004
-***************
-*** 738,743 ****
---- 738,747 ----
- // If the handle is valid, try to get the function address.
- if (hinstLib != NULL)
- {
-+ #ifdef HAVE_TRY_EXCEPT
-+ __try
-+ {
-+ #endif
- if (argstring != NULL)
- {
- /* Call with string argument */
-***************
-*** 782,787 ****
---- 786,801 ----
- if (*string_result != NULL)
- mch_memmove(*string_result, retval_str, len);
- }
-+
-+ #ifdef HAVE_TRY_EXCEPT
-+ }
-+ __except(EXCEPTION_EXECUTE_HANDLER)
-+ {
-+ if (GetExceptionCode() == EXCEPTION_STACK_OVERFLOW)
-+ RESETSTKOFLW();
-+ fRunTimeLinkSuccess = 0;
-+ }
-+ #endif
-
- // Free the DLL module.
- (void)FreeLibrary(hinstLib);
-*** ../vim-6.2.229/src/os_win32.c Sun Oct 26 20:15:06 2003
---- src/os_win32.c Sun Feb 1 17:37:49 2004
-***************
-*** 4202,4204 ****
---- 4203,4312 ----
- {
- return copy_infostreams(from, to);
- }
-+
-+ #if defined(MYRESETSTKOFLW) || defined(PROTO)
-+ /*
-+ * Recreate a destroyed stack guard page in win32.
-+ * Written by Benjamin Peterson.
-+ */
-+
-+ /* These magic numbers are from the MS header files */
-+ #define MIN_STACK_WIN9X 17
-+ #define MIN_STACK_WINNT 2
-+
-+ /*
-+ * This function does the same thing as _resetstkoflw(), which is only
-+ * available in DevStudio .net and later.
-+ * Returns 0 for failure, 1 for success.
-+ */
-+ int
-+ myresetstkoflw(void)
-+ {
-+ BYTE *pStackPtr;
-+ BYTE *pGuardPage;
-+ BYTE *pStackBase;
-+ BYTE *pLowestPossiblePage;
-+ MEMORY_BASIC_INFORMATION mbi;
-+ SYSTEM_INFO si;
-+ DWORD nPageSize;
-+ DWORD dummy;
-+
-+ /* This code will not work on win32s. */
-+ PlatformId();
-+ if (g_PlatformId == VER_PLATFORM_WIN32s)
-+ return 0;
-+
-+ /* We need to know the system page size. */
-+ GetSystemInfo(&si);
-+ nPageSize = si.dwPageSize;
-+
-+ /* ...and the current stack pointer */
-+ pStackPtr = (BYTE*)_alloca(1);
-+
-+ /* ...and the base of the stack. */
-+ if (VirtualQuery(pStackPtr, &mbi, sizeof mbi) == 0)
-+ return 0;
-+ pStackBase = (BYTE*)mbi.AllocationBase;
-+
-+ /* ...and the page thats min_stack_req pages away from stack base; this is
-+ * the lowest page we could use. */
-+ pLowestPossiblePage = pStackBase + ((g_PlatformId == VER_PLATFORM_WIN32_NT)
-+ ? MIN_STACK_WINNT : MIN_STACK_WIN9X) * nPageSize;
-+
-+ /* On Win95, we want the next page down from the end of the stack. */
-+ if (g_PlatformId == VER_PLATFORM_WIN32_WINDOWS)
-+ {
-+ /* Find the page that's only 1 page down from the page that the stack
-+ * ptr is in. */
-+ pGuardPage = (BYTE*)((DWORD)nPageSize * (((DWORD)pStackPtr
-+ / (DWORD)nPageSize) - 1));
-+ if (pGuardPage < pLowestPossiblePage)
-+ return 0;
-+
-+ /* Apply the noaccess attribute to the page -- there's no guard
-+ * attribute in win95-type OSes. */
-+ if (!VirtualProtect(pGuardPage, nPageSize, PAGE_NOACCESS, &dummy))
-+ return 0;
-+ }
-+ else
-+ {
-+ /* On NT, however, we want the first committed page in the stack Start
-+ * at the stack base and move forward through memory until we find a
-+ * committed block. */
-+ BYTE *pBlock = pStackBase;
-+
-+ while (1)
-+ {
-+ if (VirtualQuery(pBlock, &mbi, sizeof mbi) == 0)
-+ return 0;
-+
-+ pBlock += mbi.RegionSize;
-+
-+ if (mbi.State & MEM_COMMIT)
-+ break;
-+ }
-+
-+ /* mbi now describes the first committed block in the stack. */
-+ if (mbi.Protect & PAGE_GUARD)
-+ return 1;
-+
-+ /* decide where the guard page should start */
-+ if ((long_u)(mbi.BaseAddress) < (long_u)pLowestPossiblePage)
-+ pGuardPage = pLowestPossiblePage;
-+ else
-+ pGuardPage = (BYTE*)mbi.BaseAddress;
-+
-+ /* allocate the guard page */
-+ if (!VirtualAlloc(pGuardPage, nPageSize, MEM_COMMIT, PAGE_READWRITE))
-+ return 0;
-+
-+ /* apply the guard attribute to the page */
-+ if (!VirtualProtect(pGuardPage, nPageSize, PAGE_READWRITE | PAGE_GUARD,
-+ &dummy))
-+ return 0;
-+ }
-+
-+ return 1;
-+ }
-+
-+ #endif
-*** ../vim-6.2.229/src/os_win32.h Sun Oct 12 16:42:14 2003
---- src/os_win32.h Sun Feb 1 17:49:34 2004
-***************
-*** 117,122 ****
---- 117,135 ----
- # define DFLT_MAXMEMTOT (5*1024) /* use up to 5 Mbyte for Vim */
- #endif
-
-+ #if defined(_MSC_VER) || defined(__BORLANDC__)
-+ /* Support for __try / __except. All versions of MSVC and Borland C are
-+ * expected to have this. Any other compilers that support it? */
-+ # define HAVE_TRY_EXCEPT 1
-+ # include <malloc.h> /* for _resetstkoflw() */
-+ # if defined(_MSC_VER) && (_MSC_VER >= 1300)
-+ # define RESETSTKOFLW _resetstkoflw
-+ # else
-+ # define RESETSTKOFLW myresetstkoflw
-+ # define MYRESETSTKOFLW
-+ # endif
-+ #endif
-+
- /*
- * Some simple debugging macros that look and behave a lot like their
- * namesakes in MFC.
-*** ../vim-6.2.229/src/proto/os_win32.pro Sun Jun 1 12:26:30 2003
---- src/proto/os_win32.pro Sun Feb 1 17:32:46 2004
-***************
-*** 41,44 ****
---- 41,45 ----
- char *default_shell __ARGS((void));
- int mch_access __ARGS((char *n, int p));
- int mch_copy_file_attribute __ARGS((char_u *from, char_u *to));
-+ int myresetstkoflw __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-6.2.229/src/regexp.c Sat Sep 27 19:36:47 2003
---- src/regexp.c Sun Feb 1 17:50:16 2004
-***************
-*** 2784,2789 ****
---- 2784,2795 ----
- #endif
-
- reg_tofree = NULL;
-+
-+ #ifdef HAVE_TRY_EXCEPT
-+ __try
-+ {
-+ #endif
-+
- #ifdef HAVE_SETJMP_H
- /*
- * Matching with a regexp may cause a very deep recursive call of
-***************
-*** 2939,2944 ****
---- 2945,2965 ----
-
- if (out_of_stack)
- EMSG(_("E363: pattern caused out-of-stack error"));
-+
-+ #ifdef HAVE_TRY_EXCEPT
-+ }
-+ __except(EXCEPTION_EXECUTE_HANDLER)
-+ {
-+ if (GetExceptionCode() == EXCEPTION_STACK_OVERFLOW)
-+ {
-+ RESETSTKOFLW();
-+ EMSG(_("E363: pattern caused out-of-stack error"));
-+ }
-+ else
-+ EMSG(_("E361: Crash intercepted; regexp too complex?"));
-+ retval = 0L;
-+ }
-+ #endif
-
- theend:
- /* Didn't find a match. */
-*** ../vim-6.2.229/src/version.c Tue Feb 3 16:33:22 2004
---- src/version.c Tue Feb 3 16:52:46 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 230,
- /**/
-
---
-What a wonderfully exciting cough! Do you mind if I join you?
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.231
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.231 (after 6.2.046)
-Problem: Various problems when an error exception is raised from within a
- builtin function. When it is invoked while evaluating arguments
- to a function following arguments are still evaluated. When
- invoked with a line range it will be called for remaining lines.
-Solution: Update "force_abort" also after calling a builtin function, so
- that aborting() always returns the correct value. (Servatius
- Brandt)
-Files: src/eval.c, src/ex_eval.c, src/proto/ex_eval.pro,
- src/testdir/test49.ok, src/testdir/test49.vim
-
-
-*** ../vim-6.2.230/src/eval.c Tue Feb 3 16:33:22 2004
---- src/eval.c Mon Feb 2 16:49:46 2004
-***************
-*** 1334,1340 ****
- if (doesrange || eap->skip)
- break;
- /* Stop when immediately aborting on error, or when an interrupt
-! * occurred or an exception was thrown but not caught. */
- if (aborting())
- break;
- }
---- 1334,1342 ----
- if (doesrange || eap->skip)
- break;
- /* Stop when immediately aborting on error, or when an interrupt
-! * occurred or an exception was thrown but not caught. get_func_var()
-! * returned OK, so that the check for trailing characters below is
-! * executed. */
- if (aborting())
- break;
- }
-***************
-*** 1345,1351 ****
---- 1347,1356 ----
- {
- /* Check for trailing illegal characters and a following command. */
- if (!ends_excmd(*arg))
-+ {
-+ emsg_severe = TRUE;
- EMSG(_(e_trailing));
-+ }
- else
- eap->nextcmd = check_nextcmd(arg);
- }
-***************
-*** 3009,3022 ****
- else
- ret = FAIL;
-
-! if (!aborting())
-! {
-! if (ret == OK)
-! ret = call_func(name, len, retvar, argcount, argvars,
- firstline, lastline, doesrange, evaluate);
-! else
-! EMSG2(_("E116: Invalid arguments for function %s"), name);
-! }
-
- while (--argcount >= 0)
- clear_var(&argvars[argcount]);
---- 3014,3024 ----
- else
- ret = FAIL;
-
-! if (ret == OK)
-! ret = call_func(name, len, retvar, argcount, argvars,
- firstline, lastline, doesrange, evaluate);
-! else if (!aborting())
-! EMSG2(_("E116: Invalid arguments for function %s"), name);
-
- while (--argcount >= 0)
- clear_var(&argvars[argcount]);
-***************
-*** 3183,3188 ****
---- 3185,3201 ----
- }
- }
- }
-+ /*
-+ * The function call (or "FuncUndefined" autocommand sequence) might
-+ * have been aborted by an error, an interrupt, or an explicitly thrown
-+ * exception that has not been caught so far. This situation can be
-+ * tested for by calling aborting(). For an error in an internal
-+ * function or for the "E132" error in call_user_func(), however, the
-+ * throw point at which the "force_abort" flag (temporarily reset by
-+ * emsg()) is normally updated has not been reached yet. We need to
-+ * update that flag first to make aborting() reliable.
-+ */
-+ update_force_abort();
- }
- if (error == ERROR_NONE)
- ret = OK;
-*** ../vim-6.2.230/src/ex_eval.c Fri May 30 21:45:31 2003
---- src/ex_eval.c Mon Feb 2 22:04:59 2004
-***************
-*** 72,81 ****
- /*
- * When several errors appear in a row, setting "force_abort" is delayed until
- * the failing command returned. "cause_abort" is set to TRUE meanwhile, in
-! * order to indicate that situation. This is useful for aborting expression
-! * evaluation when a function call set "force_abort" without producing any
-! * error messages, but giving all error messages on a parsing error during the
-! * expression evaluation (even if a try conditional is active).
- */
- static int cause_abort = FALSE;
-
---- 72,82 ----
- /*
- * When several errors appear in a row, setting "force_abort" is delayed until
- * the failing command returned. "cause_abort" is set to TRUE meanwhile, in
-! * order to indicate that situation. This is useful when "force_abort" was set
-! * during execution of a function call from an expression: the aborting of the
-! * expression evaluation is done without producing any error messages, but all
-! * error messages on parsing errors during the expression evaluation are given
-! * (even if a try conditional is active).
- */
- static int cause_abort = FALSE;
-
-***************
-*** 85,92 ****
- * to check whether an aborted function that does not handle a range itself
- * should be called again for the next line in the range. Also used for
- * cancelling expression evaluation after a function call caused an immediate
-! * abort. Note that the first emsg() call temporarily resets force_abort until
-! * the throw point for error messages has been reached. That is, during
- * cancellation of an expression evaluation after an aborting function call or
- * due to a parsing error, aborting() always returns the same value.
- */
---- 86,93 ----
- * to check whether an aborted function that does not handle a range itself
- * should be called again for the next line in the range. Also used for
- * cancelling expression evaluation after a function call caused an immediate
-! * abort. Note that the first emsg() call temporarily resets "force_abort"
-! * until the throw point for error messages has been reached. That is, during
- * cancellation of an expression evaluation after an aborting function call or
- * due to a parsing error, aborting() always returns the same value.
- */
-***************
-*** 97,102 ****
---- 98,116 ----
- }
-
- /*
-+ * The value of "force_abort" is temporarily reset by the first emsg() call
-+ * during an expression evaluation, and "cause_abort" is used instead. It might
-+ * be necessary to restore "force_abort" even before the throw point for the
-+ * error message has been reached. update_force_abort() should be called then.
-+ */
-+ void
-+ update_force_abort()
-+ {
-+ if (cause_abort)
-+ force_abort = TRUE;
-+ }
-+
-+ /*
- * Return TRUE if a command with a subcommand resulting in "retcode" should
- * abort the script processing. Can be used to suppress an autocommand after
- * execution of a failing subcommand as long as the error message has not been
-*** ../vim-6.2.230/src/proto/ex_eval.pro Sun Jun 1 12:26:09 2003
---- src/proto/ex_eval.pro Mon Feb 2 16:05:23 2004
-***************
-*** 1,5 ****
---- 1,6 ----
- /* ex_eval.c */
- int aborting __ARGS((void));
-+ void update_force_abort __ARGS((void));
- int should_abort __ARGS((int retcode));
- int aborted_in_try __ARGS((void));
- int cause_errthrow __ARGS((char_u *msg, int severe, int *ignore));
-*** ../vim-6.2.230/src/testdir/test49.ok Fri May 30 21:45:31 2003
---- src/testdir/test49.ok Mon Feb 2 16:05:23 2004
-***************
-*** 73,90 ****
- *** Test 71: OK (1789569365)
- *** Test 72: OK (9032615)
- *** Test 73: OK (224907669)
-! *** Test 74: OK (1610087935)
-! *** Test 75: OK (1388671)
-! *** Test 76: OK (134217728)
-! *** Test 77: OK (70288929)
-! *** Test 78: OK (17895765)
-! *** Test 79: OK (387)
-! *** Test 80: OK (8454401)
-! *** Test 81: OK (2835)
-! *** Test 82: OK (934782101)
-! *** Test 83: OK (198689)
-! --- Test 84: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 84: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 84: OK (50443995)
---- 73,91 ----
- *** Test 71: OK (1789569365)
- *** Test 72: OK (9032615)
- *** Test 73: OK (224907669)
-! *** Test 74: OK (2000403408)
-! *** Test 75: OK (1610087935)
-! *** Test 76: OK (1388671)
-! *** Test 77: OK (134217728)
-! *** Test 78: OK (70288929)
-! *** Test 79: OK (17895765)
-! *** Test 80: OK (387)
-! *** Test 81: OK (8454401)
-! *** Test 82: OK (2835)
-! *** Test 83: OK (934782101)
-! *** Test 84: OK (198689)
-! --- Test 85: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 85: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 85: OK (50443995)
-*** ../vim-6.2.230/src/testdir/test49.vim Sun Aug 10 22:31:29 2003
---- src/testdir/test49.vim Mon Feb 2 16:05:23 2004
-***************
-*** 7567,7573 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 74: Errors, interupts, :throw during expression evaluation {{{1
- "
- " When a function call made during expression evaluation is aborted
- " due to an error inside a :try/:endtry region or due to an interrupt
---- 7567,7754 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 74: Errors in builtin functions. {{{1
-! "
-! " On an error in a builtin function called inside a :try/:endtry
-! " region, the evaluation of the expression calling that function and
-! " the command containing that expression are abandoned. The error can
-! " be caught as an exception.
-! "
-! " A simple :call of the builtin function is a trivial case. If the
-! " builtin function is called in the argument list of another function,
-! " no further arguments are evaluated, and the other function is not
-! " executed. If the builtin function is called from the argument of
-! " a :return command, the :return command is not executed. If the
-! " builtin function is called from the argument of a :throw command,
-! " the :throw command is not executed. The evaluation of the
-! " expression calling the builtin function is abandoned.
-! "-------------------------------------------------------------------------------
-!
-! XpathINIT
-!
-! function! F1(arg1)
-! Xpath 1 " X: 0
-! endfunction
-!
-! function! F2(arg1, arg2)
-! Xpath 2 " X: 0
-! endfunction
-!
-! function! G()
-! Xpath 4 " X: 0
-! endfunction
-!
-! function! H()
-! Xpath 8 " X: 0
-! endfunction
-!
-! function! R()
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 16 " X: 16
-! return append(1, "s")
-! catch /E21/
-! let caught = 1
-! catch /.*/
-! Xpath 32 " X: 0
-! finally
-! Xpath 64 " X: 64
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 128 " X: 128
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-! Xpath 256 " X: 256
-! endfunction
-!
-! try
-! set noma " let append() fail with "E21"
-!
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 512 " X: 512
-! call append(1, "s")
-! catch /E21/
-! let caught = 1
-! catch /.*/
-! Xpath 1024 " X: 0
-! finally
-! Xpath 2048 " X: 2048
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 4096 " X: 4096
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-!
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 8192 " X: 8192
-! call F1('x' . append(1, "s"))
-! catch /E21/
-! let caught = 1
-! catch /.*/
-! Xpath 16384 " X: 0
-! finally
-! Xpath 32768 " X: 32768
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 65536 " X: 65536
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-!
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 131072 " X: 131072
-! call F2('x' . append(1, "s"), G())
-! catch /E21/
-! let caught = 1
-! catch /.*/
-! Xpath 262144 " X: 0
-! finally
-! Xpath 524288 " X: 524288
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 1048576 " X: 1048576
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-!
-! call R()
-!
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 2097152 " X: 2097152
-! throw "T" . append(1, "s")
-! catch /E21/
-! let caught = 1
-! catch /^T.*/
-! Xpath 4194304 " X: 0
-! catch /.*/
-! Xpath 8388608 " X: 0
-! finally
-! Xpath 16777216 " X: 16777216
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 33554432 " X: 33554432
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-!
-! while 1
-! try
-! let caught = 0
-! let v:errmsg = ""
-! Xpath 67108864 " X: 67108864
-! let x = "a"
-! let x = x . "b" . append(1, "s") . H()
-! catch /E21/
-! let caught = 1
-! catch /.*/
-! Xpath 134217728 " X: 0
-! finally
-! Xpath 268435456 " X: 268435456
-! if caught || $VIMNOERRTHROW && v:errmsg =~ 'E21'
-! Xpath 536870912 " X: 536870912
-! endif
-! if x == "a"
-! Xpath 1073741824 " X: 1073741824
-! endif
-! break " discard error for $VIMNOERRTHROW
-! endtry
-! endwhile
-! catch /.*/
-! " The Xpath command does not accept 2^31 (negative); add explicitly:
-! let Xpath = Xpath + 2147483648 " X: 0
-! Xout v:exception "in" v:throwpoint
-! finally
-! set ma&
-! endtry
-!
-! unlet! caught x
-! delfunction F1
-! delfunction F2
-! delfunction G
-! delfunction H
-! delfunction R
-!
-! Xcheck 2000403408
-!
-!
-! "-------------------------------------------------------------------------------
-! " Test 75: Errors, interupts, :throw during expression evaluation {{{1
- "
- " When a function call made during expression evaluation is aborted
- " due to an error inside a :try/:endtry region or due to an interrupt
-***************
-*** 7853,7859 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 75: Errors, interupts, :throw in name{brace-expression} {{{1
- "
- " When a function call made during evaluation of an expression in
- " braces as part of a function name after ":function" is aborted due
---- 8034,8040 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 76: Errors, interupts, :throw in name{brace-expression} {{{1
- "
- " When a function call made during evaluation of an expression in
- " braces as part of a function name after ":function" is aborted due
-***************
-*** 7983,7989 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 76: Messages on parsing errors in expression evaluation {{{1
- "
- " When an expression evaluation detects a parsing error, an error
- " message is given and converted to an exception, and the expression
---- 8164,8170 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 77: Messages on parsing errors in expression evaluation {{{1
- "
- " When an expression evaluation detects a parsing error, an error
- " message is given and converted to an exception, and the expression
-***************
-*** 8172,8178 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 77: Throwing one of several errors for the same command {{{1
- "
- " When several errors appear in a row (for instance during expression
- " evaluation), the first as the most specific one is used when
---- 8353,8359 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 78: Throwing one of several errors for the same command {{{1
- "
- " When several errors appear in a row (for instance during expression
- " evaluation), the first as the most specific one is used when
-***************
-*** 8367,8373 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 78: Syntax error in expression for illegal :elseif {{{1
- "
- " If there is a syntax error in the expression after an illegal
- " :elseif, an error message is given (or an error exception thrown)
---- 8548,8554 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 79: Syntax error in expression for illegal :elseif {{{1
- "
- " If there is a syntax error in the expression after an illegal
- " :elseif, an error message is given (or an error exception thrown)
-***************
-*** 8552,8558 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 79: Discarding exceptions after an error or interrupt {{{1
- "
- " When an exception is thrown from inside a :try conditional without
- " :catch and :finally clauses and an error or interrupt occurs before
---- 8733,8739 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 80: Discarding exceptions after an error or interrupt {{{1
- "
- " When an exception is thrown from inside a :try conditional without
- " :catch and :finally clauses and an error or interrupt occurs before
-***************
-*** 8598,8604 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 80: Ignoring :catch clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the matching :catch clause is reached, the exception is discarded
---- 8779,8785 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 81: Ignoring :catch clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the matching :catch clause is reached, the exception is discarded
-***************
-*** 8706,8712 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 81: Executing :finally clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the :finally of the innermost :try is reached, the exception is
---- 8887,8893 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 82: Executing :finally clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the :finally of the innermost :try is reached, the exception is
-***************
-*** 8756,8762 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 82: Exceptions in autocommand sequences. {{{1
- "
- " When an exception occurs in a sequence of autocommands for
- " a specific event, the rest of the sequence is not executed. The
---- 8937,8943 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 83: Exceptions in autocommand sequences. {{{1
- "
- " When an exception occurs in a sequence of autocommands for
- " a specific event, the rest of the sequence is not executed. The
-***************
-*** 8931,8937 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 83: Error exceptions in autocommands for I/O command events {{{1
- "
- " When an I/O command is inside :try/:endtry, autocommands to be
- " executed after it should be skipped on an error (exception) in the
---- 9112,9118 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 84: Error exceptions in autocommands for I/O command events {{{1
- "
- " When an I/O command is inside :try/:endtry, autocommands to be
- " executed after it should be skipped on an error (exception) in the
-***************
-*** 9178,9184 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 84: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
---- 9359,9365 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 85: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
-*** ../vim-6.2.230/src/version.c Tue Feb 3 16:55:34 2004
---- src/version.c Tue Feb 3 17:23:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 231,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-29. Your phone bill comes to your doorstep in a box.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.232
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.232
-Problem: ":python vim.command('python print 2*2')" crashes Vim. (Eugene
- Minkovskii)
-Solution: Disallow executing a Python command recursively and give an error
- message.
-Files: src/if_python.c
-
-
-*** ../vim-6.2.231/src/if_python.c Mon Dec 29 21:14:00 2003
---- src/if_python.c Tue Feb 3 19:41:48 2004
-***************
-*** 451,470 ****
- return -1;
- }
-
-! /* External interface
- */
- static void
- DoPythonCommand(exarg_T *eap, const char *cmd)
- {
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
- GetPort (&oldPort);
- /* Check if the Python library is available */
- if ( (Ptr) PyMac_Initialize == (Ptr) kUnresolvedCFragSymbolAddress)
-! return;
- #endif
- if (Python_Init())
-! return;
-
- RangeStart = eap->line1;
- RangeEnd = eap->line2;
---- 451,480 ----
- return -1;
- }
-
-! /*
-! * External interface
- */
- static void
- DoPythonCommand(exarg_T *eap, const char *cmd)
- {
-+ static int recursive = 0;
-+
-+ if (recursive)
-+ {
-+ EMSG(_("E659: Cannot invoke Python recursively"));
-+ return;
-+ }
-+ ++recursive;
-+
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
- GetPort (&oldPort);
- /* Check if the Python library is available */
- if ( (Ptr) PyMac_Initialize == (Ptr) kUnresolvedCFragSymbolAddress)
-! goto theend;
- #endif
- if (Python_Init())
-! goto theend;
-
- RangeStart = eap->line1;
- RangeEnd = eap->line2;
-***************
-*** 477,482 ****
---- 487,495 ----
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- SetPort (oldPort);
- #endif
-+
-+ theend:
-+ --recursive;
- }
-
- /*
-*** ../vim-6.2.231/src/version.c Tue Feb 3 17:25:35 2004
---- src/version.c Tue Feb 3 19:58:11 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 232,
- /**/
-
---
-To define recursion, we must first define recursion.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.233
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.233
-Problem: On Mac OSX adding -pthread for Python only generates a warning.
- The test for Perl threads rejects Perl while it's OK.
- Tcl doesn't work at all.
- The test for Ruby fails if ruby exists but there are no header
- files. The Ruby library isn't detected properly
-Solution: Avoid adding -pthread on Mac OSX. Accept Perl threads when it's
- not the 5.5 threads.
- Use the Tcl framework for header files. For Ruby rename cWindow
- to cVimWindow to avoid a name clash. (Ken Scott)
- Only enable Ruby when the header files can be found. Use "-lruby"
- instead of "libruby.a" when it can't be found.
-Files: src/auto/configure, src/configure.in, src/if_ruby.c
-
-
-*** ../vim-6.2.232/src/auto/configure Mon Dec 29 21:00:25 2003
---- src/auto/configure Tue Feb 3 22:38:27 2004
-***************
-*** 1570,1579 ****
-
- if test "X$vi_cv_path_perl" != "X"; then
- echo $ac_n "checking Perl version""... $ac_c" 1>&6
-! echo "configure:1480: checking Perl version" >&5
- if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
- eval `$vi_cv_path_perl -V:usethreads`
- if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
- echo "$ac_t""OK" 1>&6
- eval `$vi_cv_path_perl -V:shrpenv`
- if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
---- 1570,1595 ----
-
- if test "X$vi_cv_path_perl" != "X"; then
- echo $ac_n "checking Perl version""... $ac_c" 1>&6
-! echo "configure:1574: checking Perl version" >&5
- if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
- eval `$vi_cv_path_perl -V:usethreads`
- if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
-+ badthreads=no
-+ else
-+ if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
-+ eval `$vi_cv_path_perl -V:use5005threads`
-+ if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
-+ badthreads=no
-+ else
-+ badthreads=yes
-+ echo "$ac_t"">>> Perl > 5.6 with 5.5 threads cannot be used <<<" 1>&6
-+ fi
-+ else
-+ badthreads=yes
-+ echo "$ac_t"">>> Perl 5.5 with threads cannot be used <<<" 1>&6
-+ fi
-+ fi
-+ if test $badthreads = no; then
- echo "$ac_t""OK" 1>&6
- eval `$vi_cv_path_perl -V:shrpenv`
- if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
-***************
-*** 1602,1609 ****
- #define FEAT_PERL 1
- EOF
-
-- else
-- echo "$ac_t"">>> Perl with threads cannot be used <<<" 1>&6
- fi
- else
- echo "$ac_t"">>> too old; need Perl version 5.003_01 or later <<<" 1>&6
---- 1618,1623 ----
-***************
-*** 1623,1632 ****
- fi
- fi
- if test -n "$PERL"; then
-! PERL_DIR=$dir
-! PERL_CFLAGS=-DFEAT_PERL -I$darwindir/CORE
-! PERL_OBJ=if_perl.o if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a
-! PERL_LIBS=-L$darwindir/CORE -lperl
- fi
- fi
- fi
---- 1637,1646 ----
- fi
- fi
- if test -n "$PERL"; then
-! PERL_DIR="$dir"
-! PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
-! PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
-! PERL_LIBS="-L$darwindir/CORE -lperl"
- fi
- fi
- fi
-***************
-*** 1810,1829 ****
- PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
- fi
- PYTHON_SRC="if_python.c"
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
- PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
-! echo $ac_n "checking if -pthread should be used""... $ac_c" 1>&6
-! echo "configure:1702: checking if -pthread should be used" >&5
- threadsafe_flag=
- thread_lib=
-! test "$GCC" = yes && threadsafe_flag="-pthread"
-! if test "`(uname) 2>/dev/null`" = FreeBSD; then
-! threadsafe_flag="-D_THREAD_SAFE"
-! thread_lib="-pthread"
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
---- 1824,1849 ----
- PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
- fi
- PYTHON_SRC="if_python.c"
-! if test "x$MACOSX" = "xyes"; then
-! PYTHON_OBJ="objects/if_python.o"
-! else
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
-! fi
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
- PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
-! echo $ac_n "checking if -pthread should be used""... $ac_c" 1>&6
-! echo "configure:1839: checking if -pthread should be used" >&5
- threadsafe_flag=
- thread_lib=
-! if test "x$MACOSX" != "xyes"; then
-! test "$GCC" = yes && threadsafe_flag="-pthread"
-! if test "`(uname) 2>/dev/null`" = FreeBSD; then
-! threadsafe_flag="-D_THREAD_SAFE"
-! thread_lib="-pthread"
-! fi
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
-***************
-*** 2011,2025 ****
- fi
- if test "X$vi_cv_path_tcl" != "X"; then
- echo $ac_n "checking Tcl version""... $ac_c" 1>&6
-! echo "configure:1896: checking Tcl version" >&5
- if echo 'exit [expr [info tclversion] < 8.0]' | $vi_cv_path_tcl - ; then
- tclver=`echo 'puts [info tclversion]' | $vi_cv_path_tcl -`
- echo "$ac_t""$tclver - OK" 1>&6;
- tclloc=`echo 'set l [info library];set i [string last lib $l];incr i -2;puts [string range $l 0 $i]' | $vi_cv_path_tcl -`
-
- echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6
-! echo "configure:1903: checking for location of Tcl include" >&5
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- echo "$ac_t""$try/tcl.h" 1>&6
---- 2031,2049 ----
- fi
- if test "X$vi_cv_path_tcl" != "X"; then
- echo $ac_n "checking Tcl version""... $ac_c" 1>&6
-! echo "configure:2035: checking Tcl version" >&5
- if echo 'exit [expr [info tclversion] < 8.0]' | $vi_cv_path_tcl - ; then
- tclver=`echo 'puts [info tclversion]' | $vi_cv_path_tcl -`
- echo "$ac_t""$tclver - OK" 1>&6;
- tclloc=`echo 'set l [info library];set i [string last lib $l];incr i -2;puts [string range $l 0 $i]' | $vi_cv_path_tcl -`
-
- echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6
-! echo "configure:2042: checking for location of Tcl include" >&5
-! if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
-! else
-! tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
-! fi
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- echo "$ac_t""$try/tcl.h" 1>&6
-***************
-*** 2033,2040 ****
- fi
- if test -z "$SKIP_TCL"; then
- echo $ac_n "checking for location of tclConfig.sh script""... $ac_c" 1>&6
-! echo "configure:1918: checking for location of tclConfig.sh script" >&5
-! tclcnf=`echo $tclinc | sed s/include/lib/g`
- for try in $tclcnf; do
- if test -f $try/tclConfig.sh; then
- echo "$ac_t""$try/tclConfig.sh" 1>&6
---- 2057,2068 ----
- fi
- if test -z "$SKIP_TCL"; then
- echo $ac_n "checking for location of tclConfig.sh script""... $ac_c" 1>&6
-! echo "configure:2061: checking for location of tclConfig.sh script" >&5
-! if test "x$MACOSX" != "xyes"; then
-! tclcnf=`echo $tclinc | sed s/include/lib/g`
-! else
-! tclcnf="/System/Library/Frameworks/Tcl.framework"
-! fi
- for try in $tclcnf; do
- if test -f $try/tclConfig.sh; then
- echo "$ac_t""$try/tclConfig.sh" 1>&6
-***************
-*** 2141,2176 ****
-
- if test "X$vi_cv_path_ruby" != "X"; then
- echo $ac_n "checking Ruby version""... $ac_c" 1>&6
-! echo "configure:2026: checking Ruby version" >&5
- if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- echo "$ac_t""OK" 1>&6
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir'`
-! RUBY_CFLAGS="-I$rubyhdrdir"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
-! if test "X$rubylibs" != "X"; then
-! RUBY_LIBS="$rubylibs"
-! fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
-
-! if test "X$librubyarg" != "X"; then
-! RUBY_LIBS="$librubyarg $RUBY_LIBS"
-! fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LDFLAGS"]'`
-! if test "X$rubyldflags" != "X"; then
-! LDFLAGS="$rubyldflags $LDFLAGS"
-! fi
-! RUBY_SRC="if_ruby.c"
-! RUBY_OBJ="objects/if_ruby.o"
-! RUBY_PRO="if_ruby.pro"
-! cat >> confdefs.h <<\EOF
- #define FEAT_RUBY 1
- EOF
-
- else
- echo "$ac_t""too old; need Ruby version 1.6.0 or later" 1>&6
- fi
---- 2169,2218 ----
-
- if test "X$vi_cv_path_ruby" != "X"; then
- echo $ac_n "checking Ruby version""... $ac_c" 1>&6
-! echo "configure:2173: checking Ruby version" >&5
- if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- echo "$ac_t""OK" 1>&6
-! echo $ac_n "checking Ruby header files""... $ac_c" 1>&6
-! echo "configure:2177: checking Ruby header files" >&5
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
-! if test "X$rubyhdrdir" != "X"; then
-! echo "$ac_t""$rubyhdrdir" 1>&6
-! RUBY_CFLAGS="-I$rubyhdrdir"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
-! if test "X$rubylibs" != "X"; then
-! RUBY_LIBS="$rubylibs"
-! fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
-! if test -f "$rubylibdir/$librubyarg"; then
-! librubyarg="$rubylibdir/$librubyarg"
-! elif test "$librubyarg" = "libruby.a"; then
-! librubyarg="-lruby"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
-! fi
-
-! if test "X$librubyarg" != "X"; then
-! RUBY_LIBS="$librubyarg $RUBY_LIBS"
-! fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LDFLAGS"]'`
-! if test "X$rubyldflags" != "X"; then
-! LDFLAGS="$rubyldflags $LDFLAGS"
-! fi
-! RUBY_SRC="if_ruby.c"
-! RUBY_OBJ="objects/if_ruby.o"
-! RUBY_PRO="if_ruby.pro"
-! cat >> confdefs.h <<\EOF
- #define FEAT_RUBY 1
- EOF
-
-+ else
-+ echo "$ac_t""not found" 1>&6
-+ fi
- else
- echo "$ac_t""too old; need Ruby version 1.6.0 or later" 1>&6
- fi
-*** ../vim-6.2.232/src/configure.in Mon Dec 29 21:00:25 2003
---- src/configure.in Tue Feb 3 22:38:25 2004
-***************
-*** 305,310 ****
---- 305,326 ----
- if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
- eval `$vi_cv_path_perl -V:usethreads`
- if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
-+ badthreads=no
-+ else
-+ if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
-+ eval `$vi_cv_path_perl -V:use5005threads`
-+ if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
-+ badthreads=no
-+ else
-+ badthreads=yes
-+ AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
-+ fi
-+ else
-+ badthreads=yes
-+ AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
-+ fi
-+ fi
-+ if test $badthreads = no; then
- AC_MSG_RESULT(OK)
- eval `$vi_cv_path_perl -V:shrpenv`
- if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
-***************
-*** 334,341 ****
- PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
- PERL_PRO="if_perl.pro if_perlsfio.pro"
- AC_DEFINE(FEAT_PERL)
-- else
-- AC_MSG_RESULT(>>> Perl with threads cannot be used <<<)
- fi
- else
- AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
---- 350,355 ----
-***************
-*** 357,366 ****
- fi
- fi
- if test -n "$PERL"; then
-! PERL_DIR=$dir
-! PERL_CFLAGS=-DFEAT_PERL -I$darwindir/CORE
-! PERL_OBJ=if_perl.o if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a
-! PERL_LIBS=-L$darwindir/CORE -lperl
- fi
- fi
- fi
---- 371,380 ----
- fi
- fi
- if test -n "$PERL"; then
-! PERL_DIR="$dir"
-! PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
-! PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
-! PERL_LIBS="-L$darwindir/CORE -lperl"
- fi
- fi
- fi
-***************
-*** 475,481 ****
- PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
- fi
- PYTHON_SRC="if_python.c"
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
---- 489,500 ----
- PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
- fi
- PYTHON_SRC="if_python.c"
-! dnl For Mac OSX 10.2 config.o is included in the Python library.
-! if test "x$MACOSX" = "xyes"; then
-! PYTHON_OBJ="objects/if_python.o"
-! else
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
-! fi
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-***************
-*** 487,499 ****
- dnl sigaltstack() will look in libc_r (it's there in libc!).
- dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
- dnl will then define target-specific defines, e.g., -D_REENTRANT.
- AC_MSG_CHECKING([if -pthread should be used])
- threadsafe_flag=
- thread_lib=
-! test "$GCC" = yes && threadsafe_flag="-pthread"
-! if test "`(uname) 2>/dev/null`" = FreeBSD; then
-! threadsafe_flag="-D_THREAD_SAFE"
-! thread_lib="-pthread"
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
---- 506,521 ----
- dnl sigaltstack() will look in libc_r (it's there in libc!).
- dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
- dnl will then define target-specific defines, e.g., -D_REENTRANT.
-+ dnl Don't do this for Mac OSX, -pthread will generate a warning.
- AC_MSG_CHECKING([if -pthread should be used])
- threadsafe_flag=
- thread_lib=
-! if test "x$MACOSX" != "xyes"; then
-! test "$GCC" = yes && threadsafe_flag="-pthread"
-! if test "`(uname) 2>/dev/null`" = FreeBSD; then
-! threadsafe_flag="-D_THREAD_SAFE"
-! thread_lib="-pthread"
-! fi
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
-***************
-*** 558,564 ****
- tclloc=`echo 'set l [[info library]];set i [[string last lib $l]];incr i -2;puts [[string range $l 0 $i]]' | $vi_cv_path_tcl -`
-
- AC_MSG_CHECKING(for location of Tcl include)
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- AC_MSG_RESULT($try/tcl.h)
---- 580,591 ----
- tclloc=`echo 'set l [[info library]];set i [[string last lib $l]];incr i -2;puts [[string range $l 0 $i]]' | $vi_cv_path_tcl -`
-
- AC_MSG_CHECKING(for location of Tcl include)
-! if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
-! else
-! dnl For Mac OS X 10.3, use the OS-provided framework location
-! tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
-! fi
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- AC_MSG_RESULT($try/tcl.h)
-***************
-*** 572,578 ****
- fi
- if test -z "$SKIP_TCL"; then
- AC_MSG_CHECKING(for location of tclConfig.sh script)
-! tclcnf=`echo $tclinc | sed s/include/lib/g`
- for try in $tclcnf; do
- if test -f $try/tclConfig.sh; then
- AC_MSG_RESULT($try/tclConfig.sh)
---- 599,610 ----
- fi
- if test -z "$SKIP_TCL"; then
- AC_MSG_CHECKING(for location of tclConfig.sh script)
-! if test "x$MACOSX" != "xyes"; then
-! tclcnf=`echo $tclinc | sed s/include/lib/g`
-! else
-! dnl For Mac OS X 10.3, use the OS-provided framework location
-! tclcnf="/System/Library/Frameworks/Tcl.framework"
-! fi
- for try in $tclcnf; do
- if test -f $try/tclConfig.sh; then
- AC_MSG_RESULT($try/tclConfig.sh)
-***************
-*** 638,667 ****
- AC_MSG_CHECKING(Ruby version)
- if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- AC_MSG_RESULT(OK)
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir'`
-! RUBY_CFLAGS="-I$rubyhdrdir"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
-! if test "X$rubylibs" != "X"; then
-! RUBY_LIBS="$rubylibs"
-! fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
-
-! if test "X$librubyarg" != "X"; then
-! RUBY_LIBS="$librubyarg $RUBY_LIBS"
-! fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
-! if test "X$rubyldflags" != "X"; then
-! LDFLAGS="$rubyldflags $LDFLAGS"
- fi
-- RUBY_SRC="if_ruby.c"
-- RUBY_OBJ="objects/if_ruby.o"
-- RUBY_PRO="if_ruby.pro"
-- AC_DEFINE(FEAT_RUBY)
- else
- AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
- fi
---- 670,713 ----
- AC_MSG_CHECKING(Ruby version)
- if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- AC_MSG_RESULT(OK)
-! AC_MSG_CHECKING(Ruby header files)
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-! if test "X$rubyhdrdir" != "X"; then
-! AC_MSG_RESULT($rubyhdrdir)
-! RUBY_CFLAGS="-I$rubyhdrdir"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
-! if test "X$rubylibs" != "X"; then
-! RUBY_LIBS="$rubylibs"
-! fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
-! if test -f "$rubylibdir/$librubyarg"; then
-! librubyarg="$rubylibdir/$librubyarg"
-! elif test "$librubyarg" = "libruby.a"; then
-! dnl required on Mac OS 10.3 where libruby.a doesn't exist
-! librubyarg="-lruby"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
-! fi
-
-! if test "X$librubyarg" != "X"; then
-! RUBY_LIBS="$librubyarg $RUBY_LIBS"
-! fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
-! if test "X$rubyldflags" != "X"; then
-! LDFLAGS="$rubyldflags $LDFLAGS"
-! fi
-! RUBY_SRC="if_ruby.c"
-! RUBY_OBJ="objects/if_ruby.o"
-! RUBY_PRO="if_ruby.pro"
-! AC_DEFINE(FEAT_RUBY)
-! else
-! AC_MSG_RESULT(not found, disabling Ruby)
- fi
- else
- AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
- fi
-*** ../vim-6.2.232/src/if_ruby.c Sun Aug 10 22:37:55 2003
---- src/if_ruby.c Wed Feb 4 10:19:53 2004
-***************
-*** 50,55 ****
---- 50,63 ----
-
- #undef EXTERN
- #undef _
-+
-+ /* T_DATA defined both by Ruby and Mac header files, hack around it... */
-+ #ifdef FEAT_GUI_MAC
-+ # define __OPENTRANSPORT__
-+ # define __OPENTRANSPORTPROTOCOL__
-+ # define __OPENTRANSPORTPROVIDERS__
-+ #endif
-+
- #include "vim.h"
- #include "version.h"
-
-***************
-*** 64,70 ****
-
- static VALUE mVIM;
- static VALUE cBuffer;
-! static VALUE cWindow;
- static VALUE eDeletedBufferError;
- static VALUE eDeletedWindowError;
-
---- 72,78 ----
-
- static VALUE mVIM;
- static VALUE cBuffer;
-! static VALUE cVimWindow;
- static VALUE eDeletedBufferError;
- static VALUE eDeletedWindowError;
-
-***************
-*** 682,688 ****
- return (VALUE) win->ruby_ref;
- }
- else {
-! VALUE obj = Data_Wrap_Struct(cWindow, 0, 0, win);
- win->ruby_ref = (void *) obj;
- rb_hash_aset(objtbl, rb_obj_id(obj), obj);
- return obj;
---- 690,696 ----
- return (VALUE) win->ruby_ref;
- }
- else {
-! VALUE obj = Data_Wrap_Struct(cVimWindow, 0, 0, win);
- win->ruby_ref = (void *) obj;
- rb_hash_aset(objtbl, rb_obj_id(obj), obj);
- return obj;
-***************
-*** 843,857 ****
- rb_define_method(cBuffer, "delete", buffer_delete, 1);
- rb_define_method(cBuffer, "append", buffer_append, 2);
-
-! cWindow = rb_define_class_under(mVIM, "Window", rb_cObject);
-! rb_define_singleton_method(cWindow, "current", window_s_current, 0);
-! rb_define_singleton_method(cWindow, "count", window_s_count, 0);
-! rb_define_singleton_method(cWindow, "[]", window_s_aref, 1);
-! rb_define_method(cWindow, "buffer", window_buffer, 0);
-! rb_define_method(cWindow, "height", window_height, 0);
-! rb_define_method(cWindow, "height=", window_set_height, 1);
-! rb_define_method(cWindow, "cursor", window_cursor, 0);
-! rb_define_method(cWindow, "cursor=", window_set_cursor, 1);
-
- rb_define_virtual_variable("$curbuf", buffer_s_current, 0);
- rb_define_virtual_variable("$curwin", window_s_current, 0);
---- 851,865 ----
- rb_define_method(cBuffer, "delete", buffer_delete, 1);
- rb_define_method(cBuffer, "append", buffer_append, 2);
-
-! cVimWindow = rb_define_class_under(mVIM, "Window", rb_cObject);
-! rb_define_singleton_method(cVimWindow, "current", window_s_current, 0);
-! rb_define_singleton_method(cVimWindow, "count", window_s_count, 0);
-! rb_define_singleton_method(cVimWindow, "[]", window_s_aref, 1);
-! rb_define_method(cVimWindow, "buffer", window_buffer, 0);
-! rb_define_method(cVimWindow, "height", window_height, 0);
-! rb_define_method(cVimWindow, "height=", window_set_height, 1);
-! rb_define_method(cVimWindow, "cursor", window_cursor, 0);
-! rb_define_method(cVimWindow, "cursor=", window_set_cursor, 1);
-
- rb_define_virtual_variable("$curbuf", buffer_s_current, 0);
- rb_define_virtual_variable("$curwin", window_s_current, 0);
-*** ../vim-6.2.232/src/version.c Tue Feb 3 19:59:05 2004
---- src/version.c Wed Feb 4 12:04:53 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 233,
- /**/
-
---
-Everyone has a photographic memory. Some don't have film.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.234
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.234
-Problem: GTK 2 GUI: ":sp" and the ":q" leaves the cursor on the command
- line.
-Solution: Flush output before removing scrollbars. Also do this in other
- places where gui_mch_*() functions are invoked.
-Files: src/ex_cmds.c, src/option.c, src/window.c
-
-
-*** ../vim-6.2.233/src/ex_cmds.c Sun Jan 25 19:35:19 2004
---- src/ex_cmds.c Wed Feb 4 19:37:02 2004
-***************
-*** 5409,5414 ****
---- 5408,5414 ----
- #ifdef FEAT_SIGN_ICONS
- if (gui.in_use)
- {
-+ out_flush();
- if (sp->sn_image != NULL)
- gui_mch_destroy_sign(sp->sn_image);
- sp->sn_image = gui_mch_register_sign(sp->sn_icon);
-***************
-*** 5488,5494 ****
---- 5488,5497 ----
- vim_free(sp->sn_icon);
- #ifdef FEAT_SIGN_ICONS
- if (sp->sn_image != NULL)
-+ {
-+ out_flush();
- gui_mch_destroy_sign(sp->sn_image);
-+ }
- #endif
- vim_free(sp->sn_text);
- if (sp_prev == NULL)
-*** ../vim-6.2.233/src/option.c Sun Jan 25 20:42:15 2004
---- src/option.c Wed Feb 4 20:19:34 2004
-***************
-*** 5378,5385 ****
---- 5378,5388 ----
- &toolbar_flags, TRUE) != OK)
- errmsg = e_invarg;
- else
-+ {
-+ out_flush();
- gui_mch_show_toolbar((toolbar_flags &
- (TOOLBAR_TEXT | TOOLBAR_ICONS)) != 0);
-+ }
- }
- #endif
-
-***************
-*** 5390,5397 ****
---- 5393,5403 ----
- if (opt_strings_flags(p_tbis, p_tbis_values, &tbis_flags, FALSE) != OK)
- errmsg = e_invarg;
- else
-+ {
-+ out_flush();
- gui_mch_show_toolbar((toolbar_flags &
- (TOOLBAR_TEXT | TOOLBAR_ICONS)) != 0);
-+ }
- }
- #endif
-
-*** ../vim-6.2.233/src/window.c Sun Jan 18 20:46:13 2004
---- src/window.c Wed Feb 4 20:23:10 2004
-***************
-*** 1434,1439 ****
---- 1434,1440 ----
- * scrollbars. Have to update them anyway. */
- if (gui.in_use)
- {
-+ out_flush();
- gui_init_which_components(NULL);
- gui_update_scrollbars(TRUE);
- }
-***************
-*** 3076,3081 ****
---- 3077,3083 ----
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-+ out_flush();
- gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
- SBAR_LEFT, newwin);
- gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
-***************
-*** 3144,3149 ****
---- 3146,3152 ----
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-+ out_flush();
- gui_mch_destroy_scrollbar(&wp->w_scrollbars[SBAR_LEFT]);
- gui_mch_destroy_scrollbar(&wp->w_scrollbars[SBAR_RIGHT]);
- }
-*** ../vim-6.2.233/src/version.c Wed Feb 4 12:12:05 2004
---- src/version.c Wed Feb 4 21:40:18 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 234,
- /**/
-
---
-Despite the cost of living, have you noticed how it remains so popular?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.235 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.235 (extra)
-Problem: Win32: Cursor isn't removed with a 25x80 window and doing:
- "1830ia<Esc>400a-<Esc>0w0". (Yasuhiro Matsumoto)
-Solution: Remove the call to gui_undraw_cursor() from gui_mch_insert_lines().
-Files: src/gui_w48.c
-
-
-*** ../vim-6.2.234/src/gui_w48.c Wed Jan 1 01:32:06 2003
---- src/gui_w48.c Wed Feb 4 21:29:28 2004
-***************
-*** 2454,2460 ****
- ScrollWindowEx(s_textArea, 0, num_lines * gui.char_height,
- &rc, &rc, NULL, NULL, get_scroll_flags());
-
-- gui_undraw_cursor(); /* Is this really necessary? */
- UpdateWindow(s_textArea);
-
- gui_clear_block(row, gui.scroll_region_left,
---- 2454,2459 ----
-*** ../vim-6.2.234/src/version.c Wed Feb 4 21:42:30 2004
---- src/version.c Wed Feb 4 21:43:23 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 235,
- /**/
-
---
-Nothing is fool-proof to a sufficiently talented fool.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.236
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.236
-Problem: Using gvim with Agide gives "connection lost" error messages.
-Solution: Only give the "connection lost" message when the buffer was once
- owned by NetBeans.
-Files: src/netbeans.c, src/structs.h
-
-
-*** ../vim-6.2.235/src/netbeans.c Mon Feb 2 13:02:59 2004
---- src/netbeans.c Thu Feb 5 11:23:51 2004
-***************
-*** 1517,1523 ****
- return FAIL;
- }
- buf->fireChanges = 0;
-! if (buf->bufp != NULL && !buf->bufp->b_netbeans_file)
- EMSGN(_("E658: NetBeans connection lost for buffer %ld"),
- buf->bufp->b_fnum);
- /* =====================================================================*/
---- 1517,1525 ----
- return FAIL;
- }
- buf->fireChanges = 0;
-! if (buf->bufp != NULL
-! && buf->bufp->b_was_netbeans_file
-! && !buf->bufp->b_netbeans_file)
- EMSGN(_("E658: NetBeans connection lost for buffer %ld"),
- buf->bufp->b_fnum);
- /* =====================================================================*/
-***************
-*** 2077,2083 ****
- nbdebug((" null bufp in %s command", cmd));
- return FAIL;
- }
-! buf->bufp->b_netbeans_file = *args == 'T' ? TRUE : FALSE;
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "version"))
---- 2079,2091 ----
- nbdebug((" null bufp in %s command", cmd));
- return FAIL;
- }
-! if (*args == 'T')
-! {
-! buf->bufp->b_netbeans_file = TRUE;
-! buf->bufp->b_was_netbeans_file = TRUE;
-! }
-! else
-! buf->bufp->b_netbeans_file = FALSE;
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "version"))
-*** ../vim-6.2.235/src/structs.h Sun Jan 18 21:31:56 2004
---- src/structs.h Wed Feb 4 19:50:49 2004
-***************
-*** 1235,1240 ****
---- 1235,1241 ----
-
- #ifdef FEAT_NETBEANS_INTG
- int b_netbeans_file; /* TRUE when buffer is owned by NetBeans */
-+ int b_was_netbeans_file;/* TRUE if b_netbeans_file was once set */
- #endif
-
- };
-*** ../vim-6.2.235/src/version.c Wed Feb 4 21:44:27 2004
---- src/version.c Thu Feb 5 12:06:30 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 236,
- /**/
-
---
-George: "I just got a new set of golf clubs for my wife!"
- John: "Great trade!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.237
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.237
-Problem: GTK 2: Thai text is drawn wrong. It changes when moving the
- cursor over it.
-Solution: Disable the shaping engine, it moves combining characters to a
- wrong position and combines characters, while drawing the cursor
- doesn't combine characters.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-6.2.236/src/gui_gtk_x11.c Sun Jan 25 20:45:55 2004
---- src/gui_gtk_x11.c Thu Feb 5 15:04:01 2004
-***************
-*** 4296,4301 ****
---- 4296,4303 ----
- #endif /* !HAVE_GTK2 */
-
- #ifdef HAVE_GTK2
-+ static PangoEngineShape *default_shape_engine = NULL;
-+
- /*
- * Create a map from ASCII characters in the range [32,126] to glyphs
- * of the current font. This is used by gui_gtk2_draw_string() to skip
-***************
-*** 4336,4341 ****
---- 4338,4346 ----
- item = (PangoItem *)item_list->data;
- width = gui.char_width * PANGO_SCALE;
-
-+ /* Remember the shape engine used for ASCII. */
-+ default_shape_engine = item->analysis.shape_engine;
-+
- gui.ascii_font = item->analysis.font;
- g_object_ref(gui.ascii_font);
-
-***************
-*** 5146,5151 ****
---- 5151,5160 ----
- */
- item->analysis.level = (item->analysis.level + 1) & (~1U);
-
-+ /* HACK: Overrule the shape engine, we don't want shaping to be
-+ * done, because drawing the cursor would change the display. */
-+ item->analysis.shape_engine = default_shape_engine;
-+
- pango_shape((const char *)s + item->offset, item->length,
- &item->analysis, glyphs);
- /*
-***************
-*** 5194,5200 ****
- item_cells += cellcount;
- cells = cellcount;
- }
-! else if (i > 0) /* i == 0 "cannot happen" */
- {
- int width;
-
---- 5203,5209 ----
- item_cells += cellcount;
- cells = cellcount;
- }
-! else if (i > 0)
- {
- int width;
-
-***************
-*** 5208,5214 ****
- MAX(0, width - cluster_width) / 2;
- glyph->geometry.width = width;
- }
-! else
- {
- glyph->geometry.width = 0;
- }
---- 5217,5223 ----
- MAX(0, width - cluster_width) / 2;
- glyph->geometry.width = width;
- }
-! else /* i == 0 "cannot happen" */
- {
- glyph->geometry.width = 0;
- }
-*** ../vim-6.2.236/src/version.c Thu Feb 5 12:09:25 2004
---- src/version.c Thu Feb 5 15:28:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 237,
- /**/
-
---
-The future isn't what it used to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.238
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.238 (after 6.2.231)
-Problem: ":function" does not work inside a while loop. (Servatius Brandt)
-Solution: Add get_while_line() and pass it to do_one_cmd() when in a while
- loop, so that all lines are stored and can be used again when
- repeating the loop.
- Adjust test 49 so that it checks for the fixed problems.
- (Servatius Brandt)
-Files: src/digraph.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
- src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro,
- src/testdir/test49.in, src/testdir/test49.ok,
- src/testdir/test49.vim
-
-
-*** ../vim-6.2.237/src/digraph.c Thu Sep 11 21:11:22 2003
---- src/digraph.c Mon Feb 2 21:33:07 2004
-***************
-*** 2366,2372 ****
- int i;
- char_u *save_cpo = p_cpo;
-
-! if (eap->getline != getsourceline)
- {
- EMSG(_("E105: Using :loadkeymap not in a sourced file"));
- return;
---- 2366,2372 ----
- int i;
- char_u *save_cpo = p_cpo;
-
-! if (!getline_equal(eap->getline, eap->cookie, getsourceline))
- {
- EMSG(_("E105: Using :loadkeymap not in a sourced file"));
- return;
-***************
-*** 2388,2394 ****
- */
- for (;;)
- {
-! line = getsourceline(0, eap->cookie, 0);
- if (line == NULL)
- break;
-
---- 2388,2394 ----
- */
- for (;;)
- {
-! line = eap->getline(0, eap->cookie, 0);
- if (line == NULL)
- break;
-
-*** ../vim-6.2.237/src/ex_cmds2.c Sun Jan 25 19:56:12 2004
---- src/ex_cmds2.c Tue Feb 3 13:57:13 2004
-***************
-*** 208,214 ****
- n = debug_break_level;
- debug_break_level = -1;
- (void)do_cmdline(cmdline, getexline, NULL,
-! DOCMD_VERBOSE|DOCMD_EXCRESET);
- debug_break_level = n;
-
- vim_free(cmdline);
---- 208,214 ----
- n = debug_break_level;
- debug_break_level = -1;
- (void)do_cmdline(cmdline, getexline, NULL,
-! DOCMD_VERBOSE|DOCMD_EXCRESET);
- debug_break_level = n;
-
- vim_free(cmdline);
-***************
-*** 724,740 ****
- # endif
- ))
- ++count;
-! #ifdef FEAT_AUTOCMD
- if (!buf_valid(buf))
- /* Autocommand deleted buffer, oops! It's not changed now. */
- return FALSE;
-! #endif
- dialog_changed(buf, count > 1);
-! #ifdef FEAT_AUTOCMD
- if (!buf_valid(buf))
- /* Autocommand deleted buffer, oops! It's not changed now. */
- return FALSE;
-! #endif
- return bufIsChanged(buf);
- }
- #endif
---- 724,740 ----
- # endif
- ))
- ++count;
-! # ifdef FEAT_AUTOCMD
- if (!buf_valid(buf))
- /* Autocommand deleted buffer, oops! It's not changed now. */
- return FALSE;
-! # endif
- dialog_changed(buf, count > 1);
-! # ifdef FEAT_AUTOCMD
- if (!buf_valid(buf))
- /* Autocommand deleted buffer, oops! It's not changed now. */
- return FALSE;
-! # endif
- return bufIsChanged(buf);
- }
- #endif
-***************
-*** 2678,2684 ****
- struct source_cookie *sp;
- char_u *name;
-
-! if (eap->getline != getsourceline)
- {
- EMSG(_("E167: :scriptencoding used outside of a sourced file"));
- return;
---- 2678,2684 ----
- struct source_cookie *sp;
- char_u *name;
-
-! if (!getline_equal(eap->getline, eap->cookie, getsourceline))
- {
- EMSG(_("E167: :scriptencoding used outside of a sourced file"));
- return;
-***************
-*** 2694,2700 ****
- name = eap->arg;
-
- /* Setup for conversion from the specified encoding to 'encoding'. */
-! sp = (struct source_cookie *)eap->cookie;
- convert_setup(&sp->conv, name, p_enc);
-
- if (name != eap->arg)
---- 2694,2700 ----
- name = eap->arg;
-
- /* Setup for conversion from the specified encoding to 'encoding'. */
-! sp = (struct source_cookie *)getline_cookie(eap->getline, eap->cookie);
- convert_setup(&sp->conv, name, p_enc);
-
- if (name != eap->arg)
-***************
-*** 2710,2716 ****
- ex_finish(eap)
- exarg_T *eap;
- {
-! if (eap->getline == getsourceline)
- do_finish(eap, FALSE);
- else
- EMSG(_("E168: :finish used outside of a sourced file"));
---- 2710,2716 ----
- ex_finish(eap)
- exarg_T *eap;
- {
-! if (getline_equal(eap->getline, eap->cookie, getsourceline))
- do_finish(eap, FALSE);
- else
- EMSG(_("E168: :finish used outside of a sourced file"));
-***************
-*** 2729,2735 ****
- int idx;
-
- if (reanimate)
-! ((struct source_cookie *)eap->cookie)->finished = FALSE;
-
- /*
- * Cleanup (and inactivate) conditionals, but stop when a try conditional
---- 2729,2736 ----
- int idx;
-
- if (reanimate)
-! ((struct source_cookie *)getline_cookie(eap->getline,
-! eap->cookie))->finished = FALSE;
-
- /*
- * Cleanup (and inactivate) conditionals, but stop when a try conditional
-***************
-*** 2744,2762 ****
- report_make_pending(CSTP_FINISH, NULL);
- }
- else
-! ((struct source_cookie *)eap->cookie)->finished = TRUE;
- }
-
-
- /*
- * Return TRUE when a sourced file had the ":finish" command: Don't give error
- * message for missing ":endif".
- */
- int
-! source_finished(cookie)
- void *cookie;
- {
-! return ((struct source_cookie *)cookie)->finished == TRUE;
- }
- #endif
-
---- 2745,2768 ----
- report_make_pending(CSTP_FINISH, NULL);
- }
- else
-! ((struct source_cookie *)getline_cookie(eap->getline,
-! eap->cookie))->finished = TRUE;
- }
-
-
- /*
- * Return TRUE when a sourced file had the ":finish" command: Don't give error
- * message for missing ":endif".
-+ * Return FALSE when not sourcing a file.
- */
- int
-! source_finished(getline, cookie)
-! char_u *(*getline) __ARGS((int, void *, int));
- void *cookie;
- {
-! return (getline_equal(getline, cookie, getsourceline)
-! && ((struct source_cookie *)getline_cookie(
-! getline, cookie))->finished);
- }
- #endif
-
-*** ../vim-6.2.237/src/ex_docmd.c Sun Jan 25 19:32:46 2004
---- src/ex_docmd.c Wed Feb 4 19:27:50 2004
-***************
-*** 57,63 ****
- #endif
-
- #ifdef FEAT_EVAL
-- static void free_cmdlines __ARGS((garray_T *gap));
- static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*getline)(int, void *, int), void *cookie));
- #else
- static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*getline)(int, void *, int), void *cookie));
---- 57,62 ----
-***************
-*** 455,460 ****
---- 454,488 ----
- static char_u dollar_command[2] = {'$', 0};
-
-
-+ #ifdef FEAT_EVAL
-+ /* Struct for storing a line inside a while loop */
-+ typedef struct
-+ {
-+ char_u *line; /* command line */
-+ linenr_T lnum; /* sourcing_lnum of the line */
-+ } wcmd_T;
-+
-+ /*
-+ * Structure used to store info for line position in a while loop.
-+ * This is required, because do_one_cmd() may invoke ex_function(), which
-+ * reads more lines that may come from the while loop.
-+ */
-+ struct while_cookie
-+ {
-+ garray_T *lines_gap; /* growarray with line info */
-+ int current_line; /* last read line from growarray */
-+ int repeating; /* TRUE when looping a second time */
-+ /* When "repeating" is FALSE use "getline" and "cookie" to get lines */
-+ char_u *(*getline) __ARGS((int, void *, int));
-+ void *cookie;
-+ };
-+
-+ static char_u *get_while_line __ARGS((int c, void *cookie, int indent));
-+ static int store_while_line __ARGS((garray_T *gap, char_u *line));
-+ static void free_cmdlines __ARGS((garray_T *gap));
-+ #endif
-+
-+
- /*
- * do_exmode(): Repeatedly get commands for the "Ex" mode, until the ":vi"
- * command is given.
-***************
-*** 549,561 ****
- DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED);
- }
-
-- /* Struct for storing a line inside a while loop */
-- typedef struct
-- {
-- char_u *line; /* command line */
-- linenr_T lnum; /* sourcing_lnum of the line */
-- } wcmd_T;
--
- /*
- * do_cmdline(): execute one Ex command line
- *
---- 577,582 ----
-***************
-*** 610,615 ****
---- 631,645 ----
- int initial_trylevel;
- struct msglist **saved_msg_list = NULL;
- struct msglist *private_msg_list;
-+
-+ /* "getline" and "cookie" passed to do_one_cmd() */
-+ char_u *(*cmd_getline) __ARGS((int, void *, int));
-+ void *cmd_cookie;
-+ struct while_cookie cmd_while_cookie;
-+ void *real_cookie;
-+ #else
-+ # define cmd_getline getline
-+ # define cmd_cookie cookie
- #endif
- static int call_depth = 0; /* recursiveness */
-
-***************
-*** 650,672 ****
- cstack.cs_had_finally = FALSE;
- ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
-
- /* Inside a function use a higher nesting level. */
-! if (getline == get_func_line && ex_nesting_level == func_level(cookie))
- ++ex_nesting_level;
-
- /* Get the function or script name and the address where the next breakpoint
- * line and the debug tick for a function or script are stored. */
-! if (getline == get_func_line)
- {
-! fname = func_name(cookie);
-! breakpoint = func_breakpoint(cookie);
-! dbg_tick = func_dbg_tick(cookie);
- }
-! else if (getline == getsourceline)
- {
- fname = sourcing_name;
-! breakpoint = source_breakpoint(cookie);
-! dbg_tick = source_dbg_tick(cookie);
- }
-
- /*
---- 680,705 ----
- cstack.cs_had_finally = FALSE;
- ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
-
-+ real_cookie = getline_cookie(getline, cookie);
-+
- /* Inside a function use a higher nesting level. */
-! if (getline_equal(getline, cookie, get_func_line)
-! && ex_nesting_level == func_level(real_cookie))
- ++ex_nesting_level;
-
- /* Get the function or script name and the address where the next breakpoint
- * line and the debug tick for a function or script are stored. */
-! if (getline_equal(getline, cookie, get_func_line))
- {
-! fname = func_name(real_cookie);
-! breakpoint = func_breakpoint(real_cookie);
-! dbg_tick = func_dbg_tick(real_cookie);
- }
-! else if (getline_equal(getline, cookie, getsourceline))
- {
- fname = sourcing_name;
-! breakpoint = source_breakpoint(real_cookie);
-! dbg_tick = source_dbg_tick(real_cookie);
- }
-
- /*
-***************
-*** 717,723 ****
- * KeyTyped is only set when calling vgetc(). Reset it here when not
- * calling vgetc() (sourced command lines).
- */
-! if (!(flags & DOCMD_KEYTYPED) && getline != getexline)
- KeyTyped = FALSE;
-
- /*
---- 750,756 ----
- * KeyTyped is only set when calling vgetc(). Reset it here when not
- * calling vgetc() (sourced command lines).
- */
-! if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
- KeyTyped = FALSE;
-
- /*
-***************
-*** 734,740 ****
- #ifdef FEAT_EVAL
- && !force_abort
- && cstack.cs_idx < 0
-! && !(getline == get_func_line && func_has_abort(cookie))
- #endif
- )
- did_emsg = FALSE;
---- 767,774 ----
- #ifdef FEAT_EVAL
- && !force_abort
- && cstack.cs_idx < 0
-! && !(getline_equal(getline, cookie, get_func_line)
-! && func_has_abort(real_cookie))
- #endif
- )
- did_emsg = FALSE;
-***************
-*** 756,769 ****
-
- /* Check if a function has returned or, unless it has an unclosed
- * try conditional, aborted. */
-! if (getline == get_func_line && func_has_ended(cookie))
- {
- retval = FAIL;
- break;
- }
-
- /* Check if a sourced file hit a ":finish" command. */
-! if (getline == getsourceline && source_finished(cookie))
- {
- retval = FAIL;
- break;
---- 790,804 ----
-
- /* Check if a function has returned or, unless it has an unclosed
- * try conditional, aborted. */
-! if (getline_equal(getline, cookie, get_func_line)
-! && func_has_ended(real_cookie))
- {
- retval = FAIL;
- break;
- }
-
- /* Check if a sourced file hit a ":finish" command. */
-! if (source_finished(getline, cookie))
- {
- retval = FAIL;
- break;
-***************
-*** 773,779 ****
- if (breakpoint != NULL && dbg_tick != NULL
- && *dbg_tick != debug_tick)
- {
-! *breakpoint = dbg_find_breakpoint((getline == getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
---- 808,815 ----
- if (breakpoint != NULL && dbg_tick != NULL
- && *dbg_tick != debug_tick)
- {
-! *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
-***************
-*** 787,797 ****
- {
- dbg_breakpoint(fname, sourcing_lnum);
- /* Find next breakpoint. */
-! *breakpoint = dbg_find_breakpoint((getline == getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
- }
- #endif
-
- /* 2. If no line given, get an allocated line with getline(). */
---- 823,855 ----
- {
- dbg_breakpoint(fname, sourcing_lnum);
- /* Find next breakpoint. */
-! *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
- }
-+
-+ if (cstack.cs_whilelevel)
-+ {
-+ /* Inside a while loop we need to store the lines and use them
-+ * again. Pass a different "getline" function to do_one_cmd()
-+ * below, so that it stores lines in or reads them from
-+ * "lines_ga". Makes it possible to define a function inside a
-+ * while loop. */
-+ cmd_getline = get_while_line;
-+ cmd_cookie = (void *)&cmd_while_cookie;
-+ cmd_while_cookie.lines_gap = &lines_ga;
-+ cmd_while_cookie.current_line = current_line;
-+ cmd_while_cookie.getline = getline;
-+ cmd_while_cookie.cookie = cookie;
-+ cmd_while_cookie.repeating = (current_line < lines_ga.ga_len);
-+ }
-+ else
-+ {
-+ cmd_getline = getline;
-+ cmd_cookie = cookie;
-+ }
- #endif
-
- /* 2. If no line given, get an allocated line with getline(). */
-***************
-*** 801,807 ****
- * Need to set msg_didout for the first line after an ":if",
- * otherwise the ":if" will be overwritten.
- */
-! if (count == 1 && getline == getexline)
- msg_didout = TRUE;
- if (getline == NULL || (next_cmdline = getline(':', cookie,
- #ifdef FEAT_EVAL
---- 859,865 ----
- * Need to set msg_didout for the first line after an ":if",
- * otherwise the ":if" will be overwritten.
- */
-! if (count == 1 && getline_equal(getline, cookie, getexline))
- msg_didout = TRUE;
- if (getline == NULL || (next_cmdline = getline(':', cookie,
- #ifdef FEAT_EVAL
-***************
-*** 856,872 ****
- if ( current_line == lines_ga.ga_len
- && (cstack.cs_whilelevel || has_while_cmd(next_cmdline)))
- {
-! if (ga_grow(&lines_ga, 1) == FAIL)
- {
-- EMSG(_(e_outofmem));
- retval = FAIL;
- break;
- }
-- ((wcmd_T *)(lines_ga.ga_data))[current_line].line =
-- vim_strsave(next_cmdline);
-- ((wcmd_T *)(lines_ga.ga_data))[current_line].lnum = sourcing_lnum;
-- ++lines_ga.ga_len;
-- --lines_ga.ga_room;
- }
- did_endif = FALSE;
- #endif
---- 914,924 ----
- if ( current_line == lines_ga.ga_len
- && (cstack.cs_whilelevel || has_while_cmd(next_cmdline)))
- {
-! if (store_while_line(&lines_ga, next_cmdline) == FAIL)
- {
- retval = FAIL;
- break;
- }
- }
- did_endif = FALSE;
- #endif
-***************
-*** 922,929 ****
- #ifdef FEAT_EVAL
- &cstack,
- #endif
-! getline, cookie);
- --recursive;
- if (next_cmdline == NULL)
- {
- vim_free(cmdline_copy);
---- 974,989 ----
- #ifdef FEAT_EVAL
- &cstack,
- #endif
-! cmd_getline, cmd_cookie);
- --recursive;
-+
-+ #ifdef FEAT_EVAL
-+ if (cmd_cookie == (void *)&cmd_while_cookie)
-+ /* Use "current_line" from "cmd_while_cookie", it may have been
-+ * incremented when defining a function. */
-+ current_line = cmd_while_cookie.current_line;
-+ #endif
-+
- if (next_cmdline == NULL)
- {
- vim_free(cmdline_copy);
-***************
-*** 933,939 ****
- * If the command was typed, remember it for the ':' register.
- * Do this AFTER executing the command to make :@: work.
- */
-! if (getline == getexline && new_last_cmdline != NULL)
- {
- vim_free(last_cmdline);
- last_cmdline = new_last_cmdline;
---- 993,1000 ----
- * If the command was typed, remember it for the ':' register.
- * Do this AFTER executing the command to make :@: work.
- */
-! if (getline_equal(getline, cookie, getexline)
-! && new_last_cmdline != NULL)
- {
- vim_free(last_cmdline);
- last_cmdline = new_last_cmdline;
-***************
-*** 953,959 ****
- #ifdef FEAT_EVAL
- /* reset did_emsg for a function that is not aborted by an error */
- if (did_emsg && !force_abort
-! && getline == get_func_line && !func_has_abort(cookie))
- did_emsg = FALSE;
-
- if (cstack.cs_whilelevel)
---- 1014,1021 ----
- #ifdef FEAT_EVAL
- /* reset did_emsg for a function that is not aborted by an error */
- if (did_emsg && !force_abort
-! && getline_equal(getline, cookie, get_func_line)
-! && !func_has_abort(real_cookie))
- did_emsg = FALSE;
-
- if (cstack.cs_whilelevel)
-***************
-*** 989,995 ****
- if (breakpoint != NULL)
- {
- *breakpoint = dbg_find_breakpoint(
-! (getline == getsourceline), fname,
- ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
- *dbg_tick = debug_tick;
- }
---- 1051,1058 ----
- if (breakpoint != NULL)
- {
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
-! fname,
- ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
- *dbg_tick = debug_tick;
- }
-***************
-*** 1080,1086 ****
- && cstack.cs_trylevel == 0
- #endif
- )
-! && !(did_emsg && (getline == getexmodeline || getline == getexline))
- && (next_cmdline != NULL
- #ifdef FEAT_EVAL
- || cstack.cs_idx >= 0
---- 1143,1150 ----
- && cstack.cs_trylevel == 0
- #endif
- )
-! && !(did_emsg && (getline_equal(getline, cookie, getexmodeline)
-! || getline_equal(getline, cookie, getexline)))
- && (next_cmdline != NULL
- #ifdef FEAT_EVAL
- || cstack.cs_idx >= 0
-***************
-*** 1099,1106 ****
- * unclosed conditional.
- */
- if (!got_int && !did_throw
-! && ((getline == getsourceline && !source_finished(cookie))
-! || (getline == get_func_line && !func_has_ended(cookie))))
- {
- if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
- EMSG(_(e_endtry));
---- 1163,1172 ----
- * unclosed conditional.
- */
- if (!got_int && !did_throw
-! && ((getline_equal(getline, cookie, getsourceline)
-! && !source_finished(getline, cookie))
-! || (getline_equal(getline, cookie, get_func_line)
-! && !func_has_ended(real_cookie))))
- {
- if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
- EMSG(_(e_endtry));
-***************
-*** 1125,1131 ****
- /* If a missing ":endtry", ":endwhile", or ":endif" or a memory lack
- * was reported above and the error message is to be converted to an
- * exception, do this now after rewinding the cstack. */
-! do_errthrow(&cstack, getline == get_func_line
- ? (char_u *)"endfunction" : (char_u *)NULL);
-
- if (trylevel == 0)
---- 1191,1197 ----
- /* If a missing ":endtry", ":endwhile", or ":endif" or a memory lack
- * was reported above and the error message is to be converted to an
- * exception, do this now after rewinding the cstack. */
-! do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
- ? (char_u *)"endfunction" : (char_u *)NULL);
-
- if (trylevel == 0)
-***************
-*** 1218,1227 ****
- */
- if (did_throw)
- need_rethrow = TRUE;
-! if ((getline == getsourceline
-! && ex_nesting_level > source_level(cookie))
-! || (getline == get_func_line
-! && ex_nesting_level > func_level(cookie) + 1))
- {
- if (!did_throw)
- check_cstack = TRUE;
---- 1284,1293 ----
- */
- if (did_throw)
- need_rethrow = TRUE;
-! if ((getline_equal(getline, cookie, getsourceline)
-! && ex_nesting_level > source_level(real_cookie))
-! || (getline_equal(getline, cookie, get_func_line)
-! && ex_nesting_level > func_level(real_cookie) + 1))
- {
- if (!did_throw)
- check_cstack = TRUE;
-***************
-*** 1229,1243 ****
- else
- {
- /* When leaving a function, reduce nesting level. */
-! if (getline == get_func_line)
- --ex_nesting_level;
- /*
- * Go to debug mode when returning from a function in which we are
- * single-stepping.
- */
-! if ((getline == getsourceline || getline == get_func_line)
- && ex_nesting_level + 1 <= debug_break_level)
-! do_debug(getline == getsourceline
- ? (char_u *)_("End of sourced file")
- : (char_u *)_("End of function"));
- }
---- 1295,1310 ----
- else
- {
- /* When leaving a function, reduce nesting level. */
-! if (getline_equal(getline, cookie, get_func_line))
- --ex_nesting_level;
- /*
- * Go to debug mode when returning from a function in which we are
- * single-stepping.
- */
-! if ((getline_equal(getline, cookie, getsourceline)
-! || getline_equal(getline, cookie, get_func_line))
- && ex_nesting_level + 1 <= debug_break_level)
-! do_debug(getline_equal(getline, cookie, getsourceline)
- ? (char_u *)_("End of sourced file")
- : (char_u *)_("End of function"));
- }
-***************
-*** 1316,1321 ****
---- 1383,1444 ----
- }
-
- #ifdef FEAT_EVAL
-+ /*
-+ * Obtain a line when inside a ":while" loop.
-+ */
-+ static char_u *
-+ get_while_line(c, cookie, indent)
-+ int c;
-+ void *cookie;
-+ int indent;
-+ {
-+ struct while_cookie *cp = (struct while_cookie *)cookie;
-+ wcmd_T *wp;
-+ char_u *line;
-+
-+ if (cp->current_line + 1 >= cp->lines_gap->ga_len)
-+ {
-+ if (cp->repeating)
-+ return NULL; /* trying to read past the ":endwhile" */
-+
-+ /* First time inside the ":while": get line normally. */
-+ if (cp->getline == NULL)
-+ line = getcmdline(c, 0L, indent);
-+ else
-+ line = cp->getline(c, cp->cookie, indent);
-+ if (store_while_line(cp->lines_gap, line) == OK)
-+ ++cp->current_line;
-+
-+ return line;
-+ }
-+
-+ KeyTyped = FALSE;
-+ ++cp->current_line;
-+ wp = (wcmd_T *)(cp->lines_gap->ga_data) + cp->current_line;
-+ sourcing_lnum = wp->lnum;
-+ return vim_strsave(wp->line);
-+ }
-+
-+ /*
-+ * Store a line in "gap" so that a ":while" loop can execute it again.
-+ */
-+ static int
-+ store_while_line(gap, line)
-+ garray_T *gap;
-+ char_u *line;
-+ {
-+ if (ga_grow(gap, 1) == FAIL)
-+ return FAIL;
-+ ((wcmd_T *)(gap->ga_data))[gap->ga_len].line = vim_strsave(line);
-+ ((wcmd_T *)(gap->ga_data))[gap->ga_len].lnum = sourcing_lnum;
-+ ++gap->ga_len;
-+ --gap->ga_room;
-+ return OK;
-+ }
-+
-+ /*
-+ * Free the lines stored for a ":while" loop.
-+ */
- static void
- free_cmdlines(gap)
- garray_T *gap;
-***************
-*** 1330,1335 ****
---- 1453,1521 ----
- #endif
-
- /*
-+ * If "getline" is get_while_line(), return TRUE if the getline it uses equals
-+ * "func". * Otherwise return TRUE when "getline" equals "func".
-+ */
-+ /*ARGSUSED*/
-+ int
-+ getline_equal(getline, cookie, func)
-+ char_u *(*getline) __ARGS((int, void *, int));
-+ void *cookie; /* argument for getline() */
-+ char_u *(*func) __ARGS((int, void *, int));
-+ {
-+ #ifdef FEAT_EVAL
-+ char_u *(*gp) __ARGS((int, void *, int));
-+ struct while_cookie *cp;
-+
-+ /* When "getline" is "get_while_line()" use the "cookie" to find the
-+ * function that's orignally used to obtain the lines. This may be nested
-+ * several levels. */
-+ gp = getline;
-+ cp = (struct while_cookie *)cookie;
-+ while (gp == get_while_line)
-+ {
-+ gp = cp->getline;
-+ cp = cp->cookie;
-+ }
-+ return gp == func;
-+ #else
-+ return getline == func;
-+ #endif
-+ }
-+
-+ #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO)
-+ /*
-+ * If "getline" is get_while_line(), return the cookie used by the original
-+ * getline function. Otherwise return "cookie".
-+ */
-+ /*ARGSUSED*/
-+ void *
-+ getline_cookie(getline, cookie)
-+ char_u *(*getline) __ARGS((int, void *, int));
-+ void *cookie; /* argument for getline() */
-+ {
-+ # ifdef FEAT_EVAL
-+ char_u *(*gp) __ARGS((int, void *, int));
-+ struct while_cookie *cp;
-+
-+ /* When "getline" is "get_while_line()" use the "cookie" to find the
-+ * cookie that's orignally used to obtain the lines. This may be nested
-+ * several levels. */
-+ gp = getline;
-+ cp = (struct while_cookie *)cookie;
-+ while (gp == get_while_line)
-+ {
-+ gp = cp->getline;
-+ cp = cp->cookie;
-+ }
-+ return cp;
-+ # else
-+ return cookie;
-+ # endif
-+ }
-+ #endif
-+
-+ /*
- * Execute one Ex command.
- *
- * If 'sourcing' is TRUE, the command will be included in the error message.
-***************
-*** 1389,1395 ****
- if (quitmore
- #ifdef FEAT_EVAL
- /* avoid that a function call in 'statusline' does this */
-! && getline != get_func_line
- #endif
- )
- --quitmore;
---- 1575,1581 ----
- if (quitmore
- #ifdef FEAT_EVAL
- /* avoid that a function call in 'statusline' does this */
-! && !getline_equal(getline, cookie, get_func_line)
- #endif
- )
- --quitmore;
-***************
-*** 1415,1421 ****
-
- /* in ex mode, an empty line works like :+ */
- if (*ea.cmd == NUL && exmode_active
-! && (getline == getexmodeline || getline == getexline))
- {
- ea.cmd = (char_u *)"+";
- ex_pressedreturn = TRUE;
---- 1601,1608 ----
-
- /* in ex mode, an empty line works like :+ */
- if (*ea.cmd == NUL && exmode_active
-! && (getline_equal(getline, cookie, getexmodeline)
-! || getline_equal(getline, cookie, getexline)))
- {
- ea.cmd = (char_u *)"+";
- ex_pressedreturn = TRUE;
-***************
-*** 2271,2279 ****
- do_throw(cstack);
- else if (check_cstack)
- {
-! if (getline == getsourceline && source_finished(cookie))
- do_finish(&ea, TRUE);
-! else if (getline == get_func_line && current_func_returned())
- do_return(&ea, TRUE, FALSE, NULL);
- }
- need_rethrow = check_cstack = FALSE;
---- 2458,2467 ----
- do_throw(cstack);
- else if (check_cstack)
- {
-! if (source_finished(getline, cookie))
- do_finish(&ea, TRUE);
-! else if (getline_equal(getline, cookie, get_func_line)
-! && current_func_returned())
- do_return(&ea, TRUE, FALSE, NULL);
- }
- need_rethrow = check_cstack = FALSE;
-*** ../vim-6.2.237/src/ex_eval.c Tue Feb 3 17:25:35 2004
---- src/ex_eval.c Mon Feb 2 22:04:59 2004
-***************
-*** 1256,1262 ****
- * End the current script or function. The exception will be rethrown
- * in the caller.
- */
-! if (eap->getline == get_func_line)
- current_funccal->returned = TRUE;
- elseif (eap->get_func_line == getsourceline)
- ((struct source_cookie *)eap->cookie)->finished = TRUE;
---- 1256,1262 ----
- * End the current script or function. The exception will be rethrown
- * in the caller.
- */
-! if (getline_equal(eap->getline, eap->cookie, get_func_line))
- current_funccal->returned = TRUE;
- elseif (eap->get_func_line == getsourceline)
- ((struct source_cookie *)eap->cookie)->finished = TRUE;
-*** ../vim-6.2.237/src/proto/ex_cmds2.pro Sun Oct 12 20:20:38 2003
---- src/proto/ex_cmds2.pro Mon Feb 2 21:43:56 2004
-***************
-*** 49,55 ****
- void ex_scriptencoding __ARGS((exarg_T *eap));
- void ex_finish __ARGS((exarg_T *eap));
- void do_finish __ARGS((exarg_T *eap, int reanimate));
-! int source_finished __ARGS((void *cookie));
- void ex_checktime __ARGS((exarg_T *eap));
- int get_printer_page_num __ARGS((void));
- int prt_header_height __ARGS((void));
---- 49,55 ----
- void ex_scriptencoding __ARGS((exarg_T *eap));
- void ex_finish __ARGS((exarg_T *eap));
- void do_finish __ARGS((exarg_T *eap, int reanimate));
-! int source_finished __ARGS((char_u *(*getline)(int, void *, int), void *cookie));
- void ex_checktime __ARGS((exarg_T *eap));
- int get_printer_page_num __ARGS((void));
- int prt_header_height __ARGS((void));
-*** ../vim-6.2.237/src/proto/ex_docmd.pro Sun Jun 1 12:26:08 2003
---- src/proto/ex_docmd.pro Mon Feb 2 22:11:34 2004
-***************
-*** 2,7 ****
---- 2,9 ----
- void do_exmode __ARGS((int improved));
- int do_cmdline_cmd __ARGS((char_u *cmd));
- int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
-+ int getline_equal __ARGS((char_u *(*getline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
-+ void *getline_cookie __ARGS((char_u *(*getline)(int, void *, int), void *cookie));
- int cmd_exists __ARGS((char_u *name));
- char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff));
- char_u *skip_range __ARGS((char_u *cmd, int *ctx));
-*** ../vim-6.2.237/src/testdir/test49.in Fri Apr 18 17:14:29 2003
---- src/testdir/test49.in Thu Feb 5 15:33:35 2004
-***************
-*** 7,13 ****
- :so small.vim
- :se nocp nomore
- :so test49.vim
-! GGGGGGGGG"rp:.-,$wq! test.out
- ENDTEST
-
- Results of test49.vim:
---- 7,13 ----
- :so small.vim
- :se nocp nomore
- :so test49.vim
-! GGGGGGGGGG"rp:.-,$wq! test.out
- ENDTEST
-
- Results of test49.vim:
-*** ../vim-6.2.237/src/testdir/test49.ok Tue Feb 3 17:25:35 2004
---- src/testdir/test49.ok Thu Feb 5 15:33:35 2004
-***************
-*** 4,91 ****
- *** Test 3: OK (1384648195)
- *** Test 4: OK (32883)
- *** Test 5: OK (32883)
-! *** Test 6: OK (90563)
-! *** Test 7: OK (562493431)
-! *** Test 8: OK (363)
-! *** Test 9: OK (559615)
-! *** Test 10: OK (2049)
-! *** Test 11: OK (352256)
-! *** Test 12: OK (145)
-! *** Test 13: OK (42413)
- *** Test 14: OK (42413)
-! *** Test 15: OK (8722)
-! *** Test 16: OK (285127993)
-! *** Test 17: OK (67224583)
-! *** Test 18: OK (69275973)
-! *** Test 19: OK (1874575085)
-! *** Test 20: OK (147932225)
-! *** Test 21: OK (4161)
-! *** Test 22: OK (49)
-! *** Test 23: OK (41)
-! *** Test 24: OK (260177811)
-! *** Test 25: OK (1681500476)
-! *** Test 26: OK (1996459)
- *** Test 27: OK (1996459)
-! *** Test 28: OK (170428555)
-! *** Test 29: OK (190905173)
- *** Test 30: OK (190905173)
-! *** Test 31: OK (354833067)
-! --- Test 32: sum = 178275600 (ok)
-! *** Test 32: OK (1216907538)
-! *** Test 33: OK (2146584868)
- *** Test 34: OK (2146584868)
-! *** Test 35: OK (1071644672)
- *** Test 36: OK (1071644672)
-! *** Test 37: OK (357908480)
- *** Test 38: OK (357908480)
- *** Test 39: OK (357908480)
-! *** Test 40: OK (3076095)
-! *** Test 41: OK (1505155949)
-! *** Test 42: OK (1157763329)
-! *** Test 43: OK (1031761407)
-! *** Test 44: OK (1157763329)
-! *** Test 45: OK (739407)
-! *** Test 46: OK (371213935)
-! *** Test 47: OK (756255461)
-! *** Test 48: OK (179000669)
-! *** Test 49: OK (363550045)
-! *** Test 50: OK (40744667)
-! *** Test 51: OK (1247112011)
-! *** Test 52: OK (131071)
-! *** Test 53: OK (2047)
-! *** Test 54: OK (1023)
-! *** Test 55: OK (511)
-! *** Test 56: OK (2147450880)
-! *** Test 57: OK (624945)
-! *** Test 58: OK (2038431743)
-! *** Test 59: OK (311511339)
-! *** Test 60: OK (374889517)
-! *** Test 61: OK (286331153)
-! *** Test 62: OK (236978127)
-! *** Test 63: OK (1499645335)
-! *** Test 64: OK (70187)
-! *** Test 65: OK (5464)
-! *** Test 66: OK (212514423)
- *** Test 67: OK (212514423)
-! *** Test 68: OK (8995471)
-! *** Test 69: OK (69544277)
-! *** Test 70: OK (34886997)
-! *** Test 71: OK (1789569365)
-! *** Test 72: OK (9032615)
-! *** Test 73: OK (224907669)
-! *** Test 74: OK (2000403408)
-! *** Test 75: OK (1610087935)
-! *** Test 76: OK (1388671)
-! *** Test 77: OK (134217728)
-! *** Test 78: OK (70288929)
-! *** Test 79: OK (17895765)
-! *** Test 80: OK (387)
-! *** Test 81: OK (8454401)
-! *** Test 82: OK (2835)
-! *** Test 83: OK (934782101)
-! *** Test 84: OK (198689)
-! --- Test 85: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 85: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 85: OK (50443995)
---- 4,92 ----
- *** Test 3: OK (1384648195)
- *** Test 4: OK (32883)
- *** Test 5: OK (32883)
-! *** Test 6: OK (603978947)
-! *** Test 7: OK (90563)
-! *** Test 8: OK (562493431)
-! *** Test 9: OK (363)
-! *** Test 10: OK (559615)
-! *** Test 11: OK (2049)
-! *** Test 12: OK (352256)
-! *** Test 13: OK (145)
- *** Test 14: OK (42413)
-! *** Test 15: OK (42413)
-! *** Test 16: OK (8722)
-! *** Test 17: OK (285127993)
-! *** Test 18: OK (67224583)
-! *** Test 19: OK (69275973)
-! *** Test 20: OK (1874575085)
-! *** Test 21: OK (147932225)
-! *** Test 22: OK (4161)
-! *** Test 23: OK (49)
-! *** Test 24: OK (41)
-! *** Test 25: OK (260177811)
-! *** Test 26: OK (1681500476)
- *** Test 27: OK (1996459)
-! *** Test 28: OK (1996459)
-! *** Test 29: OK (170428555)
- *** Test 30: OK (190905173)
-! *** Test 31: OK (190905173)
-! *** Test 32: OK (354833067)
-! --- Test 33: sum = 178275600 (ok)
-! *** Test 33: OK (1216907538)
- *** Test 34: OK (2146584868)
-! *** Test 35: OK (2146584868)
- *** Test 36: OK (1071644672)
-! *** Test 37: OK (1071644672)
- *** Test 38: OK (357908480)
- *** Test 39: OK (357908480)
-! *** Test 40: OK (357908480)
-! *** Test 41: OK (3076095)
-! *** Test 42: OK (1505155949)
-! *** Test 43: OK (1157763329)
-! *** Test 44: OK (1031761407)
-! *** Test 45: OK (1157763329)
-! *** Test 46: OK (739407)
-! *** Test 47: OK (371213935)
-! *** Test 48: OK (756255461)
-! *** Test 49: OK (179000669)
-! *** Test 50: OK (363550045)
-! *** Test 51: OK (40744667)
-! *** Test 52: OK (1247112011)
-! *** Test 53: OK (131071)
-! *** Test 54: OK (2047)
-! *** Test 55: OK (1023)
-! *** Test 56: OK (511)
-! *** Test 57: OK (2147450880)
-! *** Test 58: OK (624945)
-! *** Test 59: OK (2038431743)
-! *** Test 60: OK (311511339)
-! *** Test 61: OK (374889517)
-! *** Test 62: OK (286331153)
-! *** Test 63: OK (236978127)
-! *** Test 64: OK (1499645335)
-! *** Test 65: OK (70187)
-! *** Test 66: OK (5464)
- *** Test 67: OK (212514423)
-! *** Test 68: OK (212514423)
-! *** Test 69: OK (8995471)
-! *** Test 70: OK (69544277)
-! *** Test 71: OK (34886997)
-! *** Test 72: OK (1789569365)
-! *** Test 73: OK (9032615)
-! *** Test 74: OK (224907669)
-! *** Test 75: OK (2000403408)
-! *** Test 76: OK (1610087935)
-! *** Test 77: OK (1388671)
-! *** Test 78: OK (134217728)
-! *** Test 79: OK (70288929)
-! *** Test 80: OK (17895765)
-! *** Test 81: OK (387)
-! *** Test 82: OK (8454401)
-! *** Test 83: OK (2835)
-! *** Test 84: OK (934782101)
-! *** Test 85: OK (198689)
-! --- Test 86: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 86: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 86: OK (50443995)
-*** ../vim-6.2.237/src/testdir/test49.vim Tue Feb 3 17:25:35 2004
---- src/testdir/test49.vim Thu Feb 5 15:33:35 2004
-***************
-*** 95,101 ****
- " that it is not read away by the call to "input()" below. Restore
- " afterwards.
- call inputsave()
-! let loops = input("Number of loops? ")
- call inputrestore()
- while (loops > 0)
- let num = num * factor
---- 95,101 ----
- " that it is not read away by the call to "input()" below. Restore
- " afterwards.
- call inputsave()
-! let loops = input("Number of iterations in previous loop? ")
- call inputrestore()
- while (loops > 0)
- let num = num * factor
-***************
-*** 817,823 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 6: Continuing on errors outside functions {{{1
- "
- " On an error outside a function, the script processing continues
- " at the line following the outermost :endif or :endwhile. When not
---- 817,970 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 6: Defining functions in :while loops {{{1
-! "
-! " Functions can be defined inside other functions. An inner function
-! " gets defined when the outer function is executed. Functions may
-! " also be defined inside while loops. Expressions in braces for
-! " defining the function name are allowed.
-! "-------------------------------------------------------------------------------
-!
-! XpathINIT
-!
-! if ExtraVim()
-!
-! " The command CALL collects the argument of all its invocations in "calls"
-! " when used from a function (that is, when the global variable "calls" needs
-! " the "g:" prefix). This is to check that the function code is skipped when
-! " the function is defined. For inner functions, do so only if the outer
-! " function is not being executed.
-! "
-! let calls = ""
-! com! -nargs=1 CALL
-! \ if !exists("calls") && !exists("outer") |
-! \ let g:calls = g:calls . <args> |
-! \ endif
-!
-!
-! XloopINIT! 1 16
-!
-! let i = 0
-! while i < 3
-!
-! XloopNEXT
-! let i = i + 1
-!
-! if i == 1
-! Xloop 1 " X: 1
-! function! F1(arg)
-! CALL a:arg
-! let outer = 1
-!
-! XloopINIT! 4096 4
-! let j = 0
-! while j < 1
-! XloopNEXT
-! Xloop 1 " X: 4096
-! let j = j + 1
-! function! G1(arg)
-! CALL a:arg
-! endfunction
-! Xloop 2 " X: 8192
-! endwhile
-! endfunction
-! Xloop 2 " X: 2
-!
-! continue
-! endif
-!
-! Xloop 4 " X: 4 * (16 + 256)
-! function! F{i}(i, arg)
-! CALL a:arg
-! let outer = 1
-!
-! XloopINIT! 16384 4
-! if a:i == 3
-! XloopNEXT
-! XloopNEXT
-! XloopNEXT
-! endif
-! let k = 0
-! while k < 3
-! XloopNEXT
-! Xloop 1 " X: 16384*(1+4+16+64+256+1024)
-! let k = k + 1
-! function! G{a:i}{k}(arg)
-! CALL a:arg
-! endfunction
-! Xloop 2 " X: 32768*(1+4+16+64+256+1024)
-! endwhile
-! endfunction
-! Xloop 8 " X: 8 * (16 + 256)
-!
-! endwhile
-!
-! if exists("*G1")
-! Xpath 67108864 " X: 0
-! endif
-! if exists("*F1")
-! call F1("F1")
-! if exists("*G1")
-! call G1("G1")
-! endif
-! endif
-!
-! if exists("G21") || exists("G21") || exists("G21")
-! Xpath 134217728 " X: 0
-! endif
-! if exists("*F2")
-! call F2(2, "F2")
-! if exists("*G21")
-! call G21("G21")
-! endif
-! if exists("*G22")
-! call G22("G22")
-! endif
-! if exists("*G23")
-! call G23("G23")
-! endif
-! endif
-!
-! if exists("G31") || exists("G31") || exists("G31")
-! Xpath 268435456 " X: 0
-! endif
-! if exists("*F3")
-! call F3(3, "F3")
-! if exists("*G31")
-! call G31("G31")
-! endif
-! if exists("*G32")
-! call G32("G32")
-! endif
-! if exists("*G33")
-! call G33("G33")
-! endif
-! endif
-!
-! Xpath 536870912 " X: 536870912
-!
-! if calls != "F1G1F2G21G22G23F3G31G32G33"
-! Xpath 1073741824 " X: 0
-! Xout "calls is" calls
-! endif
-!
-! delfunction F1
-! delfunction G1
-! delfunction F2
-! delfunction G21
-! delfunction G22
-! delfunction G23
-! delfunction G31
-! delfunction G32
-! delfunction G33
-!
-! endif
-!
-! Xcheck 603978947
-!
-!
-! "-------------------------------------------------------------------------------
-! " Test 7: Continuing on errors outside functions {{{1
- "
- " On an error outside a function, the script processing continues
- " at the line following the outermost :endif or :endwhile. When not
-***************
-*** 861,867 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 7: Aborting and continuing on errors inside functions {{{1
- "
- " On an error inside a function without the "abort" attribute, the
- " script processing continues at the next line (unless the error was
---- 1008,1014 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 8: Aborting and continuing on errors inside functions {{{1
- "
- " On an error inside a function without the "abort" attribute, the
- " script processing continues at the next line (unless the error was
-***************
-*** 955,961 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 8: Continuing after aborted functions {{{1
- "
- " When a function with the "abort" attribute is aborted due to an
- " error, the next function back in the call hierarchy without an
---- 1102,1108 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 9: Continuing after aborted functions {{{1
- "
- " When a function with the "abort" attribute is aborted due to an
- " error, the next function back in the call hierarchy without an
-***************
-*** 1010,1016 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 9: :if, :elseif, :while argument parsing {{{1
- "
- " A '"' or '|' in an argument expression must not be mixed up with
- " a comment or a next command after a bar. Parsing errors should
---- 1157,1163 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 10: :if, :elseif, :while argument parsing {{{1
- "
- " A '"' or '|' in an argument expression must not be mixed up with
- " a comment or a next command after a bar. Parsing errors should
-***************
-*** 1090,1096 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 10: :if, :elseif, :while argument evaluation after abort {{{1
- "
- " When code is skipped over due to an error, the boolean argument to
- " an :if, :elseif, or :while must not be evaluated.
---- 1237,1243 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 11: :if, :elseif, :while argument evaluation after abort {{{1
- "
- " When code is skipped over due to an error, the boolean argument to
- " an :if, :elseif, or :while must not be evaluated.
-***************
-*** 1141,1147 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 11: Expressions in braces in skipped code {{{1
- "
- " In code skipped over due to an error or inactive conditional,
- " an expression in braces as part of a variable or function name
---- 1288,1294 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 12: Expressions in braces in skipped code {{{1
- "
- " In code skipped over due to an error or inactive conditional,
- " an expression in braces as part of a variable or function name
-***************
-*** 1202,1208 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 12: Failure in argument evaluation for :while {{{1
- "
- " A failure in the expression evaluation for the condition of a :while
- " causes the whole :while loop until the matching :endwhile being
---- 1349,1355 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 13: Failure in argument evaluation for :while {{{1
- "
- " A failure in the expression evaluation for the condition of a :while
- " causes the whole :while loop until the matching :endwhile being
-***************
-*** 1230,1236 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 13: Failure in argument evaluation for :if {{{1
- "
- " A failure in the expression evaluation for the condition of an :if
- " does not cause the corresponding :else or :endif being matched to
---- 1377,1383 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 14: Failure in argument evaluation for :if {{{1
- "
- " A failure in the expression evaluation for the condition of an :if
- " does not cause the corresponding :else or :endif being matched to
-***************
-*** 1274,1280 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 14: Failure in argument evaluation for :if (bar) {{{1
- "
- " Like previous test, except that the failing :if ... | ... | :endif
- " is in a single line.
---- 1421,1427 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 15: Failure in argument evaluation for :if (bar) {{{1
- "
- " Like previous test, except that the failing :if ... | ... | :endif
- " is in a single line.
-***************
-*** 1312,1318 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 15: Double :else or :elseif after :else {{{1
- "
- " Multiple :elses or an :elseif after an :else are forbidden.
- "-------------------------------------------------------------------------------
---- 1459,1465 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 16: Double :else or :elseif after :else {{{1
- "
- " Multiple :elses or an :elseif after an :else are forbidden.
- "-------------------------------------------------------------------------------
-***************
-*** 1381,1387 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 16: Nesting of unmatched :if or :endif inside a :while {{{1
- "
- " The :while/:endwhile takes precedence in nesting over an unclosed
- " :if or an unopened :endif.
---- 1528,1534 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 17: Nesting of unmatched :if or :endif inside a :while {{{1
- "
- " The :while/:endwhile takes precedence in nesting over an unclosed
- " :if or an unopened :endif.
-***************
-*** 1500,1506 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 17: Interrupt (Ctrl-C pressed) {{{1
- "
- " On an interrupt, the script processing is terminated immediately.
- "-------------------------------------------------------------------------------
---- 1647,1653 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 18: Interrupt (Ctrl-C pressed) {{{1
- "
- " On an interrupt, the script processing is terminated immediately.
- "-------------------------------------------------------------------------------
-***************
-*** 1579,1585 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 18: Aborting on errors inside :try/:endtry {{{1
- "
- " An error in a command dynamically enclosed in a :try/:endtry region
- " aborts script processing immediately. It does not matter whether
---- 1726,1732 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 19: Aborting on errors inside :try/:endtry {{{1
- "
- " An error in a command dynamically enclosed in a :try/:endtry region
- " aborts script processing immediately. It does not matter whether
-***************
-*** 1664,1670 ****
-
- Xcheck 69275973
- "-------------------------------------------------------------------------------
-! " Test 19: Aborting on errors after :try/:endtry {{{1
- "
- " When an error occurs after the last active :try/:endtry region has
- " been left, termination behavior is as if no :try/:endtry has been
---- 1811,1817 ----
-
- Xcheck 69275973
- "-------------------------------------------------------------------------------
-! " Test 20: Aborting on errors after :try/:endtry {{{1
- "
- " When an error occurs after the last active :try/:endtry region has
- " been left, termination behavior is as if no :try/:endtry has been
-***************
-*** 1781,1787 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 20: :finally for :try after :continue/:break/:return/:finish {{{1
- "
- " If a :try conditional stays inactive due to a preceding :continue,
- " :break, :return, or :finish, its :finally clause should not be
---- 1928,1934 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 21: :finally for :try after :continue/:break/:return/:finish {{{1
- "
- " If a :try conditional stays inactive due to a preceding :continue,
- " :break, :return, or :finish, its :finally clause should not be
-***************
-*** 1855,1861 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 21: :finally for a :try after an error/interrupt/:throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding error or
- " interrupt or :throw, its :finally clause should not be executed.
---- 2002,2008 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 22: :finally for a :try after an error/interrupt/:throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding error or
- " interrupt or :throw, its :finally clause should not be executed.
-***************
-*** 1943,1949 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 22: :catch clauses for a :try after a :throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding :throw,
- " none of its :catch clauses should be executed.
---- 2090,2096 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 23: :catch clauses for a :try after a :throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding :throw,
- " none of its :catch clauses should be executed.
-***************
-*** 1983,1989 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 23: :endtry for a :try after a :throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding :throw,
- " its :endtry should not rethrow the exception to the next surrounding
---- 2130,2136 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 24: :endtry for a :try after a :throw {{{1
- "
- " If a :try conditional stays inactive due to a preceding :throw,
- " its :endtry should not rethrow the exception to the next surrounding
-***************
-*** 2015,2021 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 24: Executing :finally clauses on normal control flow {{{1
- "
- " Control flow in a :try conditional should always fall through to its
- " :finally clause. A :finally clause of a :try conditional inside an
---- 2162,2168 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 25: Executing :finally clauses on normal control flow {{{1
- "
- " Control flow in a :try conditional should always fall through to its
- " :finally clause. A :finally clause of a :try conditional inside an
-***************
-*** 2079,2085 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 25: Executing :finally clauses after :continue or :break {{{1
- "
- " For a :continue or :break dynamically enclosed in a :try/:endtry
- " region inside the next surrounding :while/:endwhile, if the
---- 2226,2232 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 26: Executing :finally clauses after :continue or :break {{{1
- "
- " For a :continue or :break dynamically enclosed in a :try/:endtry
- " region inside the next surrounding :while/:endwhile, if the
-***************
-*** 2150,2156 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 26: Executing :finally clauses after :return {{{1
- "
- " For a :return command dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the called function is ended.
---- 2297,2303 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 27: Executing :finally clauses after :return {{{1
- "
- " For a :return command dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the called function is ended.
-***************
-*** 2216,2222 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 27: Executing :finally clauses after :finish {{{1
- "
- " For a :finish command dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the sourced file is finished.
---- 2363,2369 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 28: Executing :finally clauses after :finish {{{1
- "
- " For a :finish command dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the sourced file is finished.
-***************
-*** 2252,2258 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 28: Executing :finally clauses on errors {{{1
- "
- " After an error in a command dynamically enclosed in a :try/:endtry
- " region, :finally clauses are executed and the script processing is
---- 2399,2405 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 29: Executing :finally clauses on errors {{{1
- "
- " After an error in a command dynamically enclosed in a :try/:endtry
- " region, :finally clauses are executed and the script processing is
-***************
-*** 2333,2339 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 29: Executing :finally clauses on interrupt {{{1
- "
- " After an interrupt in a command dynamically enclosed in
- " a :try/:endtry region, :finally clauses are executed and the
---- 2480,2486 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 30: Executing :finally clauses on interrupt {{{1
- "
- " After an interrupt in a command dynamically enclosed in
- " a :try/:endtry region, :finally clauses are executed and the
-***************
-*** 2409,2415 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 30: Executing :finally clauses after :throw {{{1
- "
- " After a :throw dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the script processing is
---- 2556,2562 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 31: Executing :finally clauses after :throw {{{1
- "
- " After a :throw dynamically enclosed in a :try/:endtry region,
- " :finally clauses are executed and the script processing is
-***************
-*** 2485,2491 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 31: Remembering the :return value on :finally {{{1
- "
- " If a :finally clause is executed due to a :return specifying
- " a value, this is the value visible to the caller if not overwritten
---- 2632,2638 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 32: Remembering the :return value on :finally {{{1
- "
- " If a :finally clause is executed due to a :return specifying
- " a value, this is the value visible to the caller if not overwritten
-***************
-*** 2587,2593 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 32: :return under :execute or user command and :finally {{{1
- "
- " A :return command may be executed under an ":execute" or from
- " a user command. Executing of :finally clauses and passing through
---- 2734,2740 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 33: :return under :execute or user command and :finally {{{1
- "
- " A :return command may be executed under an ":execute" or from
- " a user command. Executing of :finally clauses and passing through
-***************
-*** 2732,2738 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 33: :finally reason discarded by :continue {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 2879,2885 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 34: :finally reason discarded by :continue {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 2811,2817 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 34: :finally reason discarded by :break {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 2958,2964 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 35: :finally reason discarded by :break {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 2890,2896 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 35: :finally reason discarded by :return {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 3037,3043 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 36: :finally reason discarded by :return {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 2972,2978 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 36: :finally reason discarded by :finish {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 3119,3125 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 37: :finally reason discarded by :finish {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 3061,3067 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 37: :finally reason discarded by an error {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 3208,3214 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 38: :finally reason discarded by an error {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 3159,3165 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 38: :finally reason discarded by an interrupt {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 3306,3312 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 39: :finally reason discarded by an interrupt {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 3258,3264 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 39: :finally reason discarded by :throw {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
---- 3405,3411 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 40: :finally reason discarded by :throw {{{1
- "
- " When a :finally clause is executed due to a :continue, :break,
- " :return, :finish, error, interrupt or :throw, the jump reason is
-***************
-*** 3356,3362 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 40: Skipped :throw finding next command {{{1
- "
- " A :throw in an inactive conditional must not hide a following
- " command.
---- 3503,3509 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 41: Skipped :throw finding next command {{{1
- "
- " A :throw in an inactive conditional must not hide a following
- " command.
-***************
-*** 3425,3431 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 41: Catching number and string exceptions {{{1
- "
- " When a number is thrown, it is converted to a string exception.
- " Numbers and strings may be caught by specifying a regular exception
---- 3572,3578 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 42: Catching number and string exceptions {{{1
- "
- " When a number is thrown, it is converted to a string exception.
- " Numbers and strings may be caught by specifying a regular exception
-***************
-*** 3530,3536 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 42: Selecting the correct :catch clause {{{1
- "
- " When an exception is thrown and there are multiple :catch clauses,
- " the first matching one is taken.
---- 3677,3683 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 43: Selecting the correct :catch clause {{{1
- "
- " When an exception is thrown and there are multiple :catch clauses,
- " the first matching one is taken.
-***************
-*** 3576,3582 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 43: Missing or empty :catch patterns {{{1
- "
- " A missing or empty :catch pattern means the same as /.*/, that is,
- " catches everything. To catch only empty exceptions, /^$/ must be
---- 3723,3729 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 44: Missing or empty :catch patterns {{{1
- "
- " A missing or empty :catch pattern means the same as /.*/, that is,
- " catches everything. To catch only empty exceptions, /^$/ must be
-***************
-*** 3707,3713 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 44: Catching exceptions from nested :try blocks {{{1
- "
- " When :try blocks are nested, an exception is caught by the innermost
- " try conditional that has a matching :catch clause.
---- 3854,3860 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 45: Catching exceptions from nested :try blocks {{{1
- "
- " When :try blocks are nested, an exception is caught by the innermost
- " try conditional that has a matching :catch clause.
-***************
-*** 3759,3765 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 45: Executing :finally after a :throw in nested :try {{{1
- "
- " When an exception is thrown from within nested :try blocks, the
- " :finally clauses of the non-catching try conditionals should be
---- 3906,3912 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 46: Executing :finally after a :throw in nested :try {{{1
- "
- " When an exception is thrown from within nested :try blocks, the
- " :finally clauses of the non-catching try conditionals should be
-***************
-*** 3836,3842 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 46: Throwing exceptions from a :catch clause {{{1
- "
- " When an exception is thrown from a :catch clause, it should not be
- " caught by a :catch of the same :try conditional. After executing
---- 3983,3989 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 47: Throwing exceptions from a :catch clause {{{1
- "
- " When an exception is thrown from a :catch clause, it should not be
- " caught by a :catch of the same :try conditional. After executing
-***************
-*** 3909,3915 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 47: Throwing exceptions from a :finally clause {{{1
- "
- " When an exception is thrown from a :finally clause, it should not be
- " caught by a :catch of the same :try conditional. Surrounding try
---- 4056,4062 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 48: Throwing exceptions from a :finally clause {{{1
- "
- " When an exception is thrown from a :finally clause, it should not be
- " caught by a :catch of the same :try conditional. Surrounding try
-***************
-*** 3994,4000 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 48: Throwing exceptions accross functions {{{1
- "
- " When an exception is thrown but not caught inside a function, the
- " caller is checked for a matching :catch clause.
---- 4141,4147 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 49: Throwing exceptions accross functions {{{1
- "
- " When an exception is thrown but not caught inside a function, the
- " caller is checked for a matching :catch clause.
-***************
-*** 4076,4082 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 49: Throwing exceptions accross script files {{{1
- "
- " When an exception is thrown but not caught inside a script file,
- " the sourcing script or function is checked for a matching :catch
---- 4223,4229 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 50: Throwing exceptions accross script files {{{1
- "
- " When an exception is thrown but not caught inside a script file,
- " the sourcing script or function is checked for a matching :catch
-***************
-*** 4145,4151 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 50: Throwing exceptions accross :execute and user commands {{{1
- "
- " A :throw command may be executed under an ":execute" or from
- " a user command.
---- 4292,4298 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 51: Throwing exceptions accross :execute and user commands {{{1
- "
- " A :throw command may be executed under an ":execute" or from
- " a user command.
-***************
-*** 4264,4270 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 51: Uncaught exceptions {{{1
- "
- " When an exception is thrown but not caught, an error message is
- " displayed when the script is terminated. In case of an interrupt
---- 4411,4417 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 52: Uncaught exceptions {{{1
- "
- " When an exception is thrown but not caught, an error message is
- " displayed when the script is terminated. In case of an interrupt
-***************
-*** 4431,4437 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 52: Nesting errors: :endif/:else/:elseif {{{1
- "
- " For nesting errors of :if conditionals the correct error messages
- " should be given.
---- 4578,4584 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 53: Nesting errors: :endif/:else/:elseif {{{1
- "
- " For nesting errors of :if conditionals the correct error messages
- " should be given.
-***************
-*** 4611,4617 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 53: Nesting errors: :while/:endwhile {{{1
- "
- " For nesting errors of :while conditionals the correct error messages
- " should be given.
---- 4758,4764 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 54: Nesting errors: :while/:endwhile {{{1
- "
- " For nesting errors of :while conditionals the correct error messages
- " should be given.
-***************
-*** 4745,4751 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 54: Nesting errors: :continue/:break {{{1
- "
- " For nesting errors of :continue and :break commands the correct
- " error messages should be given.
---- 4892,4898 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 55: Nesting errors: :continue/:break {{{1
- "
- " For nesting errors of :continue and :break commands the correct
- " error messages should be given.
-***************
-*** 4859,4865 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 55: Nesting errors: :endtry {{{1
- "
- " For nesting errors of :try conditionals the correct error messages
- " should be given.
---- 5006,5012 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 56: Nesting errors: :endtry {{{1
- "
- " For nesting errors of :try conditionals the correct error messages
- " should be given.
-***************
-*** 4966,4972 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 56: v:exception and v:throwpoint for user exceptions {{{1
- "
- " v:exception evaluates to the value of the exception that was caught
- " most recently and is not finished. (A caught exception is finished
---- 5113,5119 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 57: v:exception and v:throwpoint for user exceptions {{{1
- "
- " v:exception evaluates to the value of the exception that was caught
- " most recently and is not finished. (A caught exception is finished
-***************
-*** 5151,5157 ****
-
- "-------------------------------------------------------------------------------
- "
-! " Test 57: v:exception and v:throwpoint for error/interrupt exceptions {{{1
- "
- " v:exception and v:throwpoint work also for error and interrupt
- " exceptions.
---- 5298,5304 ----
-
- "-------------------------------------------------------------------------------
- "
-! " Test 58: v:exception and v:throwpoint for error/interrupt exceptions {{{1
- "
- " v:exception and v:throwpoint work also for error and interrupt
- " exceptions.
-***************
-*** 5254,5260 ****
-
- "-------------------------------------------------------------------------------
- "
-! " Test 58: v:exception and v:throwpoint when discarding exceptions {{{1
- "
- " When a :catch clause is left by a ":break" etc or an error or
- " interrupt exception, v:exception and v:throwpoint are reset. They
---- 5401,5407 ----
-
- "-------------------------------------------------------------------------------
- "
-! " Test 59: v:exception and v:throwpoint when discarding exceptions {{{1
- "
- " When a :catch clause is left by a ":break" etc or an error or
- " interrupt exception, v:exception and v:throwpoint are reset. They
-***************
-*** 5565,5571 ****
-
- "-------------------------------------------------------------------------------
- "
-! " Test 59: (Re)throwing v:exception; :echoerr. {{{1
- "
- " A user exception can be rethrown after catching by throwing
- " v:exception. An error or interrupt exception cannot be rethrown
---- 5712,5718 ----
-
- "-------------------------------------------------------------------------------
- "
-! " Test 60: (Re)throwing v:exception; :echoerr. {{{1
- "
- " A user exception can be rethrown after catching by throwing
- " v:exception. An error or interrupt exception cannot be rethrown
-***************
-*** 5721,5727 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 60: Catching interrupt exceptions {{{1
- "
- " When an interrupt occurs inside a :try/:endtry region, an
- " interrupt exception is thrown and can be caught. Its value is
---- 5868,5874 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 61: Catching interrupt exceptions {{{1
- "
- " When an interrupt occurs inside a :try/:endtry region, an
- " interrupt exception is thrown and can be caught. Its value is
-***************
-*** 5857,5863 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 61: Catching error exceptions {{{1
- "
- " An error inside a :try/:endtry region is converted to an exception
- " and can be caught. The error exception has a "Vim(cmdname):" prefix
---- 6004,6010 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 62: Catching error exceptions {{{1
- "
- " An error inside a :try/:endtry region is converted to an exception
- " and can be caught. The error exception has a "Vim(cmdname):" prefix
-***************
-*** 6093,6099 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 62: Suppressing error exceptions by :silent!. {{{1
- "
- " A :silent! command inside a :try/:endtry region suppresses the
- " conversion of errors to an exception and the immediate abortion on
---- 6240,6246 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 63: Suppressing error exceptions by :silent!. {{{1
- "
- " A :silent! command inside a :try/:endtry region suppresses the
- " conversion of errors to an exception and the immediate abortion on
-***************
-*** 6211,6217 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 63: Error exceptions after error, interrupt or :throw {{{1
- "
- " When an error occurs after an interrupt or a :throw but before
- " a matching :catch is reached, all following :catches of that try
---- 6358,6364 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 64: Error exceptions after error, interrupt or :throw {{{1
- "
- " When an error occurs after an interrupt or a :throw but before
- " a matching :catch is reached, all following :catches of that try
-***************
-*** 6379,6385 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 64: Errors in the /pattern/ argument of a :catch {{{1
- "
- " On an error in the /pattern/ argument of a :catch, the :catch does
- " not match. Any following :catches of the same :try/:endtry don't
---- 6526,6532 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 65: Errors in the /pattern/ argument of a :catch {{{1
- "
- " On an error in the /pattern/ argument of a :catch, the :catch does
- " not match. Any following :catches of the same :try/:endtry don't
-***************
-*** 6474,6480 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 65: Stop range :call on error, interrupt, or :throw {{{1
- "
- " When a function which is multiply called for a range since it
- " doesn't handle the range itself has an error in a command
---- 6621,6627 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 66: Stop range :call on error, interrupt, or :throw {{{1
- "
- " When a function which is multiply called for a range since it
- " doesn't handle the range itself has an error in a command
-***************
-*** 6572,6578 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 66: :throw accross :call command {{{1
- "
- " On a call command, an exception might be thrown when evaluating the
- " function name, during evaluation of the arguments, or when the
---- 6719,6725 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 67: :throw accross :call command {{{1
- "
- " On a call command, an exception might be thrown when evaluating the
- " function name, during evaluation of the arguments, or when the
-***************
-*** 6690,6696 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 67: :throw accross function calls in expressions {{{1
- "
- " On a function call within an expression, an exception might be
- " thrown when evaluating the function name, during evaluation of the
---- 6837,6843 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 68: :throw accross function calls in expressions {{{1
- "
- " On a function call within an expression, an exception might be
- " thrown when evaluating the function name, during evaluation of the
-***************
-*** 6799,6805 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 68: :throw accross :if, :elseif, :while {{{1
- "
- " On an :if, :elseif, or :while command, an exception might be thrown
- " during evaluation of the expression to test. The exception can be
---- 6946,6952 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 69: :throw accross :if, :elseif, :while {{{1
- "
- " On an :if, :elseif, or :while command, an exception might be thrown
- " during evaluation of the expression to test. The exception can be
-***************
-*** 6880,6886 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 69: :throw accross :return or :throw {{{1
- "
- " On a :return or :throw command, an exception might be thrown during
- " evaluation of the expression to return or throw, respectively. The
---- 7027,7033 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 70: :throw accross :return or :throw {{{1
- "
- " On a :return or :throw command, an exception might be thrown during
- " evaluation of the expression to return or throw, respectively. The
-***************
-*** 6998,7004 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 70: :throw accross :echo variants and :execute {{{1
- "
- " On an :echo, :echon, :echomsg, :echoerr, or :execute command, an
- " exception might be thrown during evaluation of the arguments to
---- 7145,7151 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 71: :throw accross :echo variants and :execute {{{1
- "
- " On an :echo, :echon, :echomsg, :echoerr, or :execute command, an
- " exception might be thrown during evaluation of the arguments to
-***************
-*** 7105,7111 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 71: :throw accross :let or :unlet {{{1
- "
- " On a :let command, an exception might be thrown during evaluation
- " of the expression to assign. On an :let or :unlet command, the
---- 7252,7258 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 72: :throw accross :let or :unlet {{{1
- "
- " On a :let command, an exception might be thrown during evaluation
- " of the expression to assign. On an :let or :unlet command, the
-***************
-*** 7264,7270 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 72: :throw accross :function, :delfunction {{{1
- "
- " The :function and :delfunction commands may cause an expression
- " specified in braces to be evaluated. During evaluation, an
---- 7411,7417 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 73: :throw accross :function, :delfunction {{{1
- "
- " The :function and :delfunction commands may cause an expression
- " specified in braces to be evaluated. During evaluation, an
-***************
-*** 7368,7374 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 73: :throw accross builtin functions and commands {{{1
- "
- " Some functions like exists(), searchpair() take expression
- " arguments, other functions or commands like substitute() or
---- 7515,7521 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 74: :throw accross builtin functions and commands {{{1
- "
- " Some functions like exists(), searchpair() take expression
- " arguments, other functions or commands like substitute() or
-***************
-*** 7567,7573 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 74: Errors in builtin functions. {{{1
- "
- " On an error in a builtin function called inside a :try/:endtry
- " region, the evaluation of the expression calling that function and
---- 7714,7720 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 75: Errors in builtin functions. {{{1
- "
- " On an error in a builtin function called inside a :try/:endtry
- " region, the evaluation of the expression calling that function and
-***************
-*** 7748,7754 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 75: Errors, interupts, :throw during expression evaluation {{{1
- "
- " When a function call made during expression evaluation is aborted
- " due to an error inside a :try/:endtry region or due to an interrupt
---- 7895,7901 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 76: Errors, interupts, :throw during expression evaluation {{{1
- "
- " When a function call made during expression evaluation is aborted
- " due to an error inside a :try/:endtry region or due to an interrupt
-***************
-*** 7798,7811 ****
-
- let v:errmsg = ""
-
-- " Vim bug: functions cannot be defined inside while loops. Use workaround:
-- function! WA_t5()
-- endfunction
-- " Vim bug: functions using {} names cannot be defined inside functions. Use
-- " workaround:
-- let WA_t5 = MakeScript("WA_t5")
-- exec '!echo "function F{ERR(5) + CONT(5)}()" >>' . WA_t5
-- exec '!echo "endfunction" >> ' . WA_t5
- try
- let t = 1
- XloopINIT 1 2
---- 7945,7950 ----
-***************
-*** 7821,7829 ****
- elseif t == 4
- unlet v{ERR(t) + CONT(t)}
- elseif t == 5
-! "function F{ERR(t) + CONT(t)}()
-! "endfunction
-! exec "source" WA_t5
- elseif t == 6
- function F{ERR(t) + CONT(t)}
- elseif t == 7
---- 7960,7967 ----
- elseif t == 4
- unlet v{ERR(t) + CONT(t)}
- elseif t == 5
-! function F{ERR(t) + CONT(t)}()
-! endfunction
- elseif t == 6
- function F{ERR(t) + CONT(t)}
- elseif t == 7
-***************
-*** 7852,7865 ****
- Xout v:exception "in" ExtraVimThrowpoint()
- endtry
-
-- " Vim bug: functions cannot be defined inside while loops. Use workaround:
-- function! WA_t14()
-- endfunction
-- " Vim bug: functions using {} names cannot be defined inside functions. Use
-- " workaround:
-- let WA_t14 = MakeScript("WA_t14")
-- exec '!echo "function F{INT(14) + CONT(14)}()" >>' . WA_t14
-- exec '!echo "endfunction" >> ' . WA_t14
- try
- let t = 10
- XloopINIT 1024 2
---- 7990,7995 ----
-***************
-*** 7875,7883 ****
- elseif t == 13
- unlet v{INT(t) + CONT(t)}
- elseif t == 14
-! "function F{INT(t) + CONT(t)}()
-! "endfunction
-! exec "source" WA_t14
- elseif t == 15
- function F{INT(t) + CONT(t)}
- elseif t == 16
---- 8005,8012 ----
- elseif t == 13
- unlet v{INT(t) + CONT(t)}
- elseif t == 14
-! function F{INT(t) + CONT(t)}()
-! endfunction
- elseif t == 15
- function F{INT(t) + CONT(t)}
- elseif t == 16
-***************
-*** 7903,7916 ****
- Xout v:exception "in" ExtraVimThrowpoint()
- endtry
-
-- " Vim bug: functions cannot be defined inside while loops. Use workaround:
-- function! WA_t23()
-- endfunction
-- " Vim bug: functions using {} names cannot be defined inside functions. Use
-- " workaround:
-- let WA_t23 = MakeScript("WA_t23")
-- exec '!echo "function F{THR(23) + CONT(23)}()" >>' . WA_t23
-- exec '!echo "endfunction" >> ' . WA_t23
- try
- let t = 19
- XloopINIT 1048576 2
---- 8032,8037 ----
-***************
-*** 7926,7934 ****
- elseif t == 22
- unlet v{THR(t) + CONT(t)}
- elseif t == 23
-! "function F{THR(t) + CONT(t)}()
-! "endfunction
-! exec "source" WA_t23
- elseif t == 24
- function F{THR(t) + CONT(t)}
- elseif t == 25
---- 8047,8054 ----
- elseif t == 22
- unlet v{THR(t) + CONT(t)}
- elseif t == 23
-! function F{THR(t) + CONT(t)}()
-! endfunction
- elseif t == 24
- function F{THR(t) + CONT(t)}
- elseif t == 25
-***************
-*** 8034,8040 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 76: Errors, interupts, :throw in name{brace-expression} {{{1
- "
- " When a function call made during evaluation of an expression in
- " braces as part of a function name after ":function" is aborted due
---- 8154,8160 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 77: Errors, interupts, :throw in name{brace-expression} {{{1
- "
- " When a function call made during evaluation of an expression in
- " braces as part of a function name after ":function" is aborted due
-***************
-*** 8046,8053 ****
- " called and deleted.
- "-------------------------------------------------------------------------------
-
-- " Get this right:
--
- XpathINIT
-
- XloopINIT 1 4
---- 8166,8171 ----
-***************
-*** 8164,8170 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 77: Messages on parsing errors in expression evaluation {{{1
- "
- " When an expression evaluation detects a parsing error, an error
- " message is given and converted to an exception, and the expression
---- 8282,8288 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 78: Messages on parsing errors in expression evaluation {{{1
- "
- " When an expression evaluation detects a parsing error, an error
- " message is given and converted to an exception, and the expression
-***************
-*** 8207,8220 ****
- let v:errmsg = ""
- XloopINIT 1 2
-
-- " Vim bug: functions cannot be defined inside while loops. Use workaround:
-- function! WA_t5()
-- endfunction
-- " Vim bug: functions using {} names cannot be defined inside functions. Use
-- " workaround:
-- let WA_t5 = MakeScript("WA_t5")
-- exec '!echo "function F{novar + CONT(5)}()" >>' . WA_t5
-- exec '!echo "endfunction" >> ' . WA_t5
- try
- let t = 1
- while t <= 14
---- 8325,8330 ----
-***************
-*** 8231,8239 ****
- elseif t == 4
- unlet v{novar + CONT(t)}
- elseif t == 5
-! "function F{novar + CONT(t)}()
-! "endfunction
-! exec "source" WA_t5
- elseif t == 6
- function F{novar + CONT(t)}
- elseif t == 7
---- 8341,8348 ----
- elseif t == 4
- unlet v{novar + CONT(t)}
- elseif t == 5
-! function F{novar + CONT(t)}()
-! endfunction
- elseif t == 6
- function F{novar + CONT(t)}
- elseif t == 7
-***************
-*** 8353,8359 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 78: Throwing one of several errors for the same command {{{1
- "
- " When several errors appear in a row (for instance during expression
- " evaluation), the first as the most specific one is used when
---- 8462,8468 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 79: Throwing one of several errors for the same command {{{1
- "
- " When several errors appear in a row (for instance during expression
- " evaluation), the first as the most specific one is used when
-***************
-*** 8548,8554 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 79: Syntax error in expression for illegal :elseif {{{1
- "
- " If there is a syntax error in the expression after an illegal
- " :elseif, an error message is given (or an error exception thrown)
---- 8657,8663 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 80: Syntax error in expression for illegal :elseif {{{1
- "
- " If there is a syntax error in the expression after an illegal
- " :elseif, an error message is given (or an error exception thrown)
-***************
-*** 8733,8739 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 80: Discarding exceptions after an error or interrupt {{{1
- "
- " When an exception is thrown from inside a :try conditional without
- " :catch and :finally clauses and an error or interrupt occurs before
---- 8842,8848 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 81: Discarding exceptions after an error or interrupt {{{1
- "
- " When an exception is thrown from inside a :try conditional without
- " :catch and :finally clauses and an error or interrupt occurs before
-***************
-*** 8779,8785 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 81: Ignoring :catch clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the matching :catch clause is reached, the exception is discarded
---- 8888,8894 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 82: Ignoring :catch clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the matching :catch clause is reached, the exception is discarded
-***************
-*** 8887,8893 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 82: Executing :finally clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the :finally of the innermost :try is reached, the exception is
---- 8996,9002 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 83: Executing :finally clauses after an error or interrupt {{{1
- "
- " When an exception is thrown and an error or interrupt occurs before
- " the :finally of the innermost :try is reached, the exception is
-***************
-*** 8937,8943 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 83: Exceptions in autocommand sequences. {{{1
- "
- " When an exception occurs in a sequence of autocommands for
- " a specific event, the rest of the sequence is not executed. The
---- 9046,9052 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 84: Exceptions in autocommand sequences. {{{1
- "
- " When an exception occurs in a sequence of autocommands for
- " a specific event, the rest of the sequence is not executed. The
-***************
-*** 9112,9118 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 84: Error exceptions in autocommands for I/O command events {{{1
- "
- " When an I/O command is inside :try/:endtry, autocommands to be
- " executed after it should be skipped on an error (exception) in the
---- 9221,9227 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 85: Error exceptions in autocommands for I/O command events {{{1
- "
- " When an I/O command is inside :try/:endtry, autocommands to be
- " executed after it should be skipped on an error (exception) in the
-***************
-*** 9359,9365 ****
-
-
- "-------------------------------------------------------------------------------
-! " Test 85: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
---- 9468,9474 ----
-
-
- "-------------------------------------------------------------------------------
-! " Test 86: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
-*** ../vim-6.2.237/src/version.c Thu Feb 5 15:28:32 2004
---- src/version.c Thu Feb 5 15:52:53 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 238,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-40. You tell the cab driver you live at
- http://123.elm.street/house/bluetrim.html
-41. You actually try that 123.elm.street address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.239
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.239
-Problem: GTK 2: With closed folds the arrow buttons of a vertical scrollbar
- often doesn't scroll. (Moshe Kaminsky)
-Solution: Hackish solution: Detect that the button was pressed from the
- mouse pointer position.
-Files: src/gui_gtk.c, src/gui.c
-
-
-*** ../vim-6.2.238/src/gui_gtk.c Sun Jan 11 12:45:02 2004
---- src/gui_gtk.c Fri Feb 6 15:22:50 2004
-***************
-*** 1103,1117 ****
- * working in later GTK versions.
- *
- * FIXME: Well, it doesn't work in GTK2. :)
-! * OK, I experimented with GTK_WIDGET_HAS_GRAB() and it seemed to work
-! * to some extent. But simply setting dragging = TRUE all the time
-! * seems to work better :/ We also need to #define USE_ON_FLY_SCROLL
-! * for GTK+ 2, thus things do work substantially different.
- */
- if (sb != NULL)
- {
- #ifdef HAVE_GTK2
- dragging = TRUE;
- #else
- dragging = (GTK_RANGE(sb->id)->scroll_type == GTK_SCROLL_NONE);
- #endif
---- 1108,1149 ----
- * working in later GTK versions.
- *
- * FIXME: Well, it doesn't work in GTK2. :)
-! * HACK: Get the mouse pointer position, if it appears to be on an arrow
-! * button set "dragging" to FALSE. This assumes square buttons!
- */
- if (sb != NULL)
- {
- #ifdef HAVE_GTK2
- dragging = TRUE;
-+
-+ if (sb->wp != NULL)
-+ {
-+ int x;
-+ int y;
-+ GdkModifierType state;
-+ int width;
-+ int height;
-+
-+ /* vertical scrollbar: need to set "dragging" properly in case
-+ * there are closed folds. */
-+ gdk_window_get_pointer(sb->id->window, &x, &y, &state);
-+ gdk_window_get_size(sb->id->window, &width, &height);
-+ if (x >= 0 && x < width && y >= 0 && y < height)
-+ {
-+ if (y < width)
-+ {
-+ /* up arrow: move one (closed fold) line up */
-+ dragging = FALSE;
-+ value = sb->wp->w_topline - 2;
-+ }
-+ else if (y > height - width)
-+ {
-+ /* down arrow: move one (closed fold) line down */
-+ dragging = FALSE;
-+ value = sb->wp->w_topline;
-+ }
-+ }
-+ }
- #else
- dragging = (GTK_RANGE(sb->id)->scroll_type == GTK_SCROLL_NONE);
- #endif
-*** ../vim-6.2.238/src/gui.c Sun Jan 25 20:45:55 2004
---- src/gui.c Thu Feb 5 20:15:58 2004
-***************
-*** 3294,3300 ****
---- 3294,3307 ----
- gui.dragged_wp = sb->wp;
- }
- else
-+ {
- gui.dragged_sb = SBAR_NONE;
-+ #ifdef HAVE_GTK2
-+ /* Keep the "dragged_wp" value until after the scrolling, for when the
-+ * moust button is released. GTK2 doesn't send the button-up event. */
-+ gui.dragged_wp = NULL;
-+ #endif
-+ }
-
- /* Vertical sbar info is kept in the first sbar (the left one) */
- if (sb->wp != NULL)
-*** ../vim-6.2.238/src/version.c Thu Feb 5 16:04:27 2004
---- src/version.c Fri Feb 6 19:17:11 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 239,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-63. You start using smileys in your snail mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.240
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.240
-Problem: GTK 2: Searching for bitmaps for the toolbar doesn't work as with
- other systems. Need to explicitly use "icon=name". (Ned Konz,
- Christian J. Robinson)
-Solution: Search for icons like done for Motif.
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.239/src/gui_gtk.c Fri Feb 6 19:19:20 2004
---- src/gui_gtk.c Fri Feb 6 15:22:50 2004
-***************
-*** 266,301 ****
- }
-
- static GtkWidget *
-! create_menu_icon(vimmenu_T *menu, GtkIconSize icon_size)
- {
-! GtkWidget *image = NULL;
-
-! if (menu->iconfile != NULL)
-! {
-! char_u buf[MAXPATHL];
-
-! if (lookup_menu_iconfile(menu->iconfile, buf))
-! {
-! GtkIconSet *icon_set;
-! GtkIconSource *icon_source;
-! /*
-! * Rather than loading the icon directly into a GtkImage, create
-! * a new GtkIconSet and put it in there. This way we can easily
-! * scale the toolbar icons on the fly when needed.
-! */
-! icon_set = gtk_icon_set_new();
-! icon_source = gtk_icon_source_new();
-
-! gtk_icon_source_set_filename(icon_source, (const char *)buf);
-! gtk_icon_set_add_source(icon_set, icon_source);
-
-! image = gtk_image_new_from_icon_set(icon_set, icon_size);
-
-! gtk_icon_source_free(icon_source);
-! gtk_icon_set_unref(icon_set);
-! }
-! }
-
- if (image == NULL)
- {
- const char *stock_id;
---- 260,306 ----
- }
-
- static GtkWidget *
-! load_menu_iconfile(char_u *name, GtkIconSize icon_size)
- {
-! GtkWidget *image = NULL;
-! GtkIconSet *icon_set;
-! GtkIconSource *icon_source;
-
-! /*
-! * Rather than loading the icon directly into a GtkImage, create
-! * a new GtkIconSet and put it in there. This way we can easily
-! * scale the toolbar icons on the fly when needed.
-! */
-! icon_set = gtk_icon_set_new();
-! icon_source = gtk_icon_source_new();
-
-! gtk_icon_source_set_filename(icon_source, (const char *)name);
-! gtk_icon_set_add_source(icon_set, icon_source);
-
-! image = gtk_image_new_from_icon_set(icon_set, icon_size);
-
-! gtk_icon_source_free(icon_source);
-! gtk_icon_set_unref(icon_set);
-
-! return image;
-! }
-!
-! static GtkWidget *
-! create_menu_icon(vimmenu_T *menu, GtkIconSize icon_size)
-! {
-! GtkWidget *image = NULL;
-! char_u buf[MAXPATHL];
-
-+ /* First use a specified "icon=" argument. */
-+ if (menu->iconfile != NULL && lookup_menu_iconfile(menu->iconfile, buf))
-+ image = load_menu_iconfile(buf, icon_size);
-+
-+ /* If not found and not builtin specified try using the menu name. */
-+ if (image == NULL && !menu->icon_builtin
-+ && lookup_menu_iconfile(menu->name, buf))
-+ image = load_menu_iconfile(buf, icon_size);
-+
-+ /* Still not found? Then use a builtin icon, a blank one as fallback. */
- if (image == NULL)
- {
- const char *stock_id;
-*** ../vim-6.2.239/src/version.c Fri Feb 6 19:19:20 2004
---- src/version.c Fri Feb 6 19:21:30 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 240,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-64. The remote to the T.V. is missing...and you don't even care.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.241
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.241
-Problem: GTK 2: Search and Search/Replace dialogs are synced, that makes no
- sense. Buttons are sometimes greyed-out. (Jeremy Messenger)
-Solution: Remove the code to sync the two dialogs. Adjust the code to react
- to an empty search string to also work for GTK2. (David Necas)
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.240/src/gui_gtk.c Fri Feb 6 19:22:46 2004
---- src/gui_gtk.c Fri Feb 6 15:22:50 2004
-***************
-*** 170,183 ****
- #endif /* HAVE_GTK2 */
-
- static void entry_activate_cb(GtkWidget *widget, gpointer data);
-- #ifndef HAVE_GTK2 /* crack alert! */
- static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
-- #endif
-- static void find_direction_cb(GtkWidget *widget, gpointer data);
- static void find_replace_cb(GtkWidget *widget, gpointer data);
-- static void wword_match_cb(GtkWidget *widget, gpointer data);
-- static void mcase_match_cb(GtkWidget *widget, gpointer data);
-- static void repl_dir_cb(GtkWidget *widget, gpointer data);
-
- #if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)
- /*
---- 170,177 ----
-***************
-*** 2514,2523 ****
- sensitive = (entry_text != NULL && entry_text[0] != NUL);
- if (entry_text != NULL)
- gtk_entry_set_text(GTK_ENTRY(frdp->what), (char *)entry_text);
-- #ifndef HAVE_GTK2
- gtk_signal_connect(GTK_OBJECT(frdp->what), "changed",
- GTK_SIGNAL_FUNC(entry_changed_cb), frdp->dialog);
-- #endif
- gtk_signal_connect_after(GTK_OBJECT(frdp->what), "key_press_event",
- GTK_SIGNAL_FUNC(find_key_press_event),
- (gpointer) frdp);
---- 2508,2515 ----
-***************
-*** 2561,2568 ****
- frdp->wword = gtk_check_button_new_with_label(CONV(_("Match whole word only")));
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->wword),
- (gboolean)wword);
-- gtk_signal_connect(GTK_OBJECT(frdp->wword), "clicked",
-- GTK_SIGNAL_FUNC(wword_match_cb), NULL);
- if (do_replace)
- gtk_table_attach(GTK_TABLE(table), frdp->wword, 0, 1023, 2, 3,
- GTK_FILL, GTK_EXPAND, 2, 2);
---- 2553,2558 ----
-***************
-*** 2574,2581 ****
- frdp->mcase = gtk_check_button_new_with_label(CONV(_("Match case")));
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->mcase),
- (gboolean)mcase);
-- gtk_signal_connect(GTK_OBJECT(frdp->mcase), "clicked",
-- GTK_SIGNAL_FUNC(mcase_match_cb), NULL);
- if (do_replace)
- gtk_table_attach(GTK_TABLE(table), frdp->mcase, 0, 1023, 3, 4,
- GTK_FILL, GTK_EXPAND, 2, 2);
---- 2564,2569 ----
-***************
-*** 2601,2610 ****
- gtk_radio_button_group(GTK_RADIO_BUTTON(frdp->up)),
- CONV(_("Down")));
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->down), TRUE);
-- gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked",
-- (do_replace) ? GTK_SIGNAL_FUNC(repl_dir_cb)
-- : GTK_SIGNAL_FUNC(find_direction_cb),
-- NULL);
- #ifdef HAVE_GTK2
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
- #endif
---- 2589,2594 ----
-***************
-*** 2850,2919 ****
- }
-
- /*
-- * The following are used to synchronize the direction setting
-- * between the search and the replace dialog.
-- */
-- /*ARGSUSED*/
-- static void
-- find_direction_cb(GtkWidget * widget, gpointer data)
-- {
-- gboolean direction_down = GTK_TOGGLE_BUTTON(widget)->active;
--
-- if (repl_widgets.dialog)
-- {
-- GtkWidget *w;
-- w = direction_down ? repl_widgets.down : repl_widgets.up;
--
-- if (!GTK_TOGGLE_BUTTON(w)->active)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(w), TRUE);
-- }
-- }
--
-- /*ARGSUSED*/
-- static void
-- repl_dir_cb(GtkWidget *widget, gpointer data)
-- {
-- gboolean direction_down = GTK_TOGGLE_BUTTON(widget)->active;
--
-- if (find_widgets.dialog)
-- {
-- GtkWidget *w;
-- w = direction_down ? find_widgets.down : find_widgets.up;
--
-- if (!GTK_TOGGLE_BUTTON(w)->active)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(w), TRUE);
-- }
-- }
--
-- /*ARGSUSED*/
-- static void
-- wword_match_cb(GtkWidget * widget, gpointer data)
-- {
-- gboolean active = GTK_TOGGLE_BUTTON(widget)->active;
--
-- if (find_widgets.dialog)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(find_widgets.wword),
-- active);
-- if (repl_widgets.dialog)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(repl_widgets.wword),
-- active);
-- }
--
-- /*ARGSUSED*/
-- static void
-- mcase_match_cb(GtkWidget * widget, gpointer data)
-- {
-- gboolean active = GTK_TOGGLE_BUTTON(widget)->active;
--
-- if (find_widgets.dialog)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(find_widgets.mcase),
-- active);
-- if (repl_widgets.dialog)
-- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(repl_widgets.mcase),
-- active);
-- }
--
-- /*
- * Syncing the find/replace dialogs on the fly is utterly useless crack,
- * and causes nothing but problems. Please tell me a use case for which
- * you'd need both a find dialog and a find/replace one at the same time,
---- 2834,2839 ----
-***************
-*** 2922,2928 ****
- * particularly evil incarnation of braindeadness, whatever; I'd much rather
- * see it extinguished from this planet. Thanks for listening. Sorry.
- */
-- #ifndef HAVE_GTK2
- static void
- entry_changed_cb(GtkWidget * entry, GtkWidget * dialog)
- {
---- 2842,2847 ----
-***************
-*** 2939,2969 ****
- if (dialog == find_widgets.dialog)
- {
- gtk_widget_set_sensitive(find_widgets.find, nonempty);
-- if (repl_widgets.dialog)
-- {
-- gtk_widget_set_sensitive(repl_widgets.find, nonempty);
-- gtk_widget_set_sensitive(repl_widgets.replace, nonempty);
-- gtk_widget_set_sensitive(repl_widgets.all, nonempty);
-- if (strcmp(entry_text,
-- gtk_entry_get_text(GTK_ENTRY(repl_widgets.what))))
-- gtk_entry_set_text(GTK_ENTRY(repl_widgets.what), entry_text);
-- }
- }
- if (dialog == repl_widgets.dialog)
- {
- gtk_widget_set_sensitive(repl_widgets.find, nonempty);
- gtk_widget_set_sensitive(repl_widgets.replace, nonempty);
- gtk_widget_set_sensitive(repl_widgets.all, nonempty);
-- if (find_widgets.dialog)
-- {
-- gtk_widget_set_sensitive(find_widgets.find, nonempty);
-- if (strcmp(entry_text,
-- gtk_entry_get_text(GTK_ENTRY(find_widgets.what))))
-- gtk_entry_set_text(GTK_ENTRY(find_widgets.what), entry_text);
-- }
- }
- }
-- #endif
-
- /*
- * ":helpfind"
---- 2858,2872 ----
- if (dialog == find_widgets.dialog)
- {
- gtk_widget_set_sensitive(find_widgets.find, nonempty);
- }
-+
- if (dialog == repl_widgets.dialog)
- {
- gtk_widget_set_sensitive(repl_widgets.find, nonempty);
- gtk_widget_set_sensitive(repl_widgets.replace, nonempty);
- gtk_widget_set_sensitive(repl_widgets.all, nonempty);
- }
- }
-
- /*
- * ":helpfind"
-*** ../vim-6.2.240/src/version.c Fri Feb 6 19:22:46 2004
---- src/version.c Fri Feb 6 19:29:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 241,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-65. The last time you looked at the clock it was 11:30pm, and in what
- seems like only a few seconds later, your sister runs past you to
- catch her 7am school bus.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.242
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.242
-Problem: Gnome: "vim --help" only shows the Gnome arguments, not the Vim
- arguments.
-Solution: Don't let the Gnome code remove the "--help" argument and don't
- exit at the end of usage().
-Files: src/gui_gtk_x11.c, src/main.c
-
-
-*** ../vim-6.2.241/src/gui_gtk_x11.c Thu Feb 5 15:28:32 2004
---- src/gui_gtk_x11.c Fri Feb 6 16:42:40 2004
-***************
-*** 298,303 ****
---- 298,305 ----
- #define ARG_NEEDS_GUI 0x0200 /* need to initialize the GUI for this */
- #define ARG_FOR_GTK 0x0400 /* argument is handled by GTK+ or GNOME */
- #define ARG_COMPAT_LONG 0x0800 /* accept -foo but substitute with --foo */
-+ #define ARG_KEEP 0x1000 /* don't remove argument from argv[] */
-+
- /*
- * This table holds all the X GUI command line options allowed. This includes
- * the standard ones so that we can skip them when Vim is started without the
-***************
-*** 379,385 ****
- {"--disable-sound", ARG_FOR_GTK},
- {"--espeaker", ARG_FOR_GTK|ARG_HAS_VALUE},
- {"-?", ARG_FOR_GTK|ARG_NEEDS_GUI},
-! {"--help", ARG_FOR_GTK|ARG_NEEDS_GUI},
- {"--usage", ARG_FOR_GTK|ARG_NEEDS_GUI},
- # if 0 /* conflicts with Vim's own --version argument */
- {"--version", ARG_FOR_GTK|ARG_NEEDS_GUI},
---- 381,387 ----
- {"--disable-sound", ARG_FOR_GTK},
- {"--espeaker", ARG_FOR_GTK|ARG_HAS_VALUE},
- {"-?", ARG_FOR_GTK|ARG_NEEDS_GUI},
-! {"--help", ARG_FOR_GTK|ARG_NEEDS_GUI|ARG_KEEP},
- {"--usage", ARG_FOR_GTK|ARG_NEEDS_GUI},
- # if 0 /* conflicts with Vim's own --version argument */
- {"--version", ARG_FOR_GTK|ARG_NEEDS_GUI},
-***************
-*** 560,586 ****
- if (option->flags & ARG_NEEDS_GUI)
- gui.starting = TRUE;
-
-! /* Now remove the flag from the argument vector. */
-! if (--*argc > i)
- {
-! int n_strip = 1;
-!
-! /* Move the argument's value as well, if there is one. */
-! if ((option->flags & ARG_HAS_VALUE)
-! && argv[i][len] != '='
-! && strcmp(argv[i + 1], "--") != 0)
- {
-! ++n_strip;
-! --*argc;
-! if (option->flags & ARG_FOR_GTK)
-! gui_argv[gui_argc++] = argv[i + 1];
-! }
-
-! if (*argc > i)
-! mch_memmove(&argv[i], &argv[i + n_strip],
-! (*argc - i) * sizeof(char *));
- }
-- argv[*argc] = NULL;
- }
-
- gui_argv[gui_argc] = NULL;
---- 562,593 ----
- if (option->flags & ARG_NEEDS_GUI)
- gui.starting = TRUE;
-
-! if (option->flags & ARG_KEEP)
-! ++i;
-! else
- {
-! /* Remove the flag from the argument vector. */
-! if (--*argc > i)
- {
-! int n_strip = 1;
-
-! /* Move the argument's value as well, if there is one. */
-! if ((option->flags & ARG_HAS_VALUE)
-! && argv[i][len] != '='
-! && strcmp(argv[i + 1], "--") != 0)
-! {
-! ++n_strip;
-! --*argc;
-! if (option->flags & ARG_FOR_GTK)
-! gui_argv[gui_argc++] = argv[i + 1];
-! }
-!
-! if (*argc > i)
-! mch_memmove(&argv[i], &argv[i + n_strip],
-! (*argc - i) * sizeof(char *));
-! }
-! argv[*argc] = NULL;
- }
- }
-
- gui_argv[gui_argc] = NULL;
-*** ../vim-6.2.241/src/main.c Mon Feb 2 10:03:01 2004
---- src/main.c Fri Feb 6 16:57:13 2004
-***************
-*** 662,667 ****
---- 662,671 ----
- break;
-
- case 'h': /* "-h" give help message */
-+ #ifdef FEAT_GUI_GNOME
-+ /* Tell usage() to exit for "gvim". */
-+ gui.starting = FALSE;
-+ #endif
- usage();
- break;
-
-***************
-*** 2558,2568 ****
- main_msg(_("--role <role>\tSet a unique role to identify the main window"));
- # endif
- main_msg(_("--socketid <xid>\tOpen Vim inside another GTK widget"));
-- # ifdef FEAT_GUI_GNOME
-- main_msg(_("--help\t\tShow Gnome arguments"));
-- # endif
- #endif
-! mch_exit(0);
- }
-
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
---- 2572,2586 ----
- main_msg(_("--role <role>\tSet a unique role to identify the main window"));
- # endif
- main_msg(_("--socketid <xid>\tOpen Vim inside another GTK widget"));
- #endif
-!
-! #ifdef FEAT_GUI_GNOME
-! /* Gnome gives extra messages for --help if we continue, but not for -h. */
-! if (gui.starting)
-! mch_msg("\n");
-! else
-! #endif
-! mch_exit(0);
- }
-
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
-*** ../vim-6.2.241/src/version.c Fri Feb 6 19:31:57 2004
---- src/version.c Fri Feb 6 19:33:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 242,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-66. You create a homepage with the impression to cure the afflicted...but
- your hidden agenda is to receive more e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.243 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.243 (extra)
-Problem: Mac: Dropping a file on a Vim icon causes a hit-enter prompt.
-Solution: Move the dropped files to the global argument list, instead of the
- usual drop handling. (Eckehard Berns)
-Files: src/main.c, src/gui_mac.c
-
-
-*** ../vim-6.2.242/src/main.c Fri Feb 6 19:35:39 2004
---- src/main.c Sat Feb 7 18:30:04 2004
-***************
-*** 1535,1540 ****
---- 1546,1553 ----
- * This seems to be required to make callbacks to be called now, instead
- * of after things have been put on the screen, which then may be deleted
- * when getting a resize callback.
-+ * For the Mac this handles putting files dropped on the Vim icon to
-+ * global_alist.
- */
- if (gui.in_use)
- {
-*** ../vim-6.2.242/src/gui_mac.c Sun Jan 25 20:45:55 2004
---- src/gui_mac.c Fri Feb 6 20:36:38 2004
-***************
-*** 1162,1167 ****
---- 1162,1186 ----
- return (error);
- }
-
-+ #ifdef MACOS_X_UNIX
-+ if (starting > 0)
-+ {
-+ int i;
-+ char_u *p;
-+
-+ /* these are the initial files dropped on the Vim icon */
-+ for (i = 0 ; i < numFiles; i++)
-+ {
-+ if (ga_grow(&global_alist.al_ga, 1) == FAIL
-+ || (p = vim_strsave(fnames[i])) == NULL)
-+ mch_exit(2);
-+ else
-+ alist_add(&global_alist, p, 2);
-+ }
-+ goto finished;
-+ }
-+ #endif
-+
- /* Handle the drop, :edit to get to the file */
- handle_drop(numFiles, fnames, FALSE);
-
-***************
-*** 1188,1193 ****
---- 1207,1216 ----
- update_screen(NOT_VALID);
- setcursor();
- out_flush();
-+
-+ #ifdef MACOS_X_UNIX
-+ finished:
-+ #endif
-
- AEDisposeDesc(&theList); /* dispose what we allocated */
-
-*** ../vim-6.2.242/src/version.c Fri Feb 6 19:35:39 2004
---- src/version.c Sun Feb 8 14:37:59 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 243,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-83. Batteries in the TV remote now last for months.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.244
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.244
-Problem: ':echo "\xf7"' displays the illegal byte as if it was a character
- and leaves "cho" after it.
-Solution: When checking the length of a UTF-8 byte sequence and it's shorter
- than the number of bytes available, assume it's an illegal byte.
-Files: src/mbyte.c
-
-
-*** ../vim-6.2.243/src/mbyte.c Sun Jan 11 12:45:02 2004
---- src/mbyte.c Sun Feb 8 15:12:29 2004
-***************
-*** 1442,1448 ****
- if (*p == NUL)
- return 1;
- len = utf8len_tab[*p];
-! for (i = 1; i < len && i < size; ++i)
- if ((p[i] & 0xc0) != 0x80)
- return 1;
- return len;
---- 1442,1450 ----
- if (*p == NUL)
- return 1;
- len = utf8len_tab[*p];
-! if (len > size)
-! return 1; /* Probably illegal byte sequence. */
-! for (i = 1; i < len; ++i)
- if ((p[i] & 0xc0) != 0x80)
- return 1;
- return len;
-*** ../vim-6.2.243/src/version.c Sun Feb 8 14:41:05 2004
---- src/version.c Sun Feb 8 15:10:55 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 244,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-84. Books in your bookcase bear the names Bongo, WinSock and Inside OLE
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.245
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.245
-Problem: Completion doesn't work for ":keepmarks" and ":lockmarks".
-Solution: Add the command modifiers to the table of commands. (Madoka
- Machitani)
-Files: src/ex_cmds.h, src/ex_docmd.c
-
-
-*** ../vim-6.2.244/src/ex_cmds.h Sun Feb 1 20:08:40 2004
---- src/ex_cmds.h Sat Feb 7 18:10:50 2004
-***************
-*** 440,445 ****
---- 440,447 ----
- TRLBAR|CMDWIN),
- EX(CMD_k, "k", ex_mark,
- RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
-+ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
-+ NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_list, "list", ex_print,
- RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN),
- EX(CMD_last, "last", ex_last,
-***************
-*** 466,471 ****
---- 468,475 ----
- FILE1|TRLBAR),
- EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap,
- CMDWIN),
-+ EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier,
-+ NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_lunmap, "lunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_ls, "ls", buflist_list,
-*** ../vim-6.2.244/src/ex_docmd.c Thu Feb 5 16:04:26 2004
---- src/ex_docmd.c Sat Feb 7 18:22:26 2004
-***************
-*** 2351,2358 ****
---- 2351,2360 ----
- case CMD_ilist:
- case CMD_isearch:
- case CMD_isplit:
-+ case CMD_keepmarks:
- case CMD_leftabove:
- case CMD_let:
-+ case CMD_lockmarks:
- case CMD_match:
- case CMD_psearch:
- case CMD_return:
-***************
-*** 2844,2853 ****
- /*
- * Isolate the command and search for it in the command table.
- * Exceptions:
-! * - the 'k' command can directly be followed by any character.
- * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
- */
-! if (*cmd == 'k')
- {
- cmdidx = CMD_k;
- p = cmd + 1;
---- 2846,2856 ----
- /*
- * Isolate the command and search for it in the command table.
- * Exceptions:
-! * - the 'k' command can directly be followed by any character, but
-! * do accept "keepmarks".
- * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
- */
-! if (*cmd == 'k' && cmd[1] != 'e')
- {
- cmdidx = CMD_k;
- p = cmd + 1;
-***************
-*** 3184,3190 ****
---- 3187,3195 ----
- case CMD_folddoclosed:
- case CMD_folddoopen:
- case CMD_hide:
-+ case CMD_keepmarks:
- case CMD_leftabove:
-+ case CMD_lockmarks:
- case CMD_rightbelow:
- case CMD_silent:
- case CMD_topleft:
-*** ../vim-6.2.244/src/version.c Sun Feb 8 15:13:33 2004
---- src/version.c Sun Feb 8 17:06:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 245,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-85. Choice between paying Compuserve bill and paying for kids education
- is a no brainer -- although a bit painful for your kids.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.246
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.246
-Problem: Mac: Starting Vim from Finder doesn't show error messages.
-Solution: Recognize that output is being displayed by stderr being
- "/dev/console". (Eckehard Berns)
-Files: src/main.c, src/message.c
-
-
-*** ../vim-6.2.245/src/main.c Sun Feb 8 14:41:05 2004
---- src/main.c Sat Feb 7 18:30:04 2004
-***************
-*** 1160,1165 ****
---- 1160,1173 ----
- want_full_screen = FALSE;
- #endif
-
-+ #if defined(FEAT_GUI_MAC) && defined(MACOS_X_UNIX)
-+ /* When the GUI is started from Finder, need to display messages in a
-+ * message box. isatty(2) returns TRUE anyway, thus we need to check the
-+ * name to know we're not started from a terminal. */
-+ if (gui.starting && (!isatty(2) || strcmp("/dev/console", ttyname(2)) == 0))
-+ want_full_screen = FALSE;
-+ #endif
-+
- /*
- * mch_init() sets up the terminal (window) for use. This must be
- * done after resetting full_screen, otherwise it may move the cursor
-*** ../vim-6.2.245/src/message.c Mon Feb 2 12:53:51 2004
---- src/message.c Sat Feb 7 15:39:47 2004
-***************
-*** 2150,2159 ****
-
- #if (defined(UNIX) || defined(FEAT_GUI)) && !defined(ALWAYS_USE_GUI)
- /* On Unix use stderr if it's a tty.
-! * When not going to start the GUI also use stderr. */
- if (
- # ifdef UNIX
- isatty(2)
- # ifdef FEAT_GUI
- ||
- # endif
---- 2150,2164 ----
-
- #if (defined(UNIX) || defined(FEAT_GUI)) && !defined(ALWAYS_USE_GUI)
- /* On Unix use stderr if it's a tty.
-! * When not going to start the GUI also use stderr.
-! * On Mac, when started from Finder, stderr is the console. */
- if (
- # ifdef UNIX
-+ # ifdef MACOS_X_UNIX
-+ (isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
-+ # else
- isatty(2)
-+ # endif
- # ifdef FEAT_GUI
- ||
- # endif
-***************
-*** 2214,2223 ****
- #if (defined(UNIX) || defined(FEAT_GUI)) && !defined(ALWAYS_USE_GUI)
- /* On Unix use stdout if we have a tty. This allows "vim -h | more" and
- * uses mch_errmsg() when started from the desktop.
-! * When not going to start the GUI also use stdout. */
- if (
- # ifdef UNIX
- isatty(2)
- # ifdef FEAT_GUI
- ||
- # endif
---- 2219,2233 ----
- #if (defined(UNIX) || defined(FEAT_GUI)) && !defined(ALWAYS_USE_GUI)
- /* On Unix use stdout if we have a tty. This allows "vim -h | more" and
- * uses mch_errmsg() when started from the desktop.
-! * When not going to start the GUI also use stdout.
-! * On Mac, when started from Finder, stderr is the console. */
- if (
- # ifdef UNIX
-+ # ifdef MACOS_X_UNIX
-+ (isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
-+ # else
- isatty(2)
-+ # endif
- # ifdef FEAT_GUI
- ||
- # endif
-*** ../vim-6.2.245/src/version.c Sun Feb 8 17:07:07 2004
---- src/version.c Sun Feb 8 17:08:14 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 246,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.247
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.247 (after 6.2.193)
-Problem: When using a search pattern from the viminfo file the last
- character is replaced with a '/'.
-Solution: Store the separator character in the right place. (Kelvin Lee)
-Files: src/ex_getln.c
-
-
-*** ../vim-6.2.246/src/ex_getln.c Sun Jan 18 21:27:18 2004
---- src/ex_getln.c Mon Feb 9 10:20:37 2004
-***************
-*** 4764,4770 ****
- sep = val[1];
- --len;
- mch_memmove(val, val + 2, (size_t)len);
-! val[len + 1] = (sep == ' ' ? NUL : sep);
- }
- else
- {
---- 4766,4772 ----
- sep = val[1];
- --len;
- mch_memmove(val, val + 2, (size_t)len);
-! val[len] = (sep == ' ' ? NUL : sep);
- }
- else
- {
-*** ../vim-6.2.246/src/version.c Sun Feb 8 17:09:51 2004
---- src/version.c Mon Feb 9 10:26:51 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 247,
- /**/
-
---
-From "know your smileys":
- :-) Funny
- |-) Funny Oriental
- (-: Funny Australian
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.248
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.248
-Problem: GTK: When XIM is enabled normal "2" and keypad "2" cannot be
- distinguished.
-Solution: Detect that XIM changes the keypad key to the expected ASCII
- character and fall back to the non-XIM code. (Neil Bird)
-Files: src/gui_gtk_x11.c, src/mbyte.c, src/proto/mbyte.pro
-
-
-*** ../vim-6.2.247/src/gui_gtk_x11.c Fri Feb 6 19:35:39 2004
---- src/gui_gtk_x11.c Mon Feb 9 15:02:41 2004
-***************
-*** 937,943 ****
- #endif
-
- #ifdef FEAT_XIM
-! if (xim_queue_key_press_event(event))
- return TRUE;
- #endif
-
---- 937,943 ----
- #endif
-
- #ifdef FEAT_XIM
-! if (xim_queue_key_press_event(event, TRUE))
- return TRUE;
- #endif
-
-***************
-*** 1161,1167 ****
- * With the default IM for instance, you can enter any UCS code point
- * by holding down CTRL-SHIFT and typing hexadecimal digits.
- */
-! return xim_queue_key_press_event(event);
- }
- #endif
-
---- 1161,1167 ----
- * With the default IM for instance, you can enter any UCS code point
- * by holding down CTRL-SHIFT and typing hexadecimal digits.
- */
-! return xim_queue_key_press_event(event, FALSE);
- }
- #endif
-
-*** ../vim-6.2.247/src/mbyte.c Sun Feb 8 15:13:33 2004
---- src/mbyte.c Mon Feb 9 18:45:03 2004
-***************
-*** 3114,3119 ****
---- 3114,3122 ----
- add_to_input_buf(backkey, (int)sizeof(backkey));
- }
-
-+ static int xim_expected_char = NUL;
-+ static int xim_ignored_char = FALSE;
-+
- /*
- * Callback invoked when the user finished preediting.
- * Put the final string into the input buffer.
-***************
-*** 3122,3127 ****
---- 3125,3133 ----
- static void
- im_commit_cb(GtkIMContext *context, const gchar *str, gpointer data)
- {
-+ int slen = (int)strlen(str);
-+ int add_to_input = TRUE;
-+
- /* The imhangul module doesn't reset the preedit string before
- * committing. Call im_delete_preedit() to work around that. */
- im_delete_preedit();
-***************
-*** 3129,3135 ****
- /* Indicate that preediting has finished */
- preedit_start_col = MAXCOL;
-
-! im_add_to_input((char_u *)str, (int)strlen(str));
-
- if (gtk_main_level() > 0)
- gtk_main_quit();
---- 3135,3163 ----
- /* Indicate that preediting has finished */
- preedit_start_col = MAXCOL;
-
-! /* Is this a single character that matches a keypad key that's just
-! * been pressed? If so, we don't want it to be entered as such - let
-! * us carry on processing the raw keycode so that it may be used in
-! * mappings as <kSomething>
-! */
-! if (xim_expected_char != NUL)
-! {
-! /* We're currently processing a keypad or other special key */
-! if (slen == 1 && str[0] == xim_expected_char)
-! {
-! /* It's a match - don't do it here */
-! xim_ignored_char = TRUE;
-! add_to_input = FALSE;
-! }
-! else
-! {
-! /* Not a match */
-! xim_ignored_char = FALSE;
-! }
-! }
-!
-! if (add_to_input)
-! im_add_to_input((char_u *)str, slen);
-
- if (gtk_main_level() > 0)
- gtk_main_quit();
-***************
-*** 3556,3563 ****
- }
-
- int
-! xim_queue_key_press_event(GdkEventKey *event)
- {
- /*
- * When typing fFtT, XIM may be activated. Thus it must pass
- * gtk_im_context_filter_keypress() in Normal mode.
---- 3584,3626 ----
- }
-
- int
-! xim_queue_key_press_event(GdkEventKey *event, int down)
- {
-+ if (down)
-+ {
-+ /*
-+ * Workaround GTK2 XIM 'feature' that always converts keypad keys to
-+ * chars., even when not part of an IM sequence (ref. feature of
-+ * gdk/gdkkeyuni.c).
-+ * Flag any keypad keys that might represent a single char.
-+ * If this (on its own - i.e., not part of an IM sequence) is
-+ * committed while we're processing one of these keys, we can ignore
-+ * that commit and go ahead & process it ourselves. That way we can
-+ * still distinguish keypad keys for use in mappings.
-+ */
-+ switch (event->keyval)
-+ {
-+ case GDK_KP_Add: xim_expected_char = '+'; break;
-+ case GDK_KP_Subtract: xim_expected_char = '-'; break;
-+ case GDK_KP_Divide: xim_expected_char = '/'; break;
-+ case GDK_KP_Multiply: xim_expected_char = '*'; break;
-+ case GDK_KP_Decimal: xim_expected_char = '.'; break;
-+ case GDK_KP_Equal: xim_expected_char = '='; break;
-+ case GDK_KP_0: xim_expected_char = '0'; break;
-+ case GDK_KP_1: xim_expected_char = '1'; break;
-+ case GDK_KP_2: xim_expected_char = '2'; break;
-+ case GDK_KP_3: xim_expected_char = '3'; break;
-+ case GDK_KP_4: xim_expected_char = '4'; break;
-+ case GDK_KP_5: xim_expected_char = '5'; break;
-+ case GDK_KP_6: xim_expected_char = '6'; break;
-+ case GDK_KP_7: xim_expected_char = '7'; break;
-+ case GDK_KP_8: xim_expected_char = '8'; break;
-+ case GDK_KP_9: xim_expected_char = '9'; break;
-+ default: xim_expected_char = NUL;
-+ }
-+ xim_ignored_char = FALSE;
-+ }
-+
- /*
- * When typing fFtT, XIM may be activated. Thus it must pass
- * gtk_im_context_filter_keypress() in Normal mode.
-***************
-*** 3603,3609 ****
- * right now. Unlike with GTK+ 1.2 we cannot rely on the IM module
- * not doing anything before the activation key was sent. */
- if (im_activatekey_keyval == GDK_VoidSymbol || im_is_active)
-! return gtk_im_context_filter_keypress(xic, event);
- }
-
- return FALSE;
---- 3666,3683 ----
- * right now. Unlike with GTK+ 1.2 we cannot rely on the IM module
- * not doing anything before the activation key was sent. */
- if (im_activatekey_keyval == GDK_VoidSymbol || im_is_active)
-! {
-! int imresult = gtk_im_context_filter_keypress(xic, event);
-!
-! /* If XIM tried to commit a keypad key as a single char.,
-! * ignore it so we can use the keypad key 'raw', for mappings. */
-! if (xim_expected_char != NUL && xim_ignored_char)
-! /* We had a keypad key, and XIM tried to thieve it */
-! return FALSE;
-! else
-! /* Normal processing */
-! return imresult;
-! }
- }
-
- return FALSE;
-***************
-*** 4797,4804 ****
- }
- }
-
- int
-! xim_queue_key_press_event(GdkEventKey *event)
- {
- if (preedit_buf_len <= 0)
- return FALSE;
---- 4871,4879 ----
- }
- }
-
-+ /*ARGSUSED*/
- int
-! xim_queue_key_press_event(GdkEventKey *event, int down)
- {
- if (preedit_buf_len <= 0)
- return FALSE;
-*** ../vim-6.2.247/src/proto/mbyte.pro Sun Jun 1 12:26:16 2003
---- src/proto/mbyte.pro Mon Feb 9 15:02:04 2004
-***************
-*** 73,79 ****
- void xim_decide_input_style __ARGS((void));
- int im_get_feedback_attr __ARGS((int col));
- void xim_reset __ARGS((void));
-! int xim_queue_key_press_event __ARGS((GdkEventKey *event));
- void xim_init __ARGS((void));
- void im_shutdown __ARGS((void));
- int xim_get_status_area_height __ARGS((void));
---- 73,79 ----
- void xim_decide_input_style __ARGS((void));
- int im_get_feedback_attr __ARGS((int col));
- void xim_reset __ARGS((void));
-! int xim_queue_key_press_event __ARGS((GdkEventKey *event, int down));
- void xim_init __ARGS((void));
- void im_shutdown __ARGS((void));
- int xim_get_status_area_height __ARGS((void));
-*** ../vim-6.2.247/src/version.c Mon Feb 9 10:33:13 2004
---- src/version.c Mon Feb 9 18:42:45 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 248,
- /**/
-
---
-Warning label on a superhero Halloween costume:
-"Caution: Cape does not enable user to fly."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.249
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.249
-Problem: ":cnext" moves to the error in the next file, but there is no
- method to go back.
-Solution: Add ":cpfile" and ":cNfile".
-Files: src/ex_cmds.h, src/quickfix.c, src/vim.h, runtime/doc/quickfix.txt
-
-
-*** ../vim-6.2.248/src/ex_cmds.h Sun Feb 8 17:07:07 2004
---- src/ex_cmds.h Tue Feb 10 15:18:46 2004
-***************
-*** 180,185 ****
---- 180,187 ----
- BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_cNext, "cNext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
-+ EX(CMD_cNfile, "cNfile", ex_cnext,
-+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cabbrev, "cabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cabclear, "cabclear", ex_abclear,
-***************
-*** 251,256 ****
---- 253,260 ----
- EX(CMD_copen, "copen", ex_copen,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_cprevious, "cprevious", ex_cnext,
-+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
-+ EX(CMD_cpfile, "cpfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cquit, "cquit", ex_cquit,
- TRLBAR|BANG),
-*** ../vim-6.2.248/src/quickfix.c Mon Dec 29 20:21:49 2003
---- src/quickfix.c Tue Feb 10 15:24:52 2004
-***************
-*** 970,975 ****
---- 970,977 ----
- * jump to a quickfix line
- * if dir == FORWARD go "errornr" valid entries forward
- * if dir == BACKWARD go "errornr" valid entries backward
-+ * if dir == FORWARD_FILE go "errornr" valid entries files backward
-+ * if dir == BACKWARD_FILE go "errornr" valid entries files backward
- * else if "errornr" is zero, redisplay the same line
- * else go to entry "errornr"
- */
-***************
-*** 1044,1055 ****
- err = NULL;
- }
- }
-! else if (dir == BACKWARD) /* previous valid entry */
- {
- while (errornr--)
- {
- old_qf_ptr = qf_ptr;
- prev_index = qf_index;
- do
- {
- if (qf_index == 1 || qf_ptr->qf_prev == NULL)
---- 1046,1058 ----
- err = NULL;
- }
- }
-! else if (dir == BACKWARD || dir == BACKWARD_FILE) /* prev. valid entry */
- {
- while (errornr--)
- {
- old_qf_ptr = qf_ptr;
- prev_index = qf_index;
-+ old_qf_fnum = qf_ptr->qf_fnum;
- do
- {
- if (qf_index == 1 || qf_ptr->qf_prev == NULL)
-***************
-*** 1066,1072 ****
- }
- --qf_index;
- qf_ptr = qf_ptr->qf_prev;
-! } while (!qf_lists[qf_curlist].qf_nonevalid && !qf_ptr->qf_valid);
- err = NULL;
- }
- }
---- 1069,1076 ----
- }
- --qf_index;
- qf_ptr = qf_ptr->qf_prev;
-! } while ((!qf_lists[qf_curlist].qf_nonevalid && !qf_ptr->qf_valid)
-! || (dir == BACKWARD_FILE && qf_ptr->qf_fnum == old_qf_fnum));
- err = NULL;
- }
- }
-***************
-*** 2106,2112 ****
- ? FORWARD
- : eap->cmdidx == CMD_cnfile
- ? FORWARD_FILE
-! : BACKWARD,
- eap->addr_count > 0 ? (int)eap->line2 : 1, eap->forceit);
- }
-
---- 2110,2118 ----
- ? FORWARD
- : eap->cmdidx == CMD_cnfile
- ? FORWARD_FILE
-! : (eap->cmdidx == CMD_cpfile || eap->cmdidx == CMD_cNfile)
-! ? BACKWARD_FILE
-! : BACKWARD,
- eap->addr_count > 0 ? (int)eap->line2 : 1, eap->forceit);
- }
-
-*** ../vim-6.2.248/src/vim.h Mon Feb 2 12:53:51 2004
---- src/vim.h Tue Feb 10 15:22:15 2004
-***************
-*** 530,535 ****
---- 530,536 ----
- #define FORWARD 1
- #define BACKWARD (-1)
- #define FORWARD_FILE 3
-+ #define BACKWARD_FILE (-3)
-
- /* return values for functions */
- #if !(defined(OK) && (OK == 1))
-*** ../vim-6.2.248/runtime/doc/quickfix.txt Sun Jun 1 12:20:34 2003
---- runtime/doc/quickfix.txt Tue Feb 10 15:17:25 2004
-***************
-*** 1,4 ****
-! *quickfix.txt* For Vim version 6.2. Last change: 2003 May 30
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *quickfix.txt* For Vim version 6.2. Last change: 2004 Feb 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 70,75 ****
---- 70,82 ----
- the [count] next error. See |:cc| for [!] and
- 'switchbuf'.
-
-+ :[count]cNf[ile][!] *:cpf* *:cpfile* *:cNf* *:cNfile*
-+ :[count]cpf[ile][!] Display the last error in the [count] previous file in
-+ the list that includes a file name. If there are no
-+ file names at all or if there is no next file, go to
-+ the [count] previous error. See |:cc| for [!] and
-+ 'switchbuf'.
-+
- *:crewind* *:cr*
- :cr[ewind][!] [nr] Display error [nr]. If [nr] is omitted, the FIRST
- error is displayed. See |:cc|.
-*** ../vim-6.2.248/src/version.c Mon Feb 9 18:45:58 2004
---- src/version.c Tue Feb 10 19:31:39 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 249,
- /**/
-
---
-I AM THANKFUL...
-...for the taxes that I pay because it means that I am employed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.250
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.250
-Problem: Memory leaks when using signs. (Xavier de Gaye)
-Solution: Delete the list of signs when unloading a buffer.
-Files: src/buffer.c
-
-
-*** ../vim-6.2.249/src/buffer.c Sun Jan 18 20:58:01 2004
---- src/buffer.c Tue Feb 10 15:50:40 2004
-***************
-*** 55,60 ****
---- 55,65 ----
- # define dev_T unsigned
- #endif
-
-+ #if defined(FEAT_SIGNS)
-+ static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
-+ static void buf_delete_signs __ARGS((buf_T *buf));
-+ #endif
-+
- /*
- * Open current buffer, that is: open the memfile and read the file into memory
- * return FAIL for failure, OK otherwise
-***************
-*** 559,564 ****
---- 564,572 ----
- #ifdef FEAT_SYN_HL
- syntax_clear(buf); /* reset syntax info */
- #endif
-+ #ifdef FEAT_SIGNS
-+ buf_delete_signs(buf); /* delete any signs */
-+ #endif
- }
-
- /*
-***************
-*** 4557,4565 ****
-
-
- #if defined(FEAT_SIGNS) || defined(PROTO)
--
-- static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
--
- /*
- * Insert the sign into the signlist.
- */
---- 4565,4570 ----
-***************
-*** 4822,4845 ****
- # endif /* FEAT_NETBEANS_INTG */
-
-
- void
- buf_delete_all_signs()
- {
- buf_T *buf; /* buffer we are checking for signs */
-- signlist_T *sign; /* a sign in a b_signlist */
-- signlist_T *next; /* the next sign in a b_signlist */
-
- for (buf = firstbuf; buf != NULL; buf = buf->b_next)
- if (buf->b_signlist != NULL)
- {
- /* Need to redraw the windows to remove the sign column. */
- redraw_buf_later(buf, NOT_VALID);
-! for (sign = buf->b_signlist; sign != NULL; sign = next)
-! {
-! next = sign->next;
-! vim_free(sign);
-! }
-! buf->b_signlist = NULL;
- }
- }
-
---- 4827,4863 ----
- # endif /* FEAT_NETBEANS_INTG */
-
-
-+ /*
-+ * Delete signs in buffer "buf".
-+ */
-+ static void
-+ buf_delete_signs(buf)
-+ buf_T *buf;
-+ {
-+ signlist_T *next;
-+
-+ while (buf->b_signlist != NULL)
-+ {
-+ next = buf->b_signlist->next;
-+ vim_free(buf->b_signlist);
-+ buf->b_signlist = next;
-+ }
-+ }
-+
-+ /*
-+ * Delete all signs in all buffers.
-+ */
- void
- buf_delete_all_signs()
- {
- buf_T *buf; /* buffer we are checking for signs */
-
- for (buf = firstbuf; buf != NULL; buf = buf->b_next)
- if (buf->b_signlist != NULL)
- {
- /* Need to redraw the windows to remove the sign column. */
- redraw_buf_later(buf, NOT_VALID);
-! buf_delete_signs(buf);
- }
- }
-
-*** ../vim-6.2.249/src/version.c Tue Feb 10 19:35:15 2004
---- src/version.c Tue Feb 10 19:36:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 250,
- /**/
-
---
-I AM THANKFUL...
-...for the mess to clean after a party because it means I have
-been surrounded by friends.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.251
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.251
-Problem: GTK: The 'v' flag in 'guioptions' doesn't work. (Steve Hall)
- Order of buttons is reversed for GTK 2.2.4. Don't always get
- focus back after handling a dialog.
-Solution: Make buttons appear vertically when desired. Reverse the order in
- which buttons are added to a dialog. Move mouse pointer around
- when the dialog is done and we don't have focus.
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.250/src/gui_gtk.c Fri Feb 6 19:31:57 2004
---- src/gui_gtk.c Mon Feb 9 17:43:19 2004
-***************
-*** 2025,2030 ****
---- 2025,2044 ----
- button_string = vim_strsave(button_string); /* must be writable */
- if (button_string == NULL)
- return;
-+
-+ /* Check 'v' flag in 'guioptions': vertical button placement. */
-+ if (vim_strchr(p_go, GO_VERTICAL) != NULL)
-+ {
-+ GtkWidget *vbutton_box;
-+
-+ vbutton_box = gtk_vbutton_box_new();
-+ gtk_widget_show(vbutton_box);
-+ gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->vbox),
-+ vbutton_box, TRUE, FALSE, 0);
-+ /* Overrule the "action_area" value, hopefully this works... */
-+ GTK_DIALOG(dialog)->action_area = vbutton_box;
-+ }
-+
- /*
- * Yes this is ugly, I don't particularly like it either. But doing it
- * this way has the compelling advantage that translations need not to
-***************
-*** 2037,2044 ****
- /*
- * Yes, the buttons are in reversed order to match the GNOME 2 desktop
- * environment. Don't hit me -- it's all about consistency.
- */
-! for (index = n_buttons; index > 0; --index)
- {
- char *label;
- char_u *label8;
---- 2051,2060 ----
- /*
- * Yes, the buttons are in reversed order to match the GNOME 2 desktop
- * environment. Don't hit me -- it's all about consistency.
-+ * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the
-+ * other way around...
- */
-! for (index = 1; index <= n_buttons; ++index)
- {
- char *label;
- char_u *label8;
-***************
-*** 2165,2170 ****
---- 2181,2199 ----
- CONVERT_FROM_UTF8_FREE(text);
- }
- gtk_widget_destroy(dialog);
-+ }
-+
-+ /* Terrible hack: When the text area still has focus when we remove the
-+ * dialog, somehow gvim loses window focus. This is with "point to type"
-+ * in the KDE 3.1 window manager. Warp the mouse pointer to outside the
-+ * window and back to avoid that. */
-+ if (!gui.in_focus)
-+ {
-+ int x, y;
-+
-+ gdk_window_get_pointer(gui.drawarea->window, &x, &y, NULL);
-+ gui_mch_setmouse(-100, -100);
-+ gui_mch_setmouse(x, y);
- }
-
- return response > 0 ? response : 0;
-*** ../vim-6.2.250/src/version.c Tue Feb 10 19:38:20 2004
---- src/version.c Tue Feb 10 19:39:56 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 251,
- /**/
-
---
-I AM THANKFUL...
-...for the clothes that fit a little too snug because it
-means I have more than enough to eat.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.252 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.252 (extra, after 6.2.243)
-Problem: Mac: Dropping a file on a Vim icon causes a hit-enter prompt for
- Mac OS classic.
-Solution: Remove the #ifdef from the code that fixes it for Mac OSX.
-Files: src/gui_mac.c
-
-
-*** ../vim-6.2.251/src/gui_mac.c Sun Feb 8 14:41:05 2004
---- src/gui_mac.c Sun Feb 8 18:32:24 2004
-***************
-*** 1162,1168 ****
- return (error);
- }
-
-- #ifdef MACOS_X_UNIX
- if (starting > 0)
- {
- int i;
---- 1162,1167 ----
-***************
-*** 1179,1185 ****
- }
- goto finished;
- }
-- #endif
-
- /* Handle the drop, :edit to get to the file */
- handle_drop(numFiles, fnames, FALSE);
---- 1178,1183 ----
-***************
-*** 1208,1217 ****
- setcursor();
- out_flush();
-
-- #ifdef MACOS_X_UNIX
- finished:
-- #endif
--
- AEDisposeDesc(&theList); /* dispose what we allocated */
-
- error = HandleUnusedParms (theAEvent);
---- 1206,1212 ----
-*** ../vim-6.2.251/src/version.c Tue Feb 10 19:41:59 2004
---- src/version.c Tue Feb 10 19:43:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 252,
- /**/
-
---
-The primary purpose of the DATA statement is to give names to constants;
-instead of referring to pi as 3.141592653589793 at every appearance, the
-variable PI can be given that value with a DATA statement and used instead
-of the longer form of the constant. This also simplifies modifying the
-program, should the value of pi change.
- -- FORTRAN manual for Xerox Computers
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.253
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.253
-Problem: When 'tagstack' is not set a ":tag id" command does not work after
- a ":tjump" command.
-Solution: Set "new_tag" when 'tagstack' isn't set. (G. Narendran)
-Files: src/tag.c
-
-
-*** ../vim-6.2.252/src/tag.c Sun Jan 18 21:27:18 2004
---- src/tag.c Wed Feb 11 12:31:51 2004
-***************
-*** 186,191 ****
---- 186,192 ----
- if ((!p_tgst && *tag != NUL))
- {
- use_tagstack = FALSE;
-+ new_tag = TRUE;
- }
- else
- {
-*** ../vim-6.2.252/src/version.c Tue Feb 10 19:44:28 2004
---- src/version.c Wed Feb 11 14:39:42 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 253,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-96. On Super Bowl Sunday, you followed the score by going to the
- Yahoo main page instead of turning on the TV.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.254
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.254
-Problem: May run out of space for error messages.
-Solution: Keep room for two more bytes.
-Files: src/quickfix.c
-
-
-*** ../vim-6.2.253/src/quickfix.c Tue Feb 10 19:35:15 2004
---- src/quickfix.c Tue Feb 10 15:24:52 2004
-***************
-*** 405,413 ****
- * Read the lines in the error file one by one.
- * Try to recognize one of the error formats in each line.
- */
-! while (fgets((char *)IObuff, CMDBUFFSIZE, fd) != NULL && !got_int)
- {
-! IObuff[CMDBUFFSIZE] = NUL; /* for very long lines */
- if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
- *efmp = NUL;
- #ifdef USE_CRNL
---- 405,413 ----
- * Read the lines in the error file one by one.
- * Try to recognize one of the error formats in each line.
- */
-! while (fgets((char *)IObuff, CMDBUFFSIZE - 2, fd) != NULL && !got_int)
- {
-! IObuff[CMDBUFFSIZE - 2] = NUL; /* for very long lines */
- if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
- *efmp = NUL;
- #ifdef USE_CRNL
-*** ../vim-6.2.253/src/version.c Wed Feb 11 14:40:25 2004
---- src/version.c Sun Feb 15 13:00:44 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 254,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-142. You dream about creating the world's greatest web site.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.255
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.255
-Problem: GTK: A new item in the popup menu is put just after instead of
- just before the right item. (Gabriel Zachmann)
-Solution: Don't increment the menu item index.
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.254/src/gui_gtk.c Tue Feb 10 19:41:59 2004
---- src/gui_gtk.c Thu Feb 12 12:46:10 2004
-***************
-*** 805,811 ****
- return;
-
- /* make place for the possible tearoff handle item */
-! ++idx;
- if (menu_is_separator(menu->name))
- {
- /* Separator: Just add it */
---- 805,813 ----
- return;
-
- /* make place for the possible tearoff handle item */
-! /* ++idx; Don't understand why this was here; makes adding an item to
-! * the popup menu appear after instead of before an existing item. */
-!
- if (menu_is_separator(menu->name))
- {
- /* Separator: Just add it */
-*** ../vim-6.2.254/src/version.c Sun Feb 15 13:04:14 2004
---- src/version.c Sun Feb 15 13:06:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 255,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-143. You dream in pallettes of 216 websafe colors.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.256
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.256
-Problem: Mac: "macroman" encoding isn't recognized, need to use
- "8bit-macroman.
-Solution: Recognize "macroman" with an alias "mac". (Eckehard Berns)
-Files: src/mbyte.c
-
-
-*** ../vim-6.2.255/src/mbyte.c Mon Feb 9 18:45:58 2004
---- src/mbyte.c Sat Feb 14 19:46:21 2004
-***************
-*** 216,222 ****
- {"big5", ENC_DBCS, DBCS_CHT},
- #define IDX_CP1251 35
- {"cp1251", ENC_8BIT, 1251},
-! #define IDX_COUNT 36
- };
-
- /*
---- 216,224 ----
- {"big5", ENC_DBCS, DBCS_CHT},
- #define IDX_CP1251 35
- {"cp1251", ENC_8BIT, 1251},
-! #define IDX_MACROMAN 36
-! {"macroman", ENC_8BIT, 0},
-! #define IDX_COUNT 37
- };
-
- /*
-***************
-*** 290,295 ****
---- 292,298 ----
- {"cp950", IDX_BIG5},
- {"950", IDX_BIG5},
- #endif
-+ {"mac", IDX_MACROMAN},
- {NULL, 0}
- };
-
-***************
-*** 523,529 ****
- */
- for (i = 0; i < 256; ++i)
- {
-! /* Our own function to reliably check the lenght of UTF-8 characters,
- * independent of mblen(). */
- if (enc_utf8)
- n = utf8len_tab[i];
---- 526,532 ----
- */
- for (i = 0; i < 256; ++i)
- {
-! /* Our own function to reliably check the length of UTF-8 characters,
- * independent of mblen(). */
- if (enc_utf8)
- n = utf8len_tab[i];
-*** ../vim-6.2.255/src/version.c Sun Feb 15 13:08:28 2004
---- src/version.c Sun Feb 15 13:10:13 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 256,
- /**/
-
---
-Drink wet cement and get really stoned.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.257
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.257 (after 6.2.250)
-Problem: Signs are deleted for ":bdel", but they could still be useful.
-Solution: Delete signs only for ":bwipe".
-Files: src/buffer.c
-
-
-*** ../vim-6.2.256/src/buffer.c Tue Feb 10 19:38:20 2004
---- src/buffer.c Fri Feb 13 11:02:10 2004
-***************
-*** 564,572 ****
- #ifdef FEAT_SYN_HL
- syntax_clear(buf); /* reset syntax info */
- #endif
-- #ifdef FEAT_SIGNS
-- buf_delete_signs(buf); /* delete any signs */
-- #endif
- }
-
- /*
---- 564,569 ----
-***************
-*** 608,613 ****
---- 605,613 ----
- #endif
- #ifdef FEAT_USR_CMDS
- uc_clear(&buf->b_ucmds); /* clear local user commands */
-+ #endif
-+ #ifdef FEAT_SIGNS
-+ buf_delete_signs(buf); /* delete any signs */
- #endif
- #ifdef FEAT_LOCALMAP
- map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); /* clear local mappings */
-*** ../vim-6.2.256/src/version.c Sun Feb 15 13:26:35 2004
---- src/version.c Sun Feb 15 13:28:24 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 257,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-144. You eagerly await the update of the "Cool Site of the Day."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.258
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.258
-Problem: GUI: can't disable (grey-out) a popup menu item. (Ajit Thakkar)
-Solution: Loop over the popup menus for all modes.
-Files: src/menu.c
-
-
-*** ../vim-6.2.257/src/menu.c Sun Oct 12 16:42:14 2003
---- src/menu.c Sun Feb 15 13:32:48 2004
-***************
-*** 331,340 ****
---- 331,356 ----
- {
- /*
- * Change sensitivity of the menu.
-+ * For the PopUp menu, remove a menu for each mode separately.
- * Careful: menu_nable_recurse() changes menu_path.
- */
- if (STRCMP(menu_path, "*") == 0) /* meaning: do all menus */
- menu_path = (char_u *)"";
-+
-+ if (menu_is_popup(menu_path))
-+ {
-+ for (i = 0; i < MENU_INDEX_TIP; ++i)
-+ if (modes & (1 << i))
-+ {
-+ p = popup_mode_name(menu_path, i);
-+ if (p != NULL)
-+ {
-+ menu_nable_recurse(root_menu, p, MENU_ALL_MODES,
-+ enable);
-+ vim_free(p);
-+ }
-+ }
-+ }
- menu_nable_recurse(root_menu, menu_path, modes, enable);
- }
- else if (unmenu)
-***************
-*** 1629,1637 ****
- return (STRNCMP(name, "PopUp", 5) == 0);
- }
-
-! #if defined(FEAT_GUI_MOTIF) || defined(PROTO)
- /*
-! * Return TRUE if "name" is part of a poup menu.
- */
- int
- menu_is_child_of_popup(menu)
---- 1645,1653 ----
- return (STRNCMP(name, "PopUp", 5) == 0);
- }
-
-! #if (defined(FEAT_GUI_MOTIF) && (XmVersion <= 1002)) || defined(PROTO)
- /*
-! * Return TRUE if "name" is part of a popup menu.
- */
- int
- menu_is_child_of_popup(menu)
-*** ../vim-6.2.257/src/version.c Sun Feb 15 13:29:04 2004
---- src/version.c Sun Feb 15 13:31:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 258,
- /**/
-
---
-Fingers not found - Pound head on keyboard to continue.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.259
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.259
-Problem: If there are messages when exiting, on the console there is a
- hit-enter prompt while the message can be read; in the GUI the
- message may not be visible.
-Solution: Use the hit-enter prompt when there is an error message from
- writing the viminfo file or autocommands, or when there is any
- output in the GUI and 'verbose' is set. Don't use a hit-enter
- prompt for the non-GUI version unless there is an error message.
-Files: src/main.c
-
-
-*** ../vim-6.2.258/src/main.c Sun Feb 8 17:09:51 2004
---- src/main.c Thu Feb 12 15:23:40 2004
-***************
-*** 2185,2190 ****
---- 2193,2202 ----
- #endif
- windgoto((int)Rows - 1, 0);
-
-+ #ifdef FEAT_GUI
-+ msg_didany = FALSE;
-+ #endif
-+
- #ifdef FEAT_AUTOCMD
- /* Trigger BufWinLeave for all windows, but only once per buffer. */
- for (wp = firstwin; wp != NULL; )
-***************
-*** 2214,2234 ****
-
- #ifdef FEAT_VIMINFO
- if (*p_viminfo != NUL)
-- {
- /* Write out the registers, history, marks etc, to the viminfo file */
-- msg_didany = FALSE;
- write_viminfo(NULL, FALSE);
-! if (msg_didany) /* make the user read the error message */
-! {
-! no_wait_return = FALSE;
-! wait_return(FALSE);
-! }
-! }
-! #endif /* FEAT_VIMINFO */
-
- #ifdef FEAT_AUTOCMD
- apply_autocmds(EVENT_VIMLEAVE, NULL, NULL, FALSE, curbuf);
-
- /* Position the cursor again, the autocommands may have moved it */
- # ifdef FEAT_GUI
- if (!gui.in_use)
---- 2226,2251 ----
-
- #ifdef FEAT_VIMINFO
- if (*p_viminfo != NUL)
- /* Write out the registers, history, marks etc, to the viminfo file */
- write_viminfo(NULL, FALSE);
-! #endif
-
- #ifdef FEAT_AUTOCMD
- apply_autocmds(EVENT_VIMLEAVE, NULL, NULL, FALSE, curbuf);
-+ #endif
-+
-+ if (did_emsg
-+ #ifdef FEAT_GUI
-+ || (gui.in_use && msg_didany && p_verbose > 0)
-+ #endif
-+ )
-+ {
-+ /* give the user a chance to read the (error) message */
-+ no_wait_return = FALSE;
-+ wait_return(FALSE);
-+ }
-
-+ #ifdef FEAT_AUTOCMD
- /* Position the cursor again, the autocommands may have moved it */
- # ifdef FEAT_GUI
- if (!gui.in_use)
-*** ../vim-6.2.258/src/version.c Sun Feb 15 13:33:50 2004
---- src/version.c Sun Feb 15 13:35:15 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 259,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-145. You e-mail your boss, informing him you'll be late.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.260
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.260
-Problem: GTK 2: Can't quit a dialog with <Esc>.
- GTK 1 and 2: <Enter> always gives a result, even when the default
- button has been disabled.
-Solution: Handle these keys explicitly. When no default button is specified
- use the first one (works mostly like it was before).
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.259/src/gui_gtk.c Sun Feb 15 13:08:28 2004
---- src/gui_gtk.c Thu Feb 12 12:46:10 2004
-***************
-*** 1512,1517 ****
---- 1512,1518 ----
- typedef struct _CancelData
- {
- int *status;
-+ int ignore_enter;
- GtkWidget *dialog;
- } CancelData;
-
-***************
-*** 1530,1535 ****
---- 1531,1540 ----
- static int
- dlg_key_press_event(GtkWidget * widget, GdkEventKey * event, CancelData *data)
- {
-+ /* Ignore hitting Enter when there is no default button. */
-+ if (data->ignore_enter && event->keyval == GDK_Return)
-+ return TRUE;
-+
- if (event->keyval != GDK_Escape && event->keyval != GDK_Return)
- return FALSE;
-
-***************
-*** 1820,1825 ****
---- 1825,1831 ----
-
- vim_free(names);
-
-+ cancel_data.ignore_enter = FALSE;
- if (butcount > 0)
- {
- --def_but; /* 1 is first button */
-***************
-*** 1830,1835 ****
---- 1836,1844 ----
- gtk_widget_grab_focus(button[def_but]);
- gtk_widget_grab_default(button[def_but]);
- }
-+ else
-+ /* No default, ignore hitting Enter. */
-+ cancel_data.ignore_enter = TRUE;
- }
-
- if (textfield != NULL)
-***************
-*** 2103,2118 ****
- * GUI used to work this way, and I consider the impact on UI consistency
- * low enough to justify implementing this as a special Vim feature.
- */
- /*ARGSUSED2*/
- static gboolean
- dialog_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
- {
-! if ((event->state & gtk_accelerator_get_default_mod_mask()) == 0)
- {
- return gtk_window_mnemonic_activate(
- GTK_WINDOW(widget), event->keyval,
- gtk_window_get_mnemonic_modifier(GTK_WINDOW(widget)));
- }
- return FALSE; /* continue emission */
- }
-
---- 2112,2149 ----
- * GUI used to work this way, and I consider the impact on UI consistency
- * low enough to justify implementing this as a special Vim feature.
- */
-+ typedef struct _DialogInfo
-+ {
-+ int ignore_enter; /* no default button, ignore "Enter" */
-+ int noalt; /* accept accelerators without Alt */
-+ GtkDialog *dialog; /* Widget of the dialog */
-+ } DialogInfo;
-+
- /*ARGSUSED2*/
- static gboolean
- dialog_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
- {
-! DialogInfo *di = (DialogInfo *)data;
-!
-! /* Ignore hitting "Enter" if there is no default button. */
-! if (di->ignore_enter && event->keyval == GDK_Return)
-! return TRUE;
-!
-! /* Close the dialog when hitting "Esc". */
-! if (event->keyval == GDK_Escape)
-! {
-! gtk_dialog_response(di->dialog, GTK_RESPONSE_REJECT);
-! return TRUE;
-! }
-!
-! if (di->noalt
-! && (event->state & gtk_accelerator_get_default_mod_mask()) == 0)
- {
- return gtk_window_mnemonic_activate(
- GTK_WINDOW(widget), event->keyval,
- gtk_window_get_mnemonic_modifier(GTK_WINDOW(widget)));
- }
-+
- return FALSE; /* continue emission */
- }
-
-***************
-*** 2128,2135 ****
---- 2159,2168 ----
- GtkWidget *entry = NULL;
- char_u *text;
- int response;
-+ DialogInfo dialoginfo;
-
- dialog = create_message_dialog(type, title, message);
-+ dialoginfo.dialog = GTK_DIALOG(dialog);
- dialog_add_buttons(GTK_DIALOG(dialog), buttons);
-
- if (textfield != NULL)
-***************
-*** 2151,2168 ****
-
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
- alignment, TRUE, FALSE, 0);
- }
- else
-! {
-! /* Allow activation of mnemonic accelerators without pressing <Alt>.
-! * For safety, connect this signal handler only if the dialog has
-! * no other other interaction widgets but buttons. */
-! g_signal_connect(G_OBJECT(dialog), "key_press_event",
-! G_CALLBACK(&dialog_key_press_event_cb), NULL);
-! }
-
- if (def_but > 0)
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), def_but);
-
- /* Show the mouse pointer if it's currently hidden. */
- gui_mch_mousehide(FALSE);
---- 2184,2207 ----
-
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
- alignment, TRUE, FALSE, 0);
-+ dialoginfo.noalt = FALSE;
- }
- else
-! dialoginfo.noalt = TRUE;
-!
-! /* Allow activation of mnemonic accelerators without pressing <Alt> when
-! * there is no textfield. Handle pressing Enter and Esc. */
-! g_signal_connect(G_OBJECT(dialog), "key_press_event",
-! G_CALLBACK(&dialog_key_press_event_cb), &dialoginfo);
-
- if (def_but > 0)
-+ {
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), def_but);
-+ dialoginfo.ignore_enter = FALSE;
-+ }
-+ else
-+ /* No default button, ignore pressing Enter. */
-+ dialoginfo.ignore_enter = TRUE;
-
- /* Show the mouse pointer if it's currently hidden. */
- gui_mch_mousehide(FALSE);
-*** ../vim-6.2.259/src/version.c Sun Feb 15 13:37:22 2004
---- src/version.c Sun Feb 15 13:39:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 260,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-146. You experience ACTUAL physical withdrawal symptoms when away
- from your 'puter and the net.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.261
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.261
-Problem: When 'autoindent' and 'cindent' are set and a line is recognized
- as a comment, starting a new line won't do 'cindent' formatting.
-Solution: Also use 'cindent' formatting for lines that are used as a
- comment. (Servatius Brandt)
-Files: src/misc1.c
-
-
-*** ../vim-6.2.260/src/misc1.c Sun Feb 1 16:39:09 2004
---- src/misc1.c Wed Feb 11 21:55:44 2004
-***************
-*** 1324,1332 ****
- * May do indenting after opening a new line.
- */
- if (!p_paste
-- # ifdef FEAT_COMMENTS
-- && (leader == NULL || !curbuf->b_p_ai)
-- # endif
- && (curbuf->b_p_cin
- # ifdef FEAT_EVAL
- || *curbuf->b_p_inde != NUL
---- 1324,1329 ----
-*** ../vim-6.2.260/src/version.c Sun Feb 15 13:42:25 2004
---- src/version.c Sun Feb 15 13:44:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 261,
- /**/
-
---
-We are the Borg of GNU GPL. We will assimilate your source code.
-Resistance is futile.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.262
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.262
-Problem: 1 CTRL-W w beeps, even though going to the first window is
- possible. (Charles Campbell)
-Solution: Don't beep.
-Files: src/window.c
-
-
-*** ../vim-6.2.261/src/window.c Wed Feb 4 21:42:30 2004
---- src/window.c Thu Feb 12 16:01:23 2004
-***************
-*** 222,228 ****
- /* cursor to previous window with wrap around */
- case 'W':
- CHECK_CMDWIN
-! if (lastwin == firstwin) /* just one window */
- beep_flush();
- else
- {
---- 222,228 ----
- /* cursor to previous window with wrap around */
- case 'W':
- CHECK_CMDWIN
-! if (lastwin == firstwin && Prenum != 1) /* just one window */
- beep_flush();
- else
- {
-*** ../vim-6.2.261/src/version.c Sun Feb 15 13:44:45 2004
---- src/version.c Sun Feb 15 13:46:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 262,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-147. You finally give up smoking...because it made the monitor dirty.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.263
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.263
-Problem: Lint warnings: Duplicate function prototypes, duplicate macros,
- use of a zero character instead of a zero pointer, unused
- variable. Clearing allocated memory in a complicated way.
-Solution: Remove the function prototypes from farsi.h. Remove the
- duplicated lines in keymap.h. Change getvcol() argument from NUL
- to NULL. Remove the "col" variable in regmatch(). Use
- lalloc_clear() instead of lalloc(). (Walter Briscoe)
-Files: src/farsi.h, src/keymap.h, src/ops.c, src/regexp.c, src/search.c
-
-
-*** ../vim-6.2.262/src/farsi.h Sat Apr 14 22:20:29 2001
---- src/farsi.h Wed Feb 11 15:12:51 2004
-***************
-*** 184,206 ****
- #define W_R_L 0x2
-
-
-- /* prototypes */
--
-- int fkmap __ARGS((int c));
-- int toF_TyA __ARGS((int c));
-- int F_isalpha __ARGS((int c));
-- int F_isdigit __ARGS((int c));
-- int F_ischar __ARGS((int c));
-- int cmdl_fkmap __ARGS((int c));
-- void cmd_pchar __ARGS((int c, int offset));
-- int cmd_gchar __ARGS((int offset));
-- void conv_to_pvim __ARGS((void));
-- void conv_to_pstd __ARGS((void));
-- char_u *lrswap __ARGS((char_u *ibuf));
-- char_u *lrFswap __ARGS((char_u *cmdbuf, int len));
-- char_u *lrF_sub __ARGS((char_u *ibuf));
-- void farsi_fkey __ARGS((cmdarg_T *cap));
--
- /* special Farsi text messages */
-
- EXTERN char_u farsi_text_1[]
---- 184,189 ----
-*** ../vim-6.2.262/src/keymap.h Sun May 4 22:43:37 2003
---- src/keymap.h Wed Feb 11 15:14:54 2004
-***************
-*** 270,281 ****
- #define K_XF3 TERMCAP2KEY(KS_EXTRA, KE_XF3)
- #define K_XF4 TERMCAP2KEY(KS_EXTRA, KE_XF4)
-
-- /* extra set of function keys F1-F4, for vt100 compatible xterm */
-- #define K_XF1 TERMCAP2KEY(KS_EXTRA, KE_XF1)
-- #define K_XF2 TERMCAP2KEY(KS_EXTRA, KE_XF2)
-- #define K_XF3 TERMCAP2KEY(KS_EXTRA, KE_XF3)
-- #define K_XF4 TERMCAP2KEY(KS_EXTRA, KE_XF4)
--
- #define K_F1 TERMCAP2KEY('k', '1') /* function keys */
- #define K_F2 TERMCAP2KEY('k', '2')
- #define K_F3 TERMCAP2KEY('k', '3')
---- 270,275 ----
-*** ../vim-6.2.262/src/ops.c Sun Jan 25 20:37:29 2004
---- src/ops.c Wed Feb 11 15:17:11 2004
-***************
-*** 2696,2702 ****
- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
-! getvcol(curwin, &oap->start, &cs, NUL, &ce);
- if (ce != cs && oap->start.coladd > 0)
- {
- /* Part of a tab selected -- but don't
---- 2696,2702 ----
- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
-! getvcol(curwin, &oap->start, &cs, NULL, &ce);
- if (ce != cs && oap->start.coladd > 0)
- {
- /* Part of a tab selected -- but don't
-***************
-*** 2715,2721 ****
- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
-! getvcol(curwin, &oap->end, &cs, NUL, &ce);
- if (p[endcol] == NUL || (cs + oap->end.coladd < ce
- # ifdef FEAT_MBYTE
- /* Don't add space for double-wide
---- 2715,2721 ----
- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
-! getvcol(curwin, &oap->end, &cs, NULL, &ce);
- if (p[endcol] == NUL || (cs + oap->end.coladd < ce
- # ifdef FEAT_MBYTE
- /* Don't add space for double-wide
-*** ../vim-6.2.262/src/regexp.c Tue Feb 3 16:55:34 2004
---- src/regexp.c Wed Feb 11 15:20:02 2004
-***************
-*** 2800,2808 ****
- if (SETJMP(lc_jump_env) != 0)
- {
- mch_didjmp();
-! #ifdef SIGHASARG
- if (lc_signal != SIGINT)
-! #endif
- EMSG(_("E361: Crash intercepted; regexp too complex?"));
- retval = 0L;
- goto theend;
---- 2800,2808 ----
- if (SETJMP(lc_jump_env) != 0)
- {
- mch_didjmp();
-! # ifdef SIGHASARG
- if (lc_signal != SIGINT)
-! # endif
- EMSG(_("E361: Crash intercepted; regexp too complex?"));
- retval = 0L;
- goto theend;
-***************
-*** 4101,4107 ****
- regsave_T save_after, save_start;
- regsave_T save_behind_pos;
- int needmatch = (op == BEHIND);
-- long col;
-
- /*
- * Look back in the input of the operand matches or not. This
---- 4101,4106 ----
-***************
-*** 4124,4130 ****
- * will match it. */
- save_behind_pos = behind_pos;
- behind_pos = save_start;
-! for (col = 0; ; ++col)
- {
- reg_restore(&save_start);
- if (regmatch(OPERAND(scan))
---- 4123,4129 ----
- * will match it. */
- save_behind_pos = behind_pos;
- behind_pos = save_start;
-! for (;;)
- {
- reg_restore(&save_start);
- if (regmatch(OPERAND(scan))
-*** ../vim-6.2.262/src/search.c Sun Jan 25 20:21:35 2004
---- src/search.c Wed Feb 11 15:22:04 2004
-***************
-*** 3655,3671 ****
- goto fpip_end;
- def_regmatch.rm_ic = FALSE; /* don't ignore case in define pat. */
- }
-! files = (SearchedFile *)lalloc((long_u)
- (max_path_depth * sizeof(SearchedFile)), TRUE);
- if (files == NULL)
- goto fpip_end;
-- for (i = 0; i < max_path_depth; i++)
-- {
-- files[i].fp = NULL;
-- files[i].name = NULL;
-- files[i].lnum = 0;
-- files[i].matched = FALSE;
-- }
- old_files = max_path_depth;
- depth = depth_displayed = -1;
-
---- 3655,3664 ----
- goto fpip_end;
- def_regmatch.rm_ic = FALSE; /* don't ignore case in define pat. */
- }
-! files = (SearchedFile *)lalloc_clear((long_u)
- (max_path_depth * sizeof(SearchedFile)), TRUE);
- if (files == NULL)
- goto fpip_end;
- old_files = max_path_depth;
- depth = depth_displayed = -1;
-
-*** ../vim-6.2.262/src/version.c Sun Feb 15 13:47:16 2004
---- src/version.c Sun Feb 15 13:48:35 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 263,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-148. You find it easier to dial-up the National Weather Service
- Weather/your_town/now.html than to simply look out the window.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.264
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.264 (after 6.2.247)
-Problem: Writing past allocated memory when using a command line from the
- viminfo file.
-Solution: Store the NUL in the right place.
-Files: src/ex_getln.c
-
-
-*** ../vim-6.2.263/src/ex_getln.c Mon Feb 9 10:33:13 2004
---- src/ex_getln.c Tue Feb 17 11:02:24 2004
-***************
-*** 4771,4777 ****
- /* Not a search entry: No separator in the viminfo file,
- * add a NUL separator. */
- mch_memmove(val, val + 1, (size_t)len);
-! val[len + 1] = NUL;
- }
- viminfo_history[type][viminfo_hisidx[type]++] = val;
- }
---- 4810,4816 ----
- /* Not a search entry: No separator in the viminfo file,
- * add a NUL separator. */
- mch_memmove(val, val + 1, (size_t)len);
-! val[len] = NUL;
- }
- viminfo_history[type][viminfo_hisidx[type]++] = val;
- }
-*** ../vim-6.2.263/src/version.c Sun Feb 15 13:49:38 2004
---- src/version.c Tue Feb 17 20:21:17 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 264,
- /**/
-
---
-"Hit any key to continue" is a lie.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.265
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.265
-Problem: Although ":set" is not allowed in the sandbox, ":let &opt = val"
- works.
-Solution: Do allow changing options in the sandbox, but not the ones that
- can't be changed from a modeline.
-Files: src/ex_cmds.h, src/option.c
-
-
-*** ../vim-6.2.264/src/ex_cmds.h Tue Feb 10 19:35:15 2004
---- src/ex_cmds.h Mon Feb 16 17:06:54 2004
-***************
-*** 687,693 ****
- EX(CMD_scscope, "scscope", do_scscope,
- EXTRA|NOTRLCOM|SBOXOK),
- EX(CMD_set, "set", ex_set,
-! TRLBAR|EXTRA|CMDWIN),
- EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_setglobal, "setglobal", ex_set,
---- 687,693 ----
- EX(CMD_scscope, "scscope", do_scscope,
- EXTRA|NOTRLCOM|SBOXOK),
- EX(CMD_set, "set", ex_set,
-! TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_setglobal, "setglobal", ex_set,
-*** ../vim-6.2.264/src/option.c Wed Feb 4 21:42:30 2004
---- src/option.c Tue Feb 17 11:17:55 2004
-***************
-*** 3393,3398 ****
---- 3425,3439 ----
- goto skip;
- }
-
-+ #ifdef HAVE_SANDBOX
-+ /* Disallow changing some options in the sandbox */
-+ if (sandbox > 0 && (flags & P_SECURE))
-+ {
-+ errmsg = (char_u *)_(e_sandbox);
-+ goto skip;
-+ }
-+ #endif
-+
- if (vim_strchr((char_u *)"?=:!&<", nextchar) != NULL)
- {
- arg += len;
-***************
-*** 6950,6970 ****
- {
- int opt_idx;
- char_u *varp;
-
- opt_idx = findoption(name);
- if (opt_idx == -1)
- EMSG2(_("E355: Unknown option: %s"), name);
-- else if (options[opt_idx].flags & P_STRING)
-- set_string_option(opt_idx, string, opt_flags);
- else
- {
-! varp = get_varp(&options[opt_idx]);
-! if (varp != NULL) /* hidden option is not changed */
- {
-! if (options[opt_idx].flags & P_NUM)
-! (void)set_num_option(opt_idx, varp, number, NULL, opt_flags);
-! else
-! (void)set_bool_option(opt_idx, varp, (int)number, opt_flags);
- }
- }
- }
---- 7007,7038 ----
- {
- int opt_idx;
- char_u *varp;
-+ int flags;
-
- opt_idx = findoption(name);
- if (opt_idx == -1)
- EMSG2(_("E355: Unknown option: %s"), name);
- else
- {
-! flags = options[opt_idx].flags;
-! #ifdef HAVE_SANDBOX
-! /* Disallow changing some options in the sandbox */
-! if (sandbox > 0 && (flags & P_SECURE))
-! EMSG(_(e_sandbox));
-! else
-! #endif
-! if (flags & P_STRING)
-! set_string_option(opt_idx, string, opt_flags);
-! else
- {
-! varp = get_varp(&options[opt_idx]);
-! if (varp != NULL) /* hidden option is not changed */
-! {
-! if (flags & P_NUM)
-! (void)set_num_option(opt_idx, varp, number, NULL, opt_flags);
-! else
-! (void)set_bool_option(opt_idx, varp, (int)number, opt_flags);
-! }
- }
- }
- }
-*** ../vim-6.2.264/src/version.c Tue Feb 17 20:22:36 2004
---- src/version.c Tue Feb 17 20:38:04 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 265,
- /**/
-
---
-In Joseph Heller's novel "Catch-22", the main character tries to get out of a
-war by proving he is crazy. But the mere fact he wants to get out of the war
-only shows he isn't crazy -- creating the original "Catch-22".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.266
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.266
-Problem: When redirecting output and using ":silent", line breaks are
- missing from output of ":map" and ":tselect". Alignment of
- columns is wrong.
-Solution: Insert a line break where "msg_didout" was tested. Update msg_col
- when redirecting and using ":silent".
-Files: src/getchar.c, src/message.c
-
-
-*** ../vim-6.2.265/src/getchar.c Sun Jan 25 20:30:03 2004
---- src/getchar.c Tue Feb 17 17:47:22 2004
-***************
-*** 3462,3468 ****
- {
- int len = 1;
-
-! if (msg_didout)
- msg_putchar('\n');
- if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
- msg_putchar('!'); /* :map! */
---- 3469,3475 ----
- {
- int len = 1;
-
-! if (msg_didout || msg_silent != 0)
- msg_putchar('\n');
- if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
- msg_putchar('!'); /* :map! */
-*** ../vim-6.2.265/src/message.c Sun Feb 8 17:09:51 2004
---- src/message.c Sun Feb 15 21:04:31 2004
-***************
-*** 468,473 ****
---- 468,474 ----
- */
- if (emsg_silent != 0)
- {
-+ msg_start();
- redir_write(s, -1);
- return TRUE;
- }
-***************
-*** 2477,2482 ****
---- 2478,2486 ----
- ++cur_col;
- ++s;
- }
-+
-+ if (msg_silent != 0) /* should update msg_col */
-+ msg_col = cur_col;
- }
- }
-
-***************
-*** 2522,2528 ****
- {
- if (msg_silent != 0) /* nothing to advance to */
- {
-! msg_putchar(' '); /* insert something for redirection */
- return;
- }
- if (col >= Columns) /* not enough room */
---- 2526,2532 ----
- {
- if (msg_silent != 0) /* nothing to advance to */
- {
-! msg_col = col; /* for redirection, may fill it up later */
- return;
- }
- if (col >= Columns) /* not enough room */
-*** ../vim-6.2.265/src/version.c Tue Feb 17 20:41:09 2004
---- src/version.c Tue Feb 17 20:42:45 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 266,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-169. You hire a housekeeper for your home page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.267 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.267 (extra)
-Problem: Win32: "&&" in a tearoff menu is not shown. (Luc Hermitte)
-Solution: Use the "name" item from the menu instead of the "dname" item.
-Files: src/gui_w32.c, src/menu.c
-
-
-*** ../vim-6.2.266/src/gui_w32.c Sun Jan 25 20:24:03 2004
---- src/gui_w32.c Mon Feb 16 12:19:06 2004
-***************
-*** 2965,2971 ****
- HFONT font, oldFont;
- int col, spaceWidth, len;
- int columnWidths[2];
-! char_u *label, *text, *end, *acEnd = NULL;
- int padding0, padding1, padding2 = 0;
- int sepPadding=0;
- #ifdef USE_SYSMENU_FONT
---- 2965,2973 ----
- HFONT font, oldFont;
- int col, spaceWidth, len;
- int columnWidths[2];
-! char_u *label, *text;
-! int acLen;
-! int nameLen;
- int padding0, padding1, padding2 = 0;
- int sepPadding=0;
- #ifdef USE_SYSMENU_FONT
-***************
-*** 2974,2984 ****
- #endif
-
- /*
-! * If this menu is already torn off, then don't
-! * tear it off again, but move the existing tearoff
-! * to the mouse position.
- */
--
- if (IsWindow(menu->tearoff_handle))
- {
- POINT mp;
---- 2976,2983 ----
- #endif
-
- /*
-! * If this menu is already torn off, move it to the mouse position.
- */
- if (IsWindow(menu->tearoff_handle))
- {
- POINT mp;
-***************
-*** 2991,3003 ****
- }
-
- /*
-! * Otherwise, create a new tearoff
- */
--
- if (*title == MNU_HIDDEN_CHAR)
- title++;
-
-! /* Allocate some memory to play with. It's made bigger when needed. */
- template_len = DLG_ALLOC_SIZE;
- pdlgtemplate = p = (WORD *)LocalAlloc(LPTR, template_len);
- if (p == NULL)
---- 2990,3002 ----
- }
-
- /*
-! * Create a new tearoff.
- */
- if (*title == MNU_HIDDEN_CHAR)
- title++;
-
-! /* Allocate memory to store the dialog template. It's made bigger when
-! * needed. */
- template_len = DLG_ALLOC_SIZE;
- pdlgtemplate = p = (WORD *)LocalAlloc(LPTR, template_len);
- if (p == NULL)
-***************
-*** 3019,3051 ****
- oldFont = SelectFont(hdc, font);
- else
- oldFont = SelectFont(hdc, GetStockObject(SYSTEM_FONT));
-! /*
-! * Calculate width of a single space. Used for padding columns to the
-! * right width.
-! */
- spaceWidth = GetTextWidth(hdc, " ", 1);
-
- submenuWidth = 0;
-- /* Figure out widths for each column. */
- for (col = 0; col < 2; col++)
- {
- columnWidths[col] = 0;
- for (pmenu = menu->children; pmenu != NULL; pmenu = pmenu->next)
- {
- text = (col == 0) ? pmenu->dname : pmenu->actext;
-- if (pmenu->children != NULL)
-- submenuWidth = TEAROFF_COLUMN_PADDING * spaceWidth;
- if (text != NULL && *text != NUL)
- {
-! end = text + strlen(text);
-! textWidth = GetTextWidth(hdc, text, (int)(end - text));
- if (textWidth > columnWidths[col])
- columnWidths[col] = textWidth;
- }
- }
- }
- if (columnWidths[1] == 0)
- {
- if (submenuWidth != 0)
- columnWidths[0] += submenuWidth;
- else
---- 3018,3051 ----
- oldFont = SelectFont(hdc, font);
- else
- oldFont = SelectFont(hdc, GetStockObject(SYSTEM_FONT));
-!
-! /* Calculate width of a single space. Used for padding columns to the
-! * right width. */
- spaceWidth = GetTextWidth(hdc, " ", 1);
-
-+ /* Figure out max width of the text column, the accelerator column and the
-+ * optional submenu column. */
- submenuWidth = 0;
- for (col = 0; col < 2; col++)
- {
- columnWidths[col] = 0;
- for (pmenu = menu->children; pmenu != NULL; pmenu = pmenu->next)
- {
-+ /* Use "dname" here to compute the width of the visible text. */
- text = (col == 0) ? pmenu->dname : pmenu->actext;
- if (text != NULL && *text != NUL)
- {
-! textWidth = GetTextWidth(hdc, text, (int)STRLEN(text));
- if (textWidth > columnWidths[col])
- columnWidths[col] = textWidth;
- }
-+ if (pmenu->children != NULL)
-+ submenuWidth = TEAROFF_COLUMN_PADDING * spaceWidth;
- }
- }
- if (columnWidths[1] == 0)
- {
-+ /* no accelerators */
- if (submenuWidth != 0)
- columnWidths[0] += submenuWidth;
- else
-***************
-*** 3053,3071 ****
- }
- else
- {
- columnWidths[0] += TEAROFF_COLUMN_PADDING * spaceWidth;
- columnWidths[1] += submenuWidth;
- }
- /*
-! * Now find the width of our 'menu'.
- */
-! textWidth = 0;
-! for (col = 0; col < 2; col++)
-! textWidth += columnWidths[col];
- if (submenuWidth != 0)
- {
- submenuWidth = GetTextWidth(hdc, TEAROFF_SUBMENU_LABEL,
-! (int)STRLEN(TEAROFF_SUBMENU_LABEL));
- textWidth += submenuWidth;
- }
- dlgwidth = GetTextWidth(hdc, title, (int)STRLEN(title));
---- 3053,3071 ----
- }
- else
- {
-+ /* there is an accelerator column */
- columnWidths[0] += TEAROFF_COLUMN_PADDING * spaceWidth;
- columnWidths[1] += submenuWidth;
- }
-+
- /*
-! * Now find the total width of our 'menu'.
- */
-! textWidth = columnWidths[0] + columnWidths[1];
- if (submenuWidth != 0)
- {
- submenuWidth = GetTextWidth(hdc, TEAROFF_SUBMENU_LABEL,
-! (int)STRLEN(TEAROFF_SUBMENU_LABEL));
- textWidth += submenuWidth;
- }
- dlgwidth = GetTextWidth(hdc, title, (int)STRLEN(title));
-***************
-*** 3105,3113 ****
- *p++ = 0; // Class
-
- /* copy the title of the dialog */
-! nchar = nCopyAnsiToWideChar(p, ((*title) ?
-! (LPSTR)title :
-! (LPSTR)("Vim "VIM_VERSION_MEDIUM)));
- p += nchar;
-
- if (s_usenewlook)
---- 3105,3113 ----
- *p++ = 0; // Class
-
- /* copy the title of the dialog */
-! nchar = nCopyAnsiToWideChar(p, ((*title)
-! ? (LPSTR)title
-! : (LPSTR)("Vim "VIM_VERSION_MEDIUM)));
- p += nchar;
-
- if (s_usenewlook)
-***************
-*** 3130,3141 ****
- p += nchar;
- }
-
-! /* Don't include tearbar in tearoff menu */
- if (STRCMP(menu->children->name, TEAR_STRING) == 0)
- menu = menu->children->next;
- else
- menu = menu->children;
--
- for ( ; menu != NULL; menu = menu->next)
- {
- if (menu->modes == 0) /* this menu has just been deleted */
---- 3130,3143 ----
- p += nchar;
- }
-
-! /*
-! * Loop over all the items in the menu.
-! * But skip over the tearbar.
-! */
- if (STRCMP(menu->children->name, TEAR_STRING) == 0)
- menu = menu->children->next;
- else
- menu = menu->children;
- for ( ; menu != NULL; menu = menu->next)
- {
- if (menu->modes == 0) /* this menu has just been deleted */
-***************
-*** 3166,3188 ****
- }
- }
-
-! /* Figure out length of this menu label */
-! len = (int)STRLEN(menu->dname);
-! end = menu->dname + STRLEN(menu->dname);
- padding0 = (columnWidths[0] - GetTextWidth(hdc, menu->dname,
-! (int)(end - menu->dname))) / spaceWidth;
- len += padding0;
- if (menu->actext != NULL)
- {
-! len += (int)STRLEN(menu->actext);
-! acEnd = menu->actext + STRLEN(menu->actext);
-! textWidth = GetTextWidth(hdc, menu->actext, (int)(acEnd - menu->actext));
- }
- else
- textWidth = 0;
--
- padding1 = (columnWidths[1] - textWidth) / spaceWidth;
- len += padding1;
- if (menu->children == NULL)
- {
- padding2 = submenuWidth / spaceWidth;
---- 3168,3192 ----
- }
- }
-
-! /* Figure out minimal length of this menu label. Use "name" for the
-! * actual text, "dname" for estimating the displayed size. "name"
-! * has "&a" for mnemonic and includes the accelerator. */
-! len = nameLen = (int)STRLEN(menu->name);
- padding0 = (columnWidths[0] - GetTextWidth(hdc, menu->dname,
-! (int)STRLEN(menu->dname))) / spaceWidth;
- len += padding0;
-+
- if (menu->actext != NULL)
- {
-! acLen = (int)STRLEN(menu->actext);
-! len += acLen;
-! textWidth = GetTextWidth(hdc, menu->actext, acLen);
- }
- else
- textWidth = 0;
- padding1 = (columnWidths[1] - textWidth) / spaceWidth;
- len += padding1;
-+
- if (menu->children == NULL)
- {
- padding2 = submenuWidth / spaceWidth;
-***************
-*** 3199,3212 ****
- text = label = alloc((unsigned)len + 1);
- if (label == NULL)
- break;
-! STRNCPY(text, menu->dname, end - menu->dname);
-! text += end - menu->dname;
- while (padding0-- > 0)
- *text++ = ' ';
- if (menu->actext != NULL)
- {
-! STRNCPY(text, menu->actext, acEnd - menu->actext);
-! text += acEnd - menu->actext;
- }
- while (padding1-- > 0)
- *text++ = ' ';
---- 3203,3219 ----
- text = label = alloc((unsigned)len + 1);
- if (label == NULL)
- break;
-!
-! STRNCPY(text, menu->name, nameLen);
-! text = vim_strchr(text, TAB); /* stop at TAB before actext */
-! if (text == NULL)
-! text = label + nameLen; /* no actext, use whole name */
- while (padding0-- > 0)
- *text++ = ' ';
- if (menu->actext != NULL)
- {
-! STRNCPY(text, menu->actext, acLen);
-! text += acLen;
- }
- while (padding1-- > 0)
- *text++ = ' ';
-***************
-*** 3221,3227 ****
- *text++ = ' ';
- }
- *text = NUL;
-- *end = NUL;
-
- /*
- * BS_LEFT will just be ignored on Win32s/NT3.5x - on
---- 3228,3233 ----
-*** ../vim-6.2.266/src/menu.c Sun Feb 15 13:33:50 2004
---- src/menu.c Sun Feb 15 22:06:06 2004
-***************
-*** 1596,1607 ****
- }
- else
- text = vim_strsave(str);
-! if (text != NULL)
- {
-! p = vim_strchr(text, '&');
- if (p != NULL)
- {
-! if (mnemonic != NULL)
- #if !defined(__MVS__) || defined(MOTIF390_MNEMONIC_FIXED)
- *mnemonic = p[1];
- #else
---- 1596,1611 ----
- }
- else
- text = vim_strsave(str);
-!
-! /* Find mnemonic characters "&a" and reduce "&&" to "&". */
-! for (p = text; p != NULL; )
- {
-! p = vim_strchr(p, '&');
- if (p != NULL)
- {
-! if (p[1] == NUL) /* trailing "&" */
-! break;
-! if (mnemonic != NULL && p[1] != '&')
- #if !defined(__MVS__) || defined(MOTIF390_MNEMONIC_FIXED)
- *mnemonic = p[1];
- #else
-***************
-*** 1618,1623 ****
---- 1622,1628 ----
- }
- #endif
- mch_memmove(p, p + 1, STRLEN(p));
-+ p = p + 1;
- }
- }
- return text;
-*** ../vim-6.2.266/src/version.c Tue Feb 17 20:44:14 2004
---- src/version.c Tue Feb 17 21:01:21 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 267,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-170. You introduce your wife as "my_lady@home.wife" and refer to your
- children as "forked processes."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.268
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.268
-Problem: GUI: When changing 'guioptions' part of the window may be off
- screen. (Randall Morris)
-Solution: Adjust the size of the window when changing 'guioptions', but only
- when adding something.
-Files: src/gui.c
-
-
-*** ../vim-6.2.267/src/gui.c Fri Feb 6 19:19:20 2004
---- src/gui.c Tue Feb 17 16:31:55 2004
-***************
-*** 3051,3056 ****
---- 3051,3057 ----
- #endif
- win_T *wp;
- int need_set_size;
-+ int fix_size;
-
- #ifdef FEAT_MENU
- if (oldval != NULL && gui.in_use)
-***************
-*** 3125,3130 ****
---- 3126,3132 ----
- if (gui.in_use)
- {
- need_set_size = FALSE;
-+ fix_size = FALSE;
- for (i = 0; i < 3; i++)
- {
- if (gui.which_scrollbars[i] != prev_which_scrollbars[i])
-***************
-*** 3140,3145 ****
---- 3142,3149 ----
- }
- }
- need_set_size = TRUE;
-+ if (gui.which_scrollbars[i])
-+ fix_size = TRUE;
- }
- prev_which_scrollbars[i] = gui.which_scrollbars[i];
- }
-***************
-*** 3150,3155 ****
---- 3154,3161 ----
- gui_mch_enable_menu(gui.menu_is_active);
- prev_menu_is_active = gui.menu_is_active;
- need_set_size = TRUE;
-+ if (gui.menu_is_active)
-+ fix_size = TRUE;
- }
- #endif
-
-***************
-*** 3159,3164 ****
---- 3165,3172 ----
- gui_mch_show_toolbar(using_toolbar);
- prev_toolbar = using_toolbar;
- need_set_size = TRUE;
-+ if (using_toolbar)
-+ fix_size = TRUE;
- }
- #endif
- #ifdef FEAT_FOOTER
-***************
-*** 3167,3172 ****
---- 3175,3182 ----
- gui_mch_enable_footer(using_footer);
- prev_footer = using_footer;
- need_set_size = TRUE;
-+ if (using_footer)
-+ fix_size = TRUE;
- }
- #endif
- #if defined(FEAT_MENU) && !defined(WIN16) && !(defined(WIN3264) && !defined(FEAT_TEAROFF))
-***************
-*** 3177,3183 ****
- }
- #endif
- if (need_set_size)
-! gui_set_shellsize(FALSE, FALSE);
- }
- }
-
---- 3187,3195 ----
- }
- #endif
- if (need_set_size)
-! /* Adjust the size of the window to avoid that part of our window
-! * is off-screen and a scrollbar can't be used, for example. */
-! gui_set_shellsize(FALSE, fix_size);
- }
- }
-
-*** ../vim-6.2.267/src/version.c Tue Feb 17 21:08:58 2004
---- src/version.c Tue Feb 17 21:30:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 268,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-171. You invent another person and chat with yourself in empty chat rooms.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.269
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.269
-Problem: Diff mode does not highlight a change in a combining character.
- (Raphael Finkel)
-Solution: Make diff_find_change() multi-byte aware: find the start byte of
- a character that contains a change.
-Files: src/diff.c
-
-
-*** ../vim-6.2.268/src/diff.c Mon Feb 2 12:53:51 2004
---- src/diff.c Tue Feb 17 16:53:25 2004
-***************
-*** 1613,1618 ****
---- 1613,1627 ----
- /* Search for start of difference */
- for (si = 0; line_org[si] != NUL && line_org[si] == line_new[si]; )
- ++si;
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ {
-+ /* Move back to first byte of character in both lines (may
-+ * have "nn^" in line_org and "n^ in line_new). */
-+ si -= (*mb_head_off)(line_org, line_org + si);
-+ si -= (*mb_head_off)(line_new, line_new + si);
-+ }
-+ #endif
- if (*startp > si)
- *startp = si;
-
-*** ../vim-6.2.268/src/version.c Tue Feb 17 21:31:23 2004
---- src/version.c Tue Feb 17 21:36:06 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 269,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-172. You join listservers just for the extra e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.270
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.270
-Problem: Completion in Insert mode, then repeating with ".", doesn't handle
- composing characters in the completed text. (Raphael Finkel)
-Solution: Don't skip over composing chars when adding completed text to the
- redo buffer.
-Files: src/getchar.c
-
-
-*** ../vim-6.2.269/src/getchar.c Tue Feb 17 20:44:14 2004
---- src/getchar.c Tue Feb 17 17:47:22 2004
-***************
-*** 550,556 ****
- /* Handle a special or multibyte character. */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! c = mb_ptr2char_adv(&s);
- else
- #endif
- c = *s++;
---- 550,563 ----
- /* Handle a special or multibyte character. */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! {
-! c = (*mb_ptr2char)(s);
-! if (enc_utf8)
-! /* Handle composing chars as well. */
-! s += utf_ptr2len_check(s);
-! else
-! s += (*mb_ptr2len_check)(s);
-! }
- else
- #endif
- c = *s++;
-*** ../vim-6.2.269/src/version.c Tue Feb 17 21:36:55 2004
---- src/version.c Tue Feb 17 21:46:03 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 270,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-173. You keep tracking down the email addresses of all your friends
- (even childhood friends).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.271
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.271
-Problem: NetBeans: Can't do "tail -f" on the log. Passing socket info with
- an argument or environment variable is not secure.
-Solution: Wait after initializing the log. Allow passing the socket info
- through a file. (Gordon Prieur)
-Files: runtime/doc/netbeans.txt, src/main.c, src/netbeans.c
-
-
-*** ../vim-6.2.270/runtime/doc/netbeans.txt Fri Jan 30 21:03:16 2004
---- runtime/doc/netbeans.txt Sun Feb 15 16:45:37 2004
-***************
-*** 1,4 ****
-! *netbeans.txt* For Vim version 6.2. Last change: 2004 Jan 17
-
-
- VIM REFERENCE MANUAL by Gordon Prieur
---- 1,4 ----
-! *netbeans.txt* For Vim version 6.2. Last change: 2004 Feb 15
-
-
- VIM REFERENCE MANUAL by Gordon Prieur
-***************
-*** 200,207 ****
- ==============================================================================
- 9. Running Vim from NetBeans *netbeans-run*
-
-! NetBeans starts Vim with the |-nb| argument. The full form is: >
-! -nb:{hostname}:{addr}:{password}
-
- {hostname} is the name of the machine where NetBeans is running. When omitted
- the environment variable "__NETBEANS_HOST" is used or the default "localhost".
---- 200,225 ----
- ==============================================================================
- 9. Running Vim from NetBeans *netbeans-run*
-
-! NetBeans starts Vim with the |-nb| argument. Three forms can be used, that
-! differ in the way the information for the connection is specified:
-!
-! -nb={fname} from a file
-! -nb:{hostname}:{addr}:{password} directly
-! -nb from a file or environment
-!
-! *E660*
-! For security reasons, the best method is to write the information in a file
-! readable only by the user. The name of the file can be passed with the
-! "-nb={fname}" argument or, when "-nb" is used without a parameter, the
-! environment variable "__NETBEANS_CONINFO". The file must contain these three
-! lines, in any order:
-!
-! host={hostname}
-! port={addr}
-! auth={password}
-!
-! Other lines are ignored. The caller of Vim is responsible for deleting the
-! file afterwards.
-
- {hostname} is the name of the machine where NetBeans is running. When omitted
- the environment variable "__NETBEANS_HOST" is used or the default "localhost".
-*** ../vim-6.2.270/src/main.c Sun Feb 15 13:37:22 2004
---- src/main.c Sun Feb 15 15:58:56 2004
-***************
-*** 148,155 ****
- #endif
-
- # ifdef NBDEBUG
-- nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
- nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
- # endif
-
- /*
---- 148,155 ----
- #endif
-
- # ifdef NBDEBUG
- nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
-+ nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
- # endif
-
- /*
-*** ../vim-6.2.270/src/netbeans.c Thu Feb 5 12:09:25 2004
---- src/netbeans.c Sun Feb 15 21:25:26 2004
-***************
-*** 70,75 ****
---- 70,76 ----
- static long get_buf_size __ARGS((buf_T *));
-
- static void netbeans_connect __ARGS((void));
-+ static void getConnInfo __ARGS((char *file, char **host, char **port, char **password));
-
- static void nb_init_graphics __ARGS((void));
- static void coloncmd __ARGS((char *cmd, ...));
-***************
-*** 220,225 ****
---- 221,230 ----
- }
- #endif /* FEAT_GUI_W32 */
-
-+ #define NB_DEF_HOST "localhost"
-+ #define NB_DEF_ADDR "3219"
-+ #define NB_DEF_PASS "changeme"
-+
- static void
- netbeans_connect(void)
- {
-***************
-*** 235,271 ****
- struct sockaddr_un server;
- #endif
- char buf[32];
-! char * hostname;
-! char * address;
-! char * password;
-!
-! /* netbeansArg is -nb or -nb:<host>:<addr>:<password> */
-! if (netbeansArg[3] == ':')
-! netbeansArg += 4;
- else
-! netbeansArg = NULL;
-
-! hostname = netbeansArg;
-! if (hostname == NULL || *hostname == '\0')
-! hostname = getenv("__NETBEANS_HOST");
-! if (hostname == NULL || *hostname == '\0')
-! hostname = "localhost"; /* default */
-
-! address = strchr(hostname, ':');
-! if (address != NULL)
-! *address++ = '\0';
-! else
-! address = getenv("__NETBEANS_SOCKET");
- if (address == NULL || *address == '\0')
-! address = "3219"; /* default */
-!
-! password = strchr(address, ':');
-! if (password != NULL)
-! *password++ = '\0';
-! else
-! password = getenv("__NETBEANS_VIM_PASSWORD");
- if (password == NULL || *password == '\0')
-! password = "changeme"; /* default */
-
- #ifdef INET_SOCKETS
- port = atoi(address);
---- 240,314 ----
- struct sockaddr_un server;
- #endif
- char buf[32];
-! char *hostname = NULL;
-! char *address = NULL;
-! char *password = NULL;
-! char *fname;
-! char *arg = NULL;
-!
-! if (netbeansArg[3] == '=')
-! /* "-nb=fname": Read info from specified file. */
-! getConnInfo(netbeansArg + 4, &hostname, &address, &password);
- else
-! {
-! if (netbeansArg[3] == ':')
-! /* "-nb:<host>:<addr>:<password>": get info from argument */
-! arg = netbeansArg + 4;
-! if (arg == NULL && (fname = getenv("__NETBEANS_CONINFO")) != NULL)
-! /* "-nb": get info from file specified in environment */
-! getConnInfo(fname, &hostname, &address, &password);
-! else
-! {
-! if (arg != NULL)
-! {
-! /* "-nb:<host>:<addr>:<password>": get info from argument */
-! hostname = arg;
-! address = strchr(hostname, ':');
-! if (address != NULL)
-! {
-! *address++ = '\0';
-! password = strchr(address, ':');
-! if (password != NULL)
-! *password++ = '\0';
-! }
-! }
-
-! /* Get the missing values from the environment. */
-! if (hostname == NULL || *hostname == '\0')
-! hostname = getenv("__NETBEANS_HOST");
-! if (address == NULL)
-! address = getenv("__NETBEANS_SOCKET");
-! if (password == NULL)
-! password = getenv("__NETBEANS_VIM_PASSWORD");
-!
-! /* Move values to allocated memory. */
-! if (hostname != NULL)
-! hostname = (char *)vim_strsave((char_u *)hostname);
-! if (address != NULL)
-! address = (char *)vim_strsave((char_u *)address);
-! if (password != NULL)
-! password = (char *)vim_strsave((char_u *)password);
-! }
-! }
-
-! /* Use the default when a value is missing. */
-! if (hostname == NULL || *hostname == '\0')
-! {
-! vim_free(hostname);
-! hostname = (char *)vim_strsave((char_u *)NB_DEF_HOST);
-! }
- if (address == NULL || *address == '\0')
-! {
-! vim_free(address);
-! address = (char *)vim_strsave((char_u *)NB_DEF_ADDR);
-! }
- if (password == NULL || *password == '\0')
-! {
-! vim_free(password);
-! password = (char *)vim_strsave((char_u *)NB_DEF_PASS);
-! }
-! if (hostname == NULL || address == NULL || password == NULL)
-! goto theend; /* out of memory */
-
- #ifdef INET_SOCKETS
- port = atoi(address);
-***************
-*** 273,279 ****
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket() in netbeans_connect()");
-! return;
- }
-
- /* Get the server internet address and put into addr structure */
---- 316,322 ----
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket() in netbeans_connect()");
-! goto theend;
- }
-
- /* Get the server internet address and put into addr structure */
-***************
-*** 287,304 ****
- {
- /* DEBUG: input file */
- sd = open(hostname, O_RDONLY);
-! return;
- }
- PERROR("gethostbyname() in netbeans_connect()");
- sd = -1;
-! return;
- }
- memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()");
-! return;
- }
-
- server.sun_family = AF_UNIX;
---- 330,347 ----
- {
- /* DEBUG: input file */
- sd = open(hostname, O_RDONLY);
-! goto theend;
- }
- PERROR("gethostbyname() in netbeans_connect()");
- sd = -1;
-! goto theend;
- }
- memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()");
-! goto theend;
- }
-
- server.sun_family = AF_UNIX;
-***************
-*** 315,327 ****
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()#2 in netbeans_connect()");
-! return;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()#2 in netbeans_connect()");
-! return;
- }
- #endif
- if (connect(sd, (struct sockaddr *)&server, sizeof(server)))
---- 358,370 ----
- if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()#2 in netbeans_connect()");
-! goto theend;
- }
- #else
- if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
- {
- PERROR("socket()#2 in netbeans_connect()");
-! goto theend;
- }
- #endif
- if (connect(sd, (struct sockaddr *)&server, sizeof(server)))
-***************
-*** 368,374 ****
---- 411,463 ----
-
- haveConnection = TRUE;
-
-+ theend:
-+ vim_free(hostname);
-+ vim_free(address);
-+ vim_free(password);
- return;
-+ }
-+
-+ /*
-+ * Obtain the NetBeans hostname, port address and password from a file.
-+ * Return the strings in allocated memory.
-+ */
-+ static void
-+ getConnInfo(char *file, char **host, char **port, char **auth)
-+ {
-+ FILE *fp = mch_fopen(file, "r");
-+ char_u buf[BUFSIZ];
-+ char_u *lp;
-+ char_u *nl;
-+
-+ if (fp == NULL)
-+ PERROR("E660: Cannot open NetBeans connection info file");
-+ else
-+ {
-+ /* Read the file. There should be one of each parameter */
-+ while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
-+ {
-+ if ((nl = vim_strchr(lp, '\n')) != NULL)
-+ *nl = 0; /* strip off the trailing newline */
-+
-+ if (STRNCMP(lp, "host=", 5) == 0)
-+ {
-+ vim_free(*host);
-+ *host = (char *)vim_strsave(&buf[5]);
-+ }
-+ else if (STRNCMP(lp, "port=", 5) == 0)
-+ {
-+ vim_free(*port);
-+ *port = (char *)vim_strsave(&buf[5]);
-+ }
-+ else if (STRNCMP(lp, "auth=", 5) == 0)
-+ {
-+ vim_free(*auth);
-+ *auth = (char *)vim_strsave(&buf[5]);
-+ }
-+ }
-+ fclose(fp);
-+ }
- }
-
-
-*** ../vim-6.2.270/src/version.c Tue Feb 17 21:46:46 2004
---- src/version.c Thu Feb 19 14:39:28 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 271,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-184. You no longer ask prospective dates what their sign is, instead
- your line is "Hi, what's your URL?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.272
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.272
-Problem: When the "po" directory exists, but "po/Makefile" doesn't,
- building fails. Make loops when the "po" directory has been
- deleted after running configure.
-Solution: Check for the "po/Makefile" instead of just the "po" directory.
- Check this again before trying to run make with that Makefile.
-Files: src/auto/configure, src/configure.in, src/Makefile
-
-
-*** ../vim-6.2.271/src/auto/configure Wed Feb 4 12:12:05 2004
---- src/auto/configure Tue Feb 17 17:25:57 2004
-***************
-*** 7666,7684 ****
- fi
-
- echo $ac_n "checking for NLS""... $ac_c" 1>&6
-! echo "configure:7429: checking for NLS" >&5
-! if test -d po; then
- have_gettext="no"
- if test -n "$MSGFMT"; then
- cat > conftest.$ac_ext <<EOF
-! #line 7434 "configure"
- #include "confdefs.h"
- #include <libintl.h>
- int main() {
- gettext("Test");
- ; return 0; }
- EOF
-! if { (eval echo configure:7441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""gettext() works" 1>&6; have_gettext="yes"
- else
---- 7669,7687 ----
- fi
-
- echo $ac_n "checking for NLS""... $ac_c" 1>&6
-! echo "configure:7673: checking for NLS" >&5
-! if test -f po/Makefile; then
- have_gettext="no"
- if test -n "$MSGFMT"; then
- cat > conftest.$ac_ext <<EOF
-! #line 7678 "configure"
- #include "confdefs.h"
- #include <libintl.h>
- int main() {
- gettext("Test");
- ; return 0; }
- EOF
-! if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""gettext() works" 1>&6; have_gettext="yes"
- else
-*** ../vim-6.2.271/src/configure.in Wed Feb 4 12:12:05 2004
---- src/configure.in Tue Feb 17 17:25:03 2004
-***************
-*** 2475,2481 ****
- AC_MSG_RESULT(no)
- AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
- AC_MSG_CHECKING([for NLS])
-! if test -d po; then
- have_gettext="no"
- if test -n "$MSGFMT"; then
- AC_TRY_LINK(
---- 2475,2481 ----
- AC_MSG_RESULT(no)
- AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
- AC_MSG_CHECKING([for NLS])
-! if test -f po/Makefile; then
- have_gettext="no"
- if test -n "$MSGFMT"; then
- AC_TRY_LINK(
-***************
-*** 2509,2515 ****
- AC_MSG_RESULT([no]))
- fi
- else
-! AC_MSG_RESULT([no "po" directory - disabled]);
- fi
- else
- AC_MSG_RESULT(yes)
---- 2509,2515 ----
- AC_MSG_RESULT([no]))
- fi
- else
-! AC_MSG_RESULT([no "po/Makefile" - disabled]);
- fi
- else
- AC_MSG_RESULT(yes)
-*** ../vim-6.2.271/src/Makefile Mon Jan 12 19:56:01 2004
---- src/Makefile Tue Feb 17 21:13:56 2004
-***************
-*** 1494,1503 ****
- # Build the language specific files if they were unpacked.
- # Generate the converted .mo files separately, it's no problem if this fails.
- languages:
-! @if test -n "$(MAKEMO)"; then \
- cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix); \
- fi
-! -@if test -n "$(MAKEMO)"; then \
- cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix) converted; \
- fi
-
---- 1500,1509 ----
- # Build the language specific files if they were unpacked.
- # Generate the converted .mo files separately, it's no problem if this fails.
- languages:
-! @if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \
- cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix); \
- fi
-! -@if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \
- cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix) converted; \
- fi
-
-***************
-*** 1765,1771 ****
-
- # install the language specific files, if they were unpacked
- install-languages: languages $(DEST_LANG) $(DEST_KMAP)
-! if test -n "$(MAKEMO)"; then \
- cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \
- INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \
- fi
---- 1771,1777 ----
-
- # install the language specific files, if they were unpacked
- install-languages: languages $(DEST_LANG) $(DEST_KMAP)
-! if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \
- cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \
- INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \
- fi
-*** ../vim-6.2.271/src/version.c Thu Feb 19 14:43:37 2004
---- src/version.c Thu Feb 19 14:46:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 272,
- /**/
-
---
-A bad peace is better than a good war. - Yiddish Proverb
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.273
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.273
-Problem: Changing the sort order in an explorer window for an empty
- directory produces error messages. (Doug Kearns)
-Solution: When an invalid range is used for a function that is not going to
- be executed, skip over the arguments anyway.
-Files: src/eval.c
-
-
-*** ../vim-6.2.272/src/eval.c Tue Feb 3 17:25:35 2004
---- src/eval.c Wed Feb 18 12:00:45 2004
-***************
-*** 1315,1322 ****
- * call, and the loop is broken.
- */
- if (eap->skip)
- ++emsg_skip;
-! for (lnum = eap->line1; lnum <= eap->line2; ++lnum)
- {
- if (!eap->skip && eap->addr_count > 0)
- {
---- 1315,1327 ----
- * call, and the loop is broken.
- */
- if (eap->skip)
-+ {
- ++emsg_skip;
-! lnum = eap->line2; /* do it once, also with an invalid range */
-! }
-! else
-! lnum = eap->line1;
-! for ( ; lnum <= eap->line2; ++lnum)
- {
- if (!eap->skip && eap->addr_count > 0)
- {
-*** ../vim-6.2.272/src/version.c Thu Feb 19 14:48:06 2004
---- src/version.c Thu Feb 19 15:08:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 273,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-187. You promise yourself that you'll only stay online for another
- 15 minutes...at least once every hour.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.274
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.274
-Problem: ":print" skips empty lines when 'list' is set and there is no
- "eol" in 'listchars'. (Yakov Lerner)
-Solution: Skip outputting a space for an empty line only when 'list' is set
- and the end-of-line character is not empty.
-Files: src/message.c
-
-
-*** ../vim-6.2.273/src/message.c Tue Feb 17 20:44:14 2004
---- src/message.c Wed Feb 18 10:56:09 2004
-***************
-*** 1435,1441 ****
-
- /* output a space for an empty line, otherwise the line will be
- * overwritten */
-! if (*s == NUL && !curwin->w_p_list)
- msg_putchar(' ');
-
- for (;;)
---- 1435,1441 ----
-
- /* output a space for an empty line, otherwise the line will be
- * overwritten */
-! if (*s == NUL && !(curwin->w_p_list && lcs_eol != NUL))
- msg_putchar(' ');
-
- for (;;)
-***************
-*** 1479,1485 ****
- attr = hl_attr(HLF_8);
- }
- }
-! else if (c == NUL && curwin->w_p_list && lcs_eol)
- {
- p_extra = (char_u *)"";
- c_extra = NUL;
---- 1479,1485 ----
- attr = hl_attr(HLF_8);
- }
- }
-! else if (c == NUL && curwin->w_p_list && lcs_eol != NUL)
- {
- p_extra = (char_u *)"";
- c_extra = NUL;
-*** ../vim-6.2.273/src/version.c Thu Feb 19 15:11:20 2004
---- src/version.c Thu Feb 19 15:12:09 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 274,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-188. You purchase a laptop so you can surf while sitting on the can.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.275 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.275 (extra, after 6.2.267)
-Problem: Warning for uninitialized variable when using gcc.
-Solution: Initialize "acLen" to zero. (Bill McCarthy)
-Files: src/gui_w32.c
-
-
-*** ../vim-6.2.274/src/gui_w32.c Tue Feb 17 21:08:58 2004
---- src/gui_w32.c Wed Feb 18 11:35:44 2004
-***************
-*** 2966,2972 ****
- int col, spaceWidth, len;
- int columnWidths[2];
- char_u *label, *text;
-! int acLen;
- int nameLen;
- int padding0, padding1, padding2 = 0;
- int sepPadding=0;
---- 2966,2972 ----
- int col, spaceWidth, len;
- int columnWidths[2];
- char_u *label, *text;
-! int acLen = 0;
- int nameLen;
- int padding0, padding1, padding2 = 0;
- int sepPadding=0;
-***************
-*** 3262,3268 ****
- /*
- * Reassert ourselves as the active window. This is so that after creating
- * a tearoff, the user doesn't have to click with the mouse just to start
-! * typing agin!
- */
- (void)SetActiveWindow(s_hwnd);
-
---- 3262,3268 ----
- /*
- * Reassert ourselves as the active window. This is so that after creating
- * a tearoff, the user doesn't have to click with the mouse just to start
-! * typing again!
- */
- (void)SetActiveWindow(s_hwnd);
-
-*** ../vim-6.2.274/src/version.c Thu Feb 19 15:14:04 2004
---- src/version.c Thu Feb 19 15:16:17 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 275,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-189. You put your e-mail address in the upper left-hand corner of envelopes.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.276
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.276
-Problem: ":echo X()" does not put a line break between the message that X()
- displays and the text that X() returns. (Yakov Lerner)
-Solution: Invoke msg_start() after evaluating the argument.
-Files: src/eval.c
-
-
-*** ../vim-6.2.275/src/eval.c Thu Feb 19 15:11:20 2004
---- src/eval.c Wed Feb 18 12:00:45 2004
-***************
-*** 8447,8454 ****
-
- if (eap->skip)
- ++emsg_skip;
-- else if (eap->cmdidx == CMD_echo)
-- msg_start();
- while (*arg != NUL && *arg != '|' && *arg != '\n' && !got_int)
- {
- p = arg;
---- 8447,8452 ----
-***************
-*** 8466,8472 ****
---- 8464,8476 ----
- if (!eap->skip)
- {
- if (atstart)
-+ {
- atstart = FALSE;
-+ /* Call msg_start() after eval1(), evaluating the expression
-+ * may cause a message to appear. */
-+ if (eap->cmdidx == CMD_echo)
-+ msg_start();
-+ }
- else if (eap->cmdidx == CMD_echo)
- msg_puts_attr((char_u *)" ", echo_attr);
- for (p = get_var_string(&retvar); *p != NUL && !got_int; ++p)
-*** ../vim-6.2.275/src/version.c Thu Feb 19 15:17:18 2004
---- src/version.c Thu Feb 19 15:18:35 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 276,
- /**/
-
---
-A computer program does what you tell it to do, not what you want it to do.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.277
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.277
-Problem: Vim crashes when a ":runtime ftplugin/ada.vim" causes a recursive
- loop. (Robert Nowotniak)
-Solution: Restore "msg_list" before returning from do_cmdline().
-Files: src/ex_docmd.c
-
-
-*** ../vim-6.2.276/src/ex_docmd.c Sun Feb 8 17:07:07 2004
---- src/ex_docmd.c Thu Feb 19 11:46:55 2004
-***************
-*** 664,669 ****
---- 664,670 ----
- /* When converting to an exception, we do not include the command name
- * since this is not an error of the specific command. */
- do_errthrow((struct condstack *)NULL, (char_u *)NULL);
-+ msg_list = saved_msg_list;
- #endif
- return FAIL;
- }
-*** ../vim-6.2.276/src/version.c Thu Feb 19 15:20:32 2004
---- src/version.c Thu Feb 19 15:22:21 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 277,
- /**/
-
---
-I'm in shape. Round IS a shape.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.278
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.278
-Problem: Using "much" instead of "many".
-Solution: Correct the error message.
-Files: src/eval.c
-
-
-*** ../vim-6.2.277/src/eval.c Thu Feb 19 15:20:32 2004
---- src/eval.c Wed Feb 18 12:00:45 2004
-***************
-*** 5919,5925 ****
- {
- vim_free(p);
- vim_free(remain);
-! EMSG(_("E655: Too much symbolic links (cycle?)"));
- retvar->var_val.var_string = NULL;
- goto fail;
- }
---- 5919,5925 ----
- {
- vim_free(p);
- vim_free(remain);
-! EMSG(_("E655: Too many symbolic links (cycle?)"));
- retvar->var_val.var_string = NULL;
- goto fail;
- }
-*** ../vim-6.2.277/src/version.c Thu Feb 19 15:23:11 2004
---- src/version.c Thu Feb 19 15:28:13 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 278,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-190. You quickly hand over your wallet, leather jacket, and car keys
- during a mugging, then proceed to beat the crap out of your
- assailant when he asks for your laptop.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.279
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.279
-Problem: There is no default choice for a confirm() dialog, now that it is
- possible not to have a default choice.
-Solution: Make the first choice the default choice.
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-6.2.278/runtime/doc/eval.txt Sun Jan 18 20:50:42 2004
---- runtime/doc/eval.txt Sun Feb 15 20:29:15 2004
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 6.2. Last change: 2004 Jan 18
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 6.2. Last change: 2004 Feb 15
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1113,1119 ****
- The optional {default} argument is the number of the choice
- that is made if the user hits <CR>. Use 1 to make the first
- choice the default one. Use 0 to not set a default. If
-! {default} is omitted, 0 is used.
- The optional {type} argument gives the type of dialog. This
- is only used for the icon of the Win32 GUI. It can be one of
- these values: "Error", "Question", "Info", "Warning" or
---- 1115,1121 ----
- The optional {default} argument is the number of the choice
- that is made if the user hits <CR>. Use 1 to make the first
- choice the default one. Use 0 to not set a default. If
-! {default} is omitted, 1 is used.
- The optional {type} argument gives the type of dialog. This
- is only used for the icon of the Win32 GUI. It can be one of
- these values: "Error", "Question", "Info", "Warning" or
-*** ../vim-6.2.278/src/eval.c Thu Feb 19 15:28:58 2004
---- src/eval.c Wed Feb 18 12:00:45 2004
-***************
-*** 3628,3634 ****
- char_u *buttons = NULL;
- char_u buf[NUMBUFLEN];
- char_u buf2[NUMBUFLEN];
-! int def = 0;
- int type = VIM_GENERIC;
- int c;
-
---- 3628,3634 ----
- char_u *buttons = NULL;
- char_u buf[NUMBUFLEN];
- char_u buf2[NUMBUFLEN];
-! int def = 1;
- int type = VIM_GENERIC;
- int c;
-
-*** ../vim-6.2.278/src/version.c Thu Feb 19 15:28:58 2004
---- src/version.c Thu Feb 19 15:30:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 279,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-191. You rate eating establishments not by the quality of the food,
- but by the availability of electrical outlets for your PowerBook.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.280
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.280
-Problem: "do" and ":diffget" don't work in the first line and the last line
- of a buffer. (Aron Griffis)
-Solution: Find a difference above the first line and below the last line.
- Also fix a few display updating bugs.
-Files: src/diff.c, src/fold.c, src/move.c
-
-
-*** ../vim-6.2.279/src/diff.c Tue Feb 17 21:36:55 2004
---- src/diff.c Thu Feb 19 21:35:17 2004
-***************
-*** 411,416 ****
---- 411,420 ----
-
- }
- diff_redraw(TRUE);
-+
-+ /* Recompute the scroll binding, may remove or add filler lines (e.g.,
-+ * when adding lines above w_topline). */
-+ check_scrollbind((linenr_T)0, 0L);
- }
-
- /*
-***************
-*** 538,543 ****
---- 542,548 ----
- int dofold; /* also recompute the folds */
- {
- win_T *wp;
-+ int n;
-
- for (wp = firstwin; wp != NULL; wp = wp->w_next)
- if (wp->w_p_diff)
-***************
-*** 547,552 ****
---- 552,565 ----
- if (dofold && foldmethodIsDiff(wp))
- foldUpdateAll(wp);
- #endif
-+ /* A change may have made filler lines invalid, need to take care
-+ * of that for other windows. */
-+ if (wp != curwin && wp->w_topfill > 0)
-+ {
-+ n = diff_check(wp, wp->w_topline);
-+ if (wp->w_topfill > n)
-+ wp->w_topfill = (n < 0 ? 0 : n);
-+ }
- }
- }
-
-***************
-*** 1804,1812 ****
-
- diff_busy = TRUE;
-
-! /* When no range given include the line above the cursor. */
-! if (eap->addr_count == 0 && eap->line1 > 1)
-! --eap->line1;
-
- if (eap->cmdidx == CMD_diffget)
- {
---- 1817,1835 ----
-
- diff_busy = TRUE;
-
-! /* When no range given include the line above or below the cursor. */
-! if (eap->addr_count == 0)
-! {
-! /* Make it possible that ":diffget" on the last line gets line below
-! * the cursor line when there is no difference above the cursor. */
-! if (eap->cmdidx == CMD_diffget
-! && eap->line1 == curbuf->b_ml.ml_line_count
-! && diff_check(curwin, eap->line1) == 0
-! && (eap->line1 == 1 || diff_check(curwin, eap->line1 - 1) == 0))
-! ++eap->line2;
-! else if (eap->line1 > 0)
-! --eap->line1;
-! }
-
- if (eap->cmdidx == CMD_diffget)
- {
-*** ../vim-6.2.279/src/fold.c Tue Jan 27 17:55:24 2004
---- src/fold.c Thu Feb 19 20:55:36 2004
-***************
-*** 837,843 ****
-
- /* foldUpdateAll() {{{2 */
- /*
-! * Update all lines in the current window for folding.
- * Used when a fold setting changes or after reloading the buffer.
- * The actual updating is postponed until fold info is used, to avoid doing
- * every time a setting is changed or a syntax item is added.
---- 837,843 ----
-
- /* foldUpdateAll() {{{2 */
- /*
-! * Update all lines in a window for folding.
- * Used when a fold setting changes or after reloading the buffer.
- * The actual updating is postponed until fold info is used, to avoid doing
- * every time a setting is changed or a syntax item is added.
-***************
-*** 847,853 ****
- win_T *win;
- {
- win->w_foldinvalid = TRUE;
-! redraw_later(NOT_VALID);
- }
-
- /* foldMoveTo() {{{2 */
---- 847,853 ----
- win_T *win;
- {
- win->w_foldinvalid = TRUE;
-! redraw_win_later(win, NOT_VALID);
- }
-
- /* foldMoveTo() {{{2 */
-*** ../vim-6.2.279/src/move.c Thu Feb 13 20:08:09 2003
---- src/move.c Thu Feb 19 19:47:30 2004
-***************
-*** 207,219 ****
- check_topline = TRUE;
- else if (check_top_offset())
- check_topline = TRUE;
- #ifdef FEAT_DIFF
- /* Check if there are more filler lines than allowed. */
-! else if (curwin->w_topfill > diff_check_fill(curwin,
- curwin->w_topline))
-! check_topline = TRUE;
- #endif
-- }
-
- if (check_topline)
- {
---- 207,219 ----
- check_topline = TRUE;
- else if (check_top_offset())
- check_topline = TRUE;
-+ }
- #ifdef FEAT_DIFF
- /* Check if there are more filler lines than allowed. */
-! if (!check_topline && curwin->w_topfill > diff_check_fill(curwin,
- curwin->w_topline))
-! check_topline = TRUE;
- #endif
-
- if (check_topline)
- {
-***************
-*** 746,752 ****
- #ifdef FEAT_DIFF
- if (lnum == wp->w_topline)
- wp->w_cline_row += plines_win_nofill(wp, lnum++, TRUE)
-! + wp->w_topfill;
- else
- #endif
- wp->w_cline_row += plines_win(wp, lnum++, TRUE);
---- 746,752 ----
- #ifdef FEAT_DIFF
- if (lnum == wp->w_topline)
- wp->w_cline_row += plines_win_nofill(wp, lnum++, TRUE)
-! + wp->w_topfill;
- else
- #endif
- wp->w_cline_row += plines_win(wp, lnum++, TRUE);
-*** ../vim-6.2.279/src/version.c Thu Feb 19 15:31:20 2004
---- src/version.c Fri Feb 20 21:33:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 280,
- /**/
-
---
-$ echo pizza > /dev/oven
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.281
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.281
-Problem: PostScript printing doesn't work on Mac OS X 10.3.2.
-Solution: Adjust the header file. (Mike Williams)
-Files: runtime/print/prolog.ps
-
-
-*** ../vim-6.2.280/runtime/print/prolog.ps Sun May 11 21:10:45 2003
---- runtime/print/prolog.ps Fri Feb 20 11:27:01 2004
-***************
-*** 1,6 ****
- %!PS-Adobe-3.0 Resource-ProcSet
- %%Title: VIM-Prolog
-! %%Version: 1.3 0
- %%EndComments
- % Editing of this file is NOT RECOMMENDED. You run a very good risk of causing
- % all PostScript printing from VIM failing if you do. PostScript is not called
---- 1,6 ----
- %!PS-Adobe-3.0 Resource-ProcSet
- %%Title: VIM-Prolog
-! %%Version: 1.3 1
- %%EndComments
- % Editing of this file is NOT RECOMMENDED. You run a very good risk of causing
- % all PostScript printing from VIM failing if you do. PostScript is not called
-***************
-*** 30,40 ****
- /c{pop}bd
- }ifelse
- /ffs{findfont exch scalefont d}bd/sf{setfont}bd
-! /ref{1 db findfont dup maxlength dict /NFD ed{exch dup/FID ne{exch NFD 3 1 roll
- put}{pop pop}ifelse}forall/Encoding findresource dup length 256 eq{NFD/Encoding
- 3 -1 roll put}{pop}ifelse NFD dup/FontType get 3 ne{/CharStrings}{/CharProcs}
-! ifelse 2 copy get dup maxlength dict copy[/questiondown/space]{2 copy known{2
-! copy get 2 index/.notdef 3 -1 roll put pop exit}if pop}forall put dup NFD
-! /FontName 3 -1 roll put NFD definefont pop end}bd
- % vim:ff=unix:
- %%EOF
---- 30,40 ----
- /c{pop}bd
- }ifelse
- /ffs{findfont exch scalefont d}bd/sf{setfont}bd
-! /ref{1 db findfont dup maxlength dict/NFD ed{exch dup/FID ne{exch NFD 3 1 roll
- put}{pop pop}ifelse}forall/Encoding findresource dup length 256 eq{NFD/Encoding
- 3 -1 roll put}{pop}ifelse NFD dup/FontType get 3 ne{/CharStrings}{/CharProcs}
-! ifelse 2 copy known{2 copy get dup maxlength dict copy[/questiondown/space]{2
-! copy known{2 copy get 2 index/.notdef 3 -1 roll put pop exit}if pop}forall put
-! }{pop pop}ifelse dup NFD/FontName 3 -1 roll put NFD definefont pop end}bd
- % vim:ff=unix:
- %%EOF
-*** ../vim-6.2.280/src/version.c Fri Feb 20 21:36:20 2004
---- src/version.c Fri Feb 20 21:53:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 281,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-204. You're being audited because you mailed your tax return to the IRC.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.282
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.282
-Problem: When using CTRL-O to go back to a help file, it becomes listed.
- (Andrew Nesbit)
- Using ":tag" or ":tjump" in a help file doesn't keep the help file
- settings (e.g. for 'iskeyword').
-Solution: Don't mark a buffer as listed when its help flag is set. Put all
- the option settings for a help buffer together in do_ecmd().
-Files: src/ex_cmds.c
-
-
-*** ../vim-6.2.281/src/ex_cmds.c Wed Feb 4 21:42:30 2004
---- src/ex_cmds.c Fri Feb 20 22:00:27 2004
-***************
-*** 2835,2846 ****
-
- if ((flags & ECMD_SET_HELP) || keep_help_flag)
- {
- curbuf->b_help = TRUE;
- #ifdef FEAT_QUICKFIX
- set_string_option_direct((char_u *)"buftype", -1,
-! (char_u *)"help", OPT_FREE |OPT_LOCAL);
- #endif
-! curbuf->b_p_ma = FALSE;
- curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
- curwin->w_p_nu = 0; /* no line numbers */
- #ifdef FEAT_SCROLLBIND
---- 2835,2873 ----
-
- if ((flags & ECMD_SET_HELP) || keep_help_flag)
- {
-+ char_u *p;
-+
- curbuf->b_help = TRUE;
- #ifdef FEAT_QUICKFIX
- set_string_option_direct((char_u *)"buftype", -1,
-! (char_u *)"help", OPT_FREE|OPT_LOCAL);
-! #endif
-!
-! /*
-! * Always set these options after jumping to a help tag, because the
-! * user may have an autocommand that gets in the way.
-! * Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and
-! * latin1 word characters (for translated help files).
-! * Only set it when needed, buf_init_chartab() is some work.
-! */
-! p =
-! #ifdef EBCDIC
-! (char_u *)"65-255,^*,^|,^\"";
-! #else
-! (char_u *)"!-~,^*,^|,^\",192-255";
- #endif
-! if (STRCMP(curbuf->b_p_isk, p) != 0)
-! {
-! set_string_option_direct((char_u *)"isk", -1, p,
-! OPT_FREE|OPT_LOCAL);
-! check_buf_options(curbuf);
-! (void)buf_init_chartab(curbuf, FALSE);
-! }
-!
-! curbuf->b_p_ts = 8; /* 'tabstop' is 8 */
-! curwin->w_p_list = FALSE; /* no list mode */
-!
-! curbuf->b_p_ma = FALSE; /* not modifiable */
- curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
- curwin->w_p_nu = 0; /* no line numbers */
- #ifdef FEAT_SCROLLBIND
-***************
-*** 2869,2875 ****
- #ifdef FEAT_AUTOCMD
- buf = curbuf;
- #endif
-! set_buflisted(TRUE);
- }
-
- #ifdef FEAT_AUTOCMD
---- 2896,2905 ----
- #ifdef FEAT_AUTOCMD
- buf = curbuf;
- #endif
-! /* Don't make a buffer listed if it's a help buffer. Useful when
-! * using CTRL-O to go back to a help file. */
-! if (!curbuf->b_help)
-! set_buflisted(TRUE);
- }
-
- #ifdef FEAT_AUTOCMD
-***************
-*** 4649,4677 ****
- if (alt_fnum != 0 && curwin->w_alt_fnum == empty_fnum)
- curwin->w_alt_fnum = alt_fnum;
-
-- /*
-- * Always set these options after jumping to a help tag, because the user
-- * may have an autocommand that gets in the way.
-- * Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and
-- * latin1 word characters (for translated help files).
-- * Only set it when needed, buf_init_chartab() is some work.
-- */
-- p =
-- #ifdef EBCDIC
-- (char_u *)"65-255,^*,^|,^\"";
-- #else
-- (char_u *)"!-~,^*,^|,^\",192-255";
-- #endif
-- if (STRCMP(curbuf->b_p_isk, p) != 0)
-- {
-- set_string_option_direct((char_u *)"isk", -1, p, OPT_FREE|OPT_LOCAL);
-- check_buf_options(curbuf);
-- (void)buf_init_chartab(curbuf, FALSE);
-- }
--
-- curbuf->b_p_ts = 8;
-- curwin->w_p_list = FALSE;
--
- erret:
- if (need_free)
- vim_free(arg);
---- 4705,4710 ----
-*** ../vim-6.2.281/src/version.c Fri Feb 20 21:53:42 2004
---- src/version.c Fri Feb 20 21:54:54 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 282,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-205. You're constantly yelling at your spouse, family, roommate, whatever,
- for using the phone for stupid things...like talking.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.283
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.283
-Problem: The "local additions" in help.txt are used without conversion,
- causing latin1 characters showing up wrong when 'enc' is utf-8.
- (Antoine J. Mechelynck)
-Solution: Convert the text to 'encoding'.
-Files: src/ex_cmds.c
-
-
-*** ../vim-6.2.282/src/ex_cmds.c Fri Feb 20 22:04:18 2004
---- src/ex_cmds.c Fri Feb 20 22:00:08 2004
-***************
-*** 5003,5008 ****
---- 5031,5040 ----
- FILE *fd;
- char_u *s;
- int fi;
-+ #ifdef FEAT_MBYTE
-+ vimconv_T vc;
-+ char_u *cp;
-+ #endif
-
- /* Find all "doc/ *.txt" files in this directory. */
- add_pathsep(NameBuff);
-***************
-*** 5031,5038 ****
---- 5063,5096 ----
- *s = NUL;
- ++s;
- }
-+ #ifdef FEAT_MBYTE
-+ /* Assume the help file is latin1 and
-+ * conversion to the current
-+ * 'encoding' may be required. */
-+ vc.vc_type = CONV_NONE;
-+ convert_setup(&vc,
-+ (char_u *)"latin1", p_enc);
-+ if (vc.vc_type == CONV_NONE)
-+ /* No conversion needed. */
-+ cp = IObuff;
-+ else
-+ {
-+ /* Do the conversion. If it fails
-+ * use the unconverted text. */
-+ cp = string_convert(&vc, IObuff,
-+ NULL);
-+ if (cp == NULL)
-+ cp = IObuff;
-+ }
-+ convert_setup(&vc, NULL, NULL);
-+
-+ ml_append(lnum, cp, (colnr_T)0, FALSE);
-+ if (cp != IObuff)
-+ vim_free(cp);
-+ #else
- ml_append(lnum, IObuff, (colnr_T)0,
- FALSE);
-+ #endif
- ++lnum;
- }
- fclose(fd);
-*** ../vim-6.2.282/src/version.c Fri Feb 20 22:04:18 2004
---- src/version.c Fri Feb 20 22:06:21 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 283,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-206. You religiously respond immediately to e-mail, while ignoring
- your growing pile of snail mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.284
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.284
-Problem: Listing a function puts "endfunction" in the message history.
- Typing "q" at the more prompt isn't handled correctly when listing
- variables and functions. (Hara Krishna Dara)
-Solution: Don't use msg() for "endfunction". Check "got_int" regularly.
-Files: src/eval.c
-
-
-*** ../vim-6.2.283/src/eval.c Thu Feb 19 15:31:20 2004
---- src/eval.c Fri Feb 20 20:23:16 2004
-***************
-*** 949,955 ****
- /*
- * List variables.
- */
-! while (!ends_excmd(*arg))
- {
- char_u *temp_string = NULL;
- int arg_len;
---- 949,955 ----
- /*
- * List variables.
- */
-! while (!ends_excmd(*arg) && !got_int)
- {
- char_u *temp_string = NULL;
- int arg_len;
-***************
-*** 8732,8744 ****
- eap->nextcmd = check_nextcmd(p);
- if (eap->nextcmd != NULL)
- *p = NUL;
-! if (!eap->skip)
- {
- fp = find_func(name);
- if (fp != NULL)
- {
- list_func_head(fp, TRUE);
-! for (j = 0; j < fp->lines.ga_len; ++j)
- {
- msg_putchar('\n');
- msg_outnum((long)(j + 1));
---- 8733,8745 ----
- eap->nextcmd = check_nextcmd(p);
- if (eap->nextcmd != NULL)
- *p = NUL;
-! if (!eap->skip && !got_int)
- {
- fp = find_func(name);
- if (fp != NULL)
- {
- list_func_head(fp, TRUE);
-! for (j = 0; j < fp->lines.ga_len && !got_int; ++j)
- {
- msg_putchar('\n');
- msg_outnum((long)(j + 1));
-***************
-*** 8747,8754 ****
- if (j < 99)
- msg_putchar(' ');
- msg_prt_line(FUNCLINE(fp, j));
- }
-- MSG(" endfunction");
- }
- else
- EMSG2(_("E123: Undefined function: %s"), eap->arg);
---- 8748,8761 ----
- if (j < 99)
- msg_putchar(' ');
- msg_prt_line(FUNCLINE(fp, j));
-+ out_flush(); /* show a line at a time */
-+ ui_breakcheck();
-+ }
-+ if (!got_int)
-+ {
-+ msg_putchar('\n');
-+ msg_puts((char_u *)" endfunction");
- }
- }
- else
- EMSG2(_("E123: Undefined function: %s"), eap->arg);
-*** ../vim-6.2.283/src/version.c Fri Feb 20 22:08:18 2004
---- src/version.c Fri Feb 20 22:09:31 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 284,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-207. You're given one phone call in prison and you ask them for a laptop.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.285
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.285
-Problem: GUI: In a single wrapped line that fills the window, "gj" in the
- last screen line leaves the cursor behind. (Ivan Tarasov)
-Solution: Undraw the cursor before scrolling the text up.
-Files: src/gui.c
-
-
-*** ../vim-6.2.284/src/gui.c Tue Feb 17 21:31:23 2004
---- src/gui.c Fri Feb 20 17:08:50 2004
-***************
-*** 1677,1683 ****
- void
- gui_dont_update_cursor()
- {
-! can_update_cursor = FALSE;
- }
-
- void
---- 1677,1688 ----
- void
- gui_dont_update_cursor()
- {
-! if (gui.in_use)
-! {
-! /* Undraw the cursor now, we probably can't do it after the change. */
-! gui_undraw_cursor();
-! can_update_cursor = FALSE;
-! }
- }
-
- void
-*** ../vim-6.2.284/src/version.c Fri Feb 20 22:11:01 2004
---- src/version.c Fri Feb 20 22:12:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 285,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-208. Your goals for the future are obtaining an T1 connection and
- a 130 gig hard drive.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.286
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.286
-Problem: When trying to rename a file and it doesn't exist, the destination
- file is deleted anyway. (Luc Deux)
-Solution: Don't delete the destination when the source doesn't exist. (Taro
- Muraoka)
-Files: src/fileio.c
-
-
-*** ../vim-6.2.285/src/fileio.c Fri Jan 30 21:03:16 2004
---- src/fileio.c Sat Feb 21 12:09:01 2004
-***************
-*** 5249,5254 ****
---- 5249,5255 ----
- #ifdef AMIGA
- BPTR flock;
- #endif
-+ struct stat st;
-
- /*
- * When the names are identical, there is nothing to do.
-***************
-*** 5257,5265 ****
- return 0;
-
- /*
-! * First delete the "to" file, this is required on some systems to make
-! * the mch_rename() work, on other systems it makes sure that we don't
-! * have two files when the mch_rename() fails.
- */
-
- #ifdef AMIGA
---- 5258,5272 ----
- return 0;
-
- /*
-! * Fail if the "from" file doesn't exist. Avoids that "to" is deleted.
-! */
-! if (mch_stat((char *)from, &st) < 0)
-! return -1;
-!
-! /*
-! * Delete the "to" file, this is required on some systems to make the
-! * mch_rename() work, on other systems it makes sure that we don't have
-! * two files when the mch_rename() fails.
- */
-
- #ifdef AMIGA
-*** ../vim-6.2.285/src/version.c Fri Feb 20 22:14:29 2004
---- src/version.c Tue Feb 24 15:17:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 286,
- /**/
-
---
-"The amigos also appear to be guilty of not citing the work of others who had
-gone before them. Even worse, they have a chapter about modeling time and
-space without making a single reference to Star Trek!"
- (Scott Ambler, reviewing the UML User Guide)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.287
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.287 (after 6.2.264)
-Problem: Duplicate lines are added to the viminfo file.
-Solution: Compare with existing entries without an offset. Also fixes
- reading very long history lines from viminfo.
-Files: src/ex_getln.c
-
-
-*** ../vim-6.2.286/src/ex_getln.c Tue Feb 17 20:22:36 2004
---- src/ex_getln.c Tue Feb 24 14:38:36 2004
-***************
-*** 4742,4783 ****
- vir_T *virp;
- {
- int type;
-! int sep;
-! int len;
- char_u *val;
-
- type = hist_char2type(virp->vir_line[0]);
- if (viminfo_hisidx[type] < viminfo_hislen[type])
- {
-! /* Use a zero offset, so that we have some extra space in the
-! * allocated memory for the separator. */
-! val = viminfo_readstring(virp, 0, TRUE);
-! if (val != NULL)
- {
-! if (!in_history(type, val, viminfo_add_at_front))
- {
- len = STRLEN(val);
-! if (type == HIST_SEARCH)
-! {
-! /* Search entry: Move the separator from the second column
-! * to after the NUL. */
-! sep = val[1];
-! --len;
-! mch_memmove(val, val + 2, (size_t)len);
-! val[len] = (sep == ' ' ? NUL : sep);
-! }
-! else
- {
-! /* Not a search entry: No separator in the viminfo file,
-! * add a NUL separator. */
-! mch_memmove(val, val + 1, (size_t)len);
-! val[len] = NUL;
- }
-- viminfo_history[type][viminfo_hisidx[type]++] = val;
- }
-- else
-- vim_free(val);
- }
- }
- return viminfo_readline(virp);
- }
---- 4781,4823 ----
- vir_T *virp;
- {
- int type;
-! long_u len;
- char_u *val;
-+ char_u *p;
-
- type = hist_char2type(virp->vir_line[0]);
- if (viminfo_hisidx[type] < viminfo_hislen[type])
- {
-! val = viminfo_readstring(virp, 1, TRUE);
-! if (val != NULL && *val != NUL)
- {
-! if (!in_history(type, val + (type == HIST_SEARCH),
-! viminfo_add_at_front))
- {
-+ /* Need to re-allocate to append the separator byte. */
- len = STRLEN(val);
-! p = lalloc(len + 2, TRUE);
-! if (p != NULL)
- {
-! if (type == HIST_SEARCH)
-! {
-! /* Search entry: Move the separator from the first
-! * column to after the NUL. */
-! mch_memmove(p, val + 1, (size_t)len);
-! p[len] = (*val == ' ' ? NUL : *val);
-! }
-! else
-! {
-! /* Not a search entry: No separator in the viminfo
-! * file, add a NUL separator. */
-! mch_memmove(p, val, (size_t)len + 1);
-! p[len + 1] = NUL;
-! }
-! viminfo_history[type][viminfo_hisidx[type]++] = p;
- }
- }
- }
-+ vim_free(val);
- }
- return viminfo_readline(virp);
- }
-*** ../vim-6.2.286/src/version.c Tue Feb 24 15:19:00 2004
---- src/version.c Tue Feb 24 15:21:20 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 287,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-239. You think "surfing" is something you do on dry land.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.288 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.288 (extra)
-Problem: Mac: An external program can't be interrupted.
-Solution: Don't use the 'c' key for backspace. (Eckehard Berns)
-Files: src/gui_mac.c
-
-
-*** ../vim-6.2.287/src/gui_mac.c Tue Feb 10 19:44:28 2004
---- src/gui_mac.c Tue Feb 24 20:51:19 2004
-***************
-*** 236,241 ****
---- 247,253 ----
- #define vk_Space 0x31 /* -> 20 */
- #define vk_Tab 0x30 /* -> 09 */
- #define vk_Return 0x24 /* -> 0D */
-+ /* This is wrong for OSX, what is it for? */
- #define vk_Delete 0X08 /* -> 08 BackSpace */
-
- #define vk_Help 0x72 /* -> 05 */
-***************
-*** 293,299 ****
---- 305,314 ----
-
- /* {XK_Help, '%', '1'}, */
- /* {XK_Undo, '&', '8'}, */
-+ /* {XK_BackSpace, 'k', 'b'}, */
-+ #ifndef MACOS_X
- {vk_Delete, 'k', 'b'},
-+ #endif
- {vk_Insert, 'k', 'I'},
- {vk_FwdDelete, 'k', 'D'},
- {vk_Home, 'k', 'h'},
-***************
-*** 307,315 ****
-
- /* End of list marker: */
- {(KeySym)0, 0, 0}
--
-- /** {XK_BackSpace, 'k', 'b'}, **/
--
- };
-
- /*
---- 322,327 ----
-*** ../vim-6.2.287/src/version.c Tue Feb 24 15:23:58 2004
---- src/version.c Tue Feb 24 20:08:53 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 288,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-246. You use up your free 100 hours in less than a week.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.289
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.289
-Problem: Compiling the Tcl interface with thread support causes ":make" to
- fail. (Juergen Salk)
-Solution: Use $TCL_DEFS from the Tcl config script to obtain the required
- compile flags for using the thread library.
-Files: src/auto/configure, src/configure.in
-
-
-*** ../vim-6.2.288/src/auto/configure Thu Feb 19 14:48:06 2004
---- src/auto/configure Tue Feb 24 17:08:05 2004
-***************
-*** 2068,2080 ****
- echo "$ac_t""$try/tclConfig.sh" 1>&6
- . $try/tclConfig.sh
- TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
- break
- fi
- done
- if test -z "$TCL_LIBS"; then
- echo "$ac_t""<not found>" 1>&6
- echo $ac_n "checking for Tcl library by myself""... $ac_c" 1>&6
-! echo "configure:1931: checking for Tcl library by myself" >&5
- tcllib=`echo $tclinc | sed s/include/lib/g`
- for ext in .so .a ; do
- for ver in "" $tclver ; do
---- 2068,2081 ----
- echo "$ac_t""$try/tclConfig.sh" 1>&6
- . $try/tclConfig.sh
- TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
-+ TCL_DEFS=`echo $TCL_DEFS | tr ' ' '\012' | sed -e '/^-[^D]/d' -e '/-D[^_]/d' -e 's/-D_/ -D_/' | tr -d '\012'`
- break
- fi
- done
- if test -z "$TCL_LIBS"; then
- echo "$ac_t""<not found>" 1>&6
- echo $ac_n "checking for Tcl library by myself""... $ac_c" 1>&6
-! echo "configure:2079: checking for Tcl library by myself" >&5
- tcllib=`echo $tclinc | sed s/include/lib/g`
- for ext in .so .a ; do
- for ver in "" $tclver ; do
-***************
-*** 2105,2111 ****
- TCL_SRC=if_tcl.c
- TCL_OBJ=objects/if_tcl.o
- TCL_PRO=if_tcl.pro
-! TCL_CFLAGS="-I$TCL_INC"
- fi
- fi
- else
---- 2106,2112 ----
- TCL_SRC=if_tcl.c
- TCL_OBJ=objects/if_tcl.o
- TCL_PRO=if_tcl.pro
-! TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
- fi
- fi
- else
-*** ../vim-6.2.288/src/configure.in Thu Feb 19 14:48:06 2004
---- src/configure.in Tue Feb 24 17:08:02 2004
-***************
-*** 611,616 ****
---- 611,619 ----
- . $try/tclConfig.sh
- dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
- TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
-+ dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
-+ dnl "-D_ABC" items.
-+ TCL_DEFS=`echo $TCL_DEFS | tr ' ' '\012' | sed -e '/^-[[^D]]/d' -e '/-D[[^_]]/d' -e 's/-D_/ -D_/' | tr -d '\012'`
- break
- fi
- done
-***************
-*** 644,650 ****
- TCL_SRC=if_tcl.c
- TCL_OBJ=objects/if_tcl.o
- TCL_PRO=if_tcl.pro
-! TCL_CFLAGS="-I$TCL_INC"
- fi
- fi
- else
---- 647,653 ----
- TCL_SRC=if_tcl.c
- TCL_OBJ=objects/if_tcl.o
- TCL_PRO=if_tcl.pro
-! TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
- fi
- fi
- else
-*** ../vim-6.2.288/src/version.c Tue Feb 24 20:56:55 2004
---- src/version.c Tue Feb 24 22:13:25 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 289,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-250. You've given up the search for the "perfect woman" and instead,
- sit in front of the PC until you're just too tired to care.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.290 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.290 (extra)
-Problem: Mac: The mousewheel doesn't work.
-Solution: Add mousewheel support. Also fix updating the thumb after a drag
- and then using another way to scroll. (Eckehard Berns)
-Files: src/gui_mac.c
-
-
-*** ../vim-6.2.289/src/gui_mac.c Tue Feb 24 20:56:55 2004
---- src/gui_mac.c Wed Feb 25 10:57:41 2004
-***************
-*** 82,87 ****
---- 82,93 ----
- # endif
- #endif
-
-+ #undef USE_MOUSEWHEEL
-+ #if defined(MACOS_X) && defined(USE_CARBONIZED)
-+ # define USE_MOUSEWHEEL
-+ static EventHandlerUPP mouseWheelHandlerUPP = NULL;
-+ #endif
-+
- /* Debugging feature: start Vim window OFFSETed */
- #undef USE_OFFSETED_WINDOW
-
-***************
-*** 1525,1531 ****
- void
- gui_mac_drag_thumb (ControlHandle theControl, short partCode)
- {
-- /* TODO: have live support */
- scrollbar_T *sb;
- int value, dragging;
- ControlHandle theControlToUse;
---- 1531,1536 ----
-***************
-*** 1540,1546 ****
-
- /* Need to find value by diff between Old Poss New Pos */
- value = GetControl32BitValue (theControlToUse);
-! dragging = TRUE;
-
- /* When "allow_scrollbar" is FALSE still need to remember the new
- * position, but don't actually scroll by setting "dont_scroll". */
---- 1545,1551 ----
-
- /* Need to find value by diff between Old Poss New Pos */
- value = GetControl32BitValue (theControlToUse);
-! dragging = (partCode != 0);
-
- /* When "allow_scrollbar" is FALSE still need to remember the new
- * position, but don't actually scroll by setting "dont_scroll". */
-***************
-*** 1678,1683 ****
---- 1683,1690 ----
- #else
- TrackControl(theControl, thePoint, NULL);
- #endif
-+ /* pass 0 as the part to tell gui_mac_drag_thumb, that the mouse
-+ * button has been released */
- gui_mac_drag_thumb (theControl, 0); /* Should it be thePortion ? (Dany) */
- dragged_sb = NULL;
- }
-***************
-*** 2250,2255 ****
---- 2306,2369 ----
- (MOUSE_RELEASE, thePoint.h, thePoint.v, FALSE, vimModifiers);
- }
-
-+ #ifdef USE_MOUSEWHEEL
-+ static pascal OSStatus
-+ gui_mac_mouse_wheel(EventHandlerCallRef nextHandler, EventRef theEvent,
-+ void *data)
-+ {
-+ EventRef bogusEvent;
-+ Point point;
-+ Rect bounds;
-+ UInt32 mod;
-+ SInt32 delta;
-+ int_u vim_mod;
-+
-+ if (noErr != GetEventParameter(theEvent, kEventParamMouseWheelDelta,
-+ typeSInt32, NULL, sizeof(SInt32), NULL, &delta))
-+ goto bail;
-+ if (noErr != GetEventParameter(theEvent, kEventParamMouseLocation,
-+ typeQDPoint, NULL, sizeof(Point), NULL, &point))
-+ goto bail;
-+ if (noErr != GetEventParameter(theEvent, kEventParamKeyModifiers,
-+ typeUInt32, NULL, sizeof(UInt32), NULL, &mod))
-+ goto bail;
-+
-+ vim_mod = 0;
-+ if (mod & shiftKey)
-+ vim_mod |= MOUSE_SHIFT;
-+ if (mod & controlKey)
-+ vim_mod |= MOUSE_CTRL;
-+ if (mod & optionKey)
-+ vim_mod |= MOUSE_ALT;
-+
-+ /* post a bogus event to wake up WaitNextEvent */
-+ if (noErr != CreateEvent(NULL, kEventClassMouse, kEventMouseMoved, 0,
-+ kEventAttributeNone, &bogusEvent))
-+ goto bail;
-+ if (noErr != PostEventToQueue(GetMainEventQueue(), bogusEvent,
-+ kEventPriorityLow))
-+ goto bail;
-+
-+ if (noErr == GetWindowBounds(gui.VimWindow, kWindowContentRgn, &bounds))
-+ {
-+ point.h -= bounds.left;
-+ point.v -= bounds.top;
-+ }
-+
-+ gui_send_mouse_event((delta > 0) ? MOUSE_4 : MOUSE_5,
-+ point.h, point.v, FALSE, vim_mod);
-+
-+ return noErr;
-+
-+ bail:
-+ /*
-+ * when we fail give any additional callback handler a chance to perform
-+ * it's actions
-+ */
-+ return CallNextEventHandler(nextHandler, theEvent);
-+ }
-+ #endif /* defined(USE_MOUSEWHEEL) */
-+
- #if 0
-
- /*
-***************
-*** 2739,2744 ****
---- 2853,2862 ----
- #ifdef USE_CTRLCLICKMENU
- long gestalt_rc;
- #endif
-+ #ifdef USE_MOUSEWHEEL
-+ EventTypeSpec eventTypeSpec;
-+ EventHandlerRef mouseWheelHandlerRef;
-+ #endif
- #if 1
- InitCursor();
-
-***************
-*** 2875,2880 ****
---- 2998,3016 ----
- vim_setenv((char_u *)"QDTEXT_MINSIZE", (char_u *)"1");
- #endif
-
-+ #ifdef USE_MOUSEWHEEL
-+ eventTypeSpec.eventClass = kEventClassMouse;
-+ eventTypeSpec.eventKind = kEventMouseWheelMoved;
-+ mouseWheelHandlerUPP = NewEventHandlerUPP(gui_mac_mouse_wheel);
-+ if (noErr != InstallApplicationEventHandler(mouseWheelHandlerUPP, 1,
-+ &eventTypeSpec, NULL, &mouseWheelHandlerRef))
-+ {
-+ mouseWheelHandlerRef = NULL;
-+ DisposeEventHandlerUPP(mouseWheelHandlerUPP);
-+ mouseWheelHandlerUPP = NULL;
-+ }
-+ #endif
-+
- /* TODO: Load bitmap if using TOOLBAR */
- return OK;
- }
-***************
-*** 2922,2927 ****
---- 3058,3069 ----
- {
- /* TODO: find out all what is missing here? */
- DisposeRgn(cursorRgn);
-+
-+ #ifdef USE_MOUSEWHEEL
-+ if (mouseWheelHandlerUPP != NULL)
-+ DisposeEventHandlerUPP(mouseWheelHandlerUPP);
-+ #endif
-+
- /* Exit to shell? */
- exit(rc);
- }
-*** ../vim-6.2.289/src/version.c Tue Feb 24 22:17:28 2004
---- src/version.c Wed Feb 25 12:53:07 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 290,
- /**/
-
---
-If VIM were a woman, I'd marry her. Slim, organized, helpful
-and beautiful; what's not to like? --David A. Rogers
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.291 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.291 (extra)
-Problem: Mac: the plus button and close button don't do anything.
-Solution: Make the plus button maximize the window and the close button
- close Vim. (Eckehard Berns)
-Files: src/gui.c, src/gui_mac.c
-
-
-*** ../vim-6.2.290/src/gui.c Fri Feb 20 22:14:29 2004
---- src/gui.c Tue Feb 24 20:42:34 2004
-***************
-*** 572,578 ****
- }
-
- #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_MSWIN) \
-! || defined(FEAT_GUI_PHOTON) || defined(PROTO)
- /*
- * Called when the GUI shell is closed by the user. If there are no changed
- * files Vim exits, otherwise there will be a dialog to ask the user what to
---- 572,578 ----
- }
-
- #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_MSWIN) \
-! || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(PROTO)
- /*
- * Called when the GUI shell is closed by the user. If there are no changed
- * files Vim exits, otherwise there will be a dialog to ask the user what to
-*** ../vim-6.2.290/src/gui_mac.c Wed Feb 25 12:54:47 2004
---- src/gui_mac.c Wed Feb 25 13:04:47 2004
-***************
-*** 1831,1837 ****
- };
- #endif
-
-! };
-
- /*
- * ------------------------------------------------------------
---- 1831,1885 ----
- };
- #endif
-
-! }
-!
-! /*
-! * Handle the click in the zoom box
-! */
-! #ifdef USE_CARBONIZED
-! static void
-! gui_mac_doInZoomClick(theEvent, whichWindow)
-! EventRecord *theEvent;
-! WindowPtr whichWindow;
-! {
-! Rect r;
-! Point p;
-! short thePart;
-!
-! /* ideal width is current */
-! p.h = Columns * gui.char_width + 2 * gui.border_offset;
-! if (gui.which_scrollbars[SBAR_LEFT])
-! p.h += gui.scrollbar_width;
-! if (gui.which_scrollbars[SBAR_RIGHT])
-! p.h += gui.scrollbar_width;
-! /* ideal height is as heigh as we can get */
-! p.v = 15 * 1024;
-!
-! thePart = IsWindowInStandardState(whichWindow, &p, &r)
-! ? inZoomIn : inZoomOut;
-!
-! if (!TrackBox(whichWindow, theEvent->where, thePart))
-! return;
-!
-! /* use returned width */
-! p.h = r.right - r.left;
-! /* adjust returned height */
-! p.v = r.bottom - r.top - 2 * gui.border_offset;
-! if (gui.which_scrollbars[SBAR_BOTTOM])
-! p.v -= gui.scrollbar_height;
-! p.v -= p.v % gui.char_height;
-! p.v += 2 * gui.border_width;
-! if (gui.which_scrollbars[SBAR_BOTTOM]);
-! p.v += gui.scrollbar_height;
-!
-! ZoomWindowIdeal(whichWindow, thePart, &p);
-!
-! GetWindowBounds(whichWindow, kWindowContentRgn, &r);
-! gui_resize_shell(r.right - r.left, r.bottom - r.top);
-! gui_mch_set_bg_color(gui.back_pixel);
-! gui_set_shellsize(TRUE, FALSE);
-! }
-! #endif /* defined(USE_CARBONIZED) */
-
- /*
- * ------------------------------------------------------------
-***************
-*** 2184,2193 ****
- gui_mac_doInGrowClick (theEvent->where, whichWindow);
- break;
-
-! case (inGoAway): /* TODO */
- case (inZoomIn):
- case (inZoomOut):
-! /* For now the window doesn't have a GoAway and Zoom */
- break;
- }
- }
---- 2232,2247 ----
- gui_mac_doInGrowClick (theEvent->where, whichWindow);
- break;
-
-! case (inGoAway):
-! if (TrackGoAway(whichWindow, theEvent->where))
-! gui_shell_closed();
-! break;
-!
- case (inZoomIn):
- case (inZoomOut):
-! #ifdef USE_CARBONIZED
-! gui_mac_doInZoomClick(theEvent, whichWindow);
-! #endif
- break;
- }
- }
-***************
-*** 2861,2868 ****
- SetRect (&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
- #endif
-
-! gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true, documentProc,
-! (WindowPtr) -1L, false, 0);
- InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler,
- gui.VimWindow, NULL);
- #ifdef USE_CARBONIZED
---- 2915,2927 ----
- SetRect (&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
- #endif
-
-! gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true,
-! #ifdef USE_CARBONIZED
-! zoomDocProc,
-! #else
-! documentProc,
-! #endif
-! (WindowPtr)-1L, true, 0);
- InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler,
- gui.VimWindow, NULL);
- #ifdef USE_CARBONIZED
-*** ../vim-6.2.290/src/version.c Wed Feb 25 12:54:47 2004
---- src/version.c Wed Feb 25 13:11:49 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 291,
- /**/
-
---
-Did you hear about the new 3 million dollar West Virginia State Lottery?
-The winner gets 3 dollars a year for a million years.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.292
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.292
-Problem: Motif: When removing GUI arguments from argv[] a "ps -ef" shows
- the last argument repeated.
-Solution: Set argv[argc] to NULL. (Michael Jarvis)
-Files: src/gui_x11.c
-
-
-*** ../vim-6.2.291/src/gui_x11.c Mon Dec 29 21:21:52 2003
---- src/gui_x11.c Wed Feb 25 21:55:24 2004
-***************
-*** 1217,1222 ****
---- 1217,1223 ----
- * sizeof(char *));
- }
- }
-+ argv[*argc] = NULL;
- }
- else
- #ifdef FEAT_SUN_WORKSHOP
-***************
-*** 1227,1232 ****
---- 1228,1234 ----
- gui.dofork = FALSE; /* don't fork() when starting GUI */
- mch_memmove(&argv[arg], &argv[arg + 1],
- (--*argc - arg) * sizeof(char *));
-+ argv[*argc] = NULL;
- # ifdef WSDEBUG
- wsdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
- wsdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
-***************
-*** 1242,1247 ****
---- 1244,1250 ----
- netbeansArg = argv[arg];
- mch_memmove(&argv[arg], &argv[arg + 1],
- (--*argc - arg) * sizeof(char *));
-+ argv[*argc] = NULL;
- }
- else
- #endif
-*** ../vim-6.2.291/src/version.c Wed Feb 25 13:13:26 2004
---- src/version.c Thu Feb 26 15:41:42 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 292,
- /**/
-
---
-ARTHUR: Right! Knights! Forward!
- ARTHUR leads a charge toward the castle. Various shots of them battling on,
- despite being hit by a variety of farm animals.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.293
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.293 (after 6.2.255)
-Problem: GTK: A new item in a menu is put before the tearoff item.
-Solution: Do increment the menu item index for non-popup menu items.
-Files: src/gui_gtk.c
-
-
-*** ../vim-6.2.292/src/gui_gtk.c Sun Feb 15 13:42:25 2004
---- src/gui_gtk.c Thu Feb 26 17:47:49 2004
-***************
-*** 575,582 ****
- parent_widget = (parent != NULL) ? parent->submenu_id : gui.menubar;
- menu_item_new(menu, parent_widget);
-
-! if (parent != NULL)
-! /* since the tearoff should always appear first, increment idx */
- ++idx;
-
- gtk_menu_shell_insert(GTK_MENU_SHELL(parent_widget), menu->id, idx);
---- 575,582 ----
- parent_widget = (parent != NULL) ? parent->submenu_id : gui.menubar;
- menu_item_new(menu, parent_widget);
-
-! /* since the tearoff should always appear first, increment idx */
-! if (parent != NULL && !menu_is_popup(parent->name))
- ++idx;
-
- gtk_menu_shell_insert(GTK_MENU_SHELL(parent_widget), menu->id, idx);
-***************
-*** 804,812 ****
- if (parent->submenu_id == NULL)
- return;
-
-! /* make place for the possible tearoff handle item */
-! /* ++idx; Don't understand why this was here; makes adding an item to
-! * the popup menu appear after instead of before an existing item. */
-
- if (menu_is_separator(menu->name))
- {
---- 804,813 ----
- if (parent->submenu_id == NULL)
- return;
-
-! /* Make place for the possible tearoff handle item. Not in the popup
-! * menu, it doesn't have a tearoff item. */
-! if (parent != NULL && !menu_is_popup(parent->name))
-! ++idx;
-
- if (menu_is_separator(menu->name))
- {
-*** ../vim-6.2.292/src/version.c Thu Feb 26 15:42:54 2004
---- src/version.c Thu Feb 26 18:15:20 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 293,
- /**/
-
---
- Bravely bold Sir Robin, rode forth from Camelot,
- He was not afraid to die, Oh Brave Sir Robin,
- He was not at all afraid to be killed in nasty ways
- Brave, brave, brave, brave Sir Robin.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.294 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.294 (extra)
-Problem: Mac: Cannot use modifiers with Space, Tab, Enter and Escape.
-Solution: Handle all modifiers for these keys. (Eckehard Berns)
-Files: src/gui_mac.c
-
-
-*** ../vim-6.2.293/src/gui_mac.c Wed Feb 25 13:13:26 2004
---- src/gui_mac.c Thu Feb 26 22:24:26 2004
-***************
-*** 2153,2159 ****
-
- /* Add the modifier to the input bu if needed */
- /* Do not want SHIFT-A or CTRL-A with modifier */
-! if (!IS_SPECIAL(key_char))
- {
- #if 1
- /* Clear modifiers when only one modifier is set */
---- 2153,2164 ----
-
- /* Add the modifier to the input bu if needed */
- /* Do not want SHIFT-A or CTRL-A with modifier */
-! if (!IS_SPECIAL(key_char)
-! && key_sym != vk_Space
-! && key_sym != vk_Tab
-! && key_sym != vk_Return
-! && key_sym != vk_Enter
-! && key_sym != vk_Esc)
- {
- #if 1
- /* Clear modifiers when only one modifier is set */
-*** ../vim-6.2.293/src/version.c Thu Feb 26 18:16:35 2004
---- src/version.c Sat Feb 28 15:29:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 294,
- /**/
-
---
-FATHER: One day, lad, all this will be yours ...
-PRINCE: What - the curtains?
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.295
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.295
-Problem: When in debug mode, receiving a message from a remote client
- causes a crash. Evaluating an expression causes Vim to wait for
- "cont" to be typed, without a prompt. (Hari Krishna Dara)
-Solution: Disable debugging when evaluating an expression for a client.
- (Michael Geddes) Don't try reading into the typehead buffer when
- it may have been filled in another way.
-Files: src/ex_getln.c, src/getchar.c, src/if_xcmdsrv.c, src/main.c,
- src/misc1.c, src/proto/getchar.pro, src/proto/main.pro,
- src/proto/os_unix.pro, src/proto/ui.pro, src/structs.h,
- src/os_unix.c, src/ui.c
-
-
-*** ../vim-6.2.294/src/ex_getln.c Tue Feb 24 15:23:58 2004
---- src/ex_getln.c Sat Feb 28 16:33:29 2004
-***************
-*** 1834,1840 ****
- p = (char_u *)line_ga.ga_data + line_ga.ga_len;
-
- /* Get one character (inchar gets a third of maxlen characters!) */
-! len = inchar(p + off, 3, -1L);
- if (len < 0)
- continue; /* end of input script reached */
- /* for a special character, we need at least three characters */
---- 1834,1840 ----
- p = (char_u *)line_ga.ga_data + line_ga.ga_len;
-
- /* Get one character (inchar gets a third of maxlen characters!) */
-! len = inchar(p + off, 3, -1L, 0);
- if (len < 0)
- continue; /* end of input script reached */
- /* for a special character, we need at least three characters */
-*** ../vim-6.2.294/src/getchar.c Tue Feb 17 21:46:46 2004
---- src/getchar.c Sun Feb 29 14:24:23 2004
-***************
-*** 433,439 ****
- * of an escape sequence.
- * In an xterm we get one char at a time and we have to get them all.
- */
-! while (inchar(typebuf.tb_buf, typebuf.tb_buflen - 1, 10L) != 0)
- ;
- typebuf.tb_off = MAXMAPLEN;
- typebuf.tb_len = 0;
---- 433,440 ----
- * of an escape sequence.
- * In an xterm we get one char at a time and we have to get them all.
- */
-! while (inchar(typebuf.tb_buf, typebuf.tb_buflen - 1, 10L,
-! typebuf.tb_change_cnt) != 0)
- ;
- typebuf.tb_off = MAXMAPLEN;
- typebuf.tb_len = 0;
-***************
-*** 860,866 ****
-
- /*
- * Initialize typebuf.tb_buf to point to typebuf_init.
-! * Alloc() cannot be used here: In out-of-memory situations it would
- * be impossible to type anything.
- */
- static void
---- 861,867 ----
-
- /*
- * Initialize typebuf.tb_buf to point to typebuf_init.
-! * alloc() cannot be used here: In out-of-memory situations it would
- * be impossible to type anything.
- */
- static void
-***************
-*** 873,878 ****
---- 874,880 ----
- typebuf.tb_buflen = TYPELEN_INIT;
- typebuf.tb_len = 0;
- typebuf.tb_off = 0;
-+ typebuf.tb_change_cnt = 1;
- }
- }
-
-***************
-*** 910,915 ****
---- 912,919 ----
- int nrm;
-
- init_typebuf();
-+ if (++typebuf.tb_change_cnt == 0)
-+ typebuf.tb_change_cnt = 1;
-
- addlen = (int)STRLEN(str);
- /*
-***************
-*** 1013,1018 ****
---- 1017,1041 ----
- }
-
- /*
-+ * Return TRUE if the typeahead buffer was changed (while waiting for a
-+ * character to arrive). Happens when a message was received from a client.
-+ * But check in a more generic way to avoid trouble: When "typebuf.tb_buf"
-+ * changed it was reallocated and the old pointer can no longer be used.
-+ * Or "typebuf.tb_off" may have been changed and we would overwrite characters
-+ * that was just added.
-+ */
-+ int
-+ typebuf_changed(tb_change_cnt)
-+ int tb_change_cnt; /* old value of typebuf.tb_change_cnt */
-+ {
-+ return (tb_change_cnt != 0 && (typebuf.tb_change_cnt != tb_change_cnt
-+ #ifdef FEAT_CLIENTSERVER
-+ || received_from_client
-+ #endif
-+ ));
-+ }
-+
-+ /*
- * Return TRUE if there are no characters in the typeahead buffer that have
- * not been typed (result from a mapping or come from ":normal").
- */
-***************
-*** 1106,1111 ****
---- 1129,1136 ----
- * typeahead buffer. */
- received_from_client = FALSE;
- #endif
-+ if (++typebuf.tb_change_cnt == 0)
-+ typebuf.tb_change_cnt = 1;
- }
-
- /*
-***************
-*** 1185,1190 ****
---- 1210,1217 ----
- typebuf.tb_maplen = 0;
- typebuf.tb_silent = 0;
- typebuf.tb_no_abbr_cnt = 0;
-+ if (++typebuf.tb_change_cnt == 0)
-+ typebuf.tb_change_cnt = 1;
- return OK;
- }
-
-***************
-*** 1769,1777 ****
- if (got_int)
- {
- /* flush all input */
-! c = inchar(typebuf.tb_buf, typebuf.tb_buflen - 1, 0L);
- /*
-! * If inchar returns TRUE (script file was active) or we
- * are inside a mapping, get out of insert mode.
- * Otherwise we behave like having gotten a CTRL-C.
- * As a result typing CTRL-C in insert mode will
---- 1796,1805 ----
- if (got_int)
- {
- /* flush all input */
-! c = inchar(typebuf.tb_buf, typebuf.tb_buflen - 1, 0L,
-! typebuf.tb_change_cnt);
- /*
-! * If inchar() returns TRUE (script file was active) or we
- * are inside a mapping, get out of insert mode.
- * Otherwise we behave like having gotten a CTRL-C.
- * As a result typing CTRL-C in insert mode will
-***************
-*** 2235,2242 ****
- && (State & INSERT)
- && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
- && (c = inchar(typebuf.tb_buf + typebuf.tb_off
-! + typebuf.tb_len, 3, 25L))
-! == 0)
- {
- colnr_T col = 0, vcol;
- char_u *ptr;
---- 2263,2270 ----
- && (State & INSERT)
- && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
- && (c = inchar(typebuf.tb_buf + typebuf.tb_off
-! + typebuf.tb_len, 3, 25L,
-! typebuf.tb_change_cnt)) == 0)
- {
- colnr_T col = 0, vcol;
- char_u *ptr;
-***************
-*** 2466,2472 ****
- ? -1L
- : ((keylen == KL_PART_KEY && p_ttm >= 0)
- ? p_ttm
-! : p_tm)));
-
- #ifdef FEAT_CMDL_INFO
- if (i != 0)
---- 2494,2500 ----
- ? -1L
- : ((keylen == KL_PART_KEY && p_ttm >= 0)
- ? p_ttm
-! : p_tm)), typebuf.tb_change_cnt);
-
- #ifdef FEAT_CMDL_INFO
- if (i != 0)
-***************
-*** 2549,2557 ****
- * 1. a scriptfile
- * 2. the keyboard
- *
-! * As much characters as we can get (upto 'maxlen') are put in buf and
- * NUL terminated (buffer length must be 'maxlen' + 1).
-! * Minimum for 'maxlen' is 3!!!!
- *
- * If we got an interrupt all input is read until none is available.
- *
---- 2577,2590 ----
- * 1. a scriptfile
- * 2. the keyboard
- *
-! * As much characters as we can get (upto 'maxlen') are put in "buf" and
- * NUL terminated (buffer length must be 'maxlen' + 1).
-! * Minimum for "maxlen" is 3!!!!
-! *
-! * "tb_change_cnt" is the value of typebuf.tb_change_cnt if "buf" points into
-! * it. When typebuf.tb_change_cnt changes (e.g., when a message is received
-! * from a remote client) "buf" can no longer be used. "tb_change_cnt" is 0
-! * otherwise.
- *
- * If we got an interrupt all input is read until none is available.
- *
-***************
-*** 2562,2573 ****
- * Return the number of obtained characters.
- * Return -1 when end of input script reached.
- */
--
- int
-! inchar(buf, maxlen, wait_time)
- char_u *buf;
- int maxlen;
- long wait_time; /* milli seconds */
- {
- int len = 0; /* init for GCC */
- int retesc = FALSE; /* return ESC with gotint */
---- 2595,2606 ----
- * Return the number of obtained characters.
- * Return -1 when end of input script reached.
- */
- int
-! inchar(buf, maxlen, wait_time, tb_change_cnt)
- char_u *buf;
- int maxlen;
- long wait_time; /* milli seconds */
-+ int tb_change_cnt;
- {
- int len = 0; /* init for GCC */
- int retesc = FALSE; /* return ESC with gotint */
-***************
-*** 2648,2654 ****
-
- for (;;)
- {
-! len = ui_inchar(dum, DUM_LEN, 0L);
- if (len == 0 || (len == 1 && dum[0] == 3))
- break;
- }
---- 2681,2687 ----
-
- for (;;)
- {
-! len = ui_inchar(dum, DUM_LEN, 0L, 0);
- if (len == 0 || (len == 1 && dum[0] == 3))
- break;
- }
-***************
-*** 2665,2672 ****
- * Fill up to a third of the buffer, because each character may be
- * tripled below.
- */
-! len = ui_inchar(buf, maxlen / 3, wait_time);
- }
-
- return fix_input_buffer(buf, len, script_char >= 0);
- }
---- 2698,2708 ----
- * Fill up to a third of the buffer, because each character may be
- * tripled below.
- */
-! len = ui_inchar(buf, maxlen / 3, wait_time, tb_change_cnt);
- }
-+
-+ if (typebuf_changed(tb_change_cnt))
-+ return 0;
-
- return fix_input_buffer(buf, len, script_char >= 0);
- }
-*** ../vim-6.2.294/src/if_xcmdsrv.c Thu Jul 24 21:52:31 2003
---- src/if_xcmdsrv.c Fri Feb 27 17:33:19 2004
-***************
-*** 388,396 ****
- {
- char_u *ret;
-
-! ++emsg_skip;
-! ret = eval_to_string(cmd, NULL);
-! --emsg_skip;
- if (result != NULL)
- {
- if (ret == NULL)
---- 388,394 ----
- {
- char_u *ret;
-
-! ret = eval_client_expr_to_string(cmd);
- if (result != NULL)
- {
- if (ret == NULL)
-***************
-*** 1238,1248 ****
- if (asKeys)
- server_to_input_buf(script);
- else
-! {
-! ++emsg_skip;
-! res = eval_to_string(script, NULL);
-! --emsg_skip;
-! }
- }
- if (resWindow != None)
- {
---- 1236,1242 ----
- if (asKeys)
- server_to_input_buf(script);
- else
-! res = eval_client_expr_to_string(script);
- }
- if (resWindow != None)
- {
-*** ../vim-6.2.294/src/main.c Thu Feb 19 14:43:37 2004
---- src/main.c Fri Feb 27 17:29:56 2004
-***************
-*** 3094,3099 ****
---- 3102,3134 ----
- /* Let input_available() know we inserted text in the typeahead buffer. */
- received_from_client = TRUE;
- }
-+
-+ /*
-+ * Evaluate an expression that the client sent to a string.
-+ * Handles disabling error messages and disables debugging, otherwise Vim
-+ * hangs, waiting for "cont" to be typed.
-+ */
-+ char_u *
-+ eval_client_expr_to_string(expr)
-+ char_u *expr;
-+ {
-+ char_u *res;
-+ int save_dbl = debug_break_level;
-+ int save_ro = redir_off;
-+
-+ debug_break_level = -1;
-+ redir_off = 0;
-+ ++emsg_skip;
-+
-+ res = eval_to_string(expr, NULL);
-+
-+ debug_break_level = save_dbl;
-+ redir_off = save_ro;
-+ --emsg_skip;
-+
-+ return res;
-+ }
-+
-
- /*
- * Make our basic server name: use the specified "arg" if given, otherwise use
-*** ../vim-6.2.294/src/misc1.c Sun Feb 15 13:44:45 2004
---- src/misc1.c Sat Feb 28 16:38:02 2004
-***************
-*** 2771,2777 ****
- * insert a key code into (max 5 chars plus NUL). And
- * fix_input_buffer() can triple the number of bytes. */
- n = ui_inchar(buf + len, (CBUFLEN - 6 - len) / 3,
-! len == 0 ? -1L : 100L);
- if (n > 0)
- {
- /* Replace zero and CSI by a special key code. */
---- 2783,2789 ----
- * insert a key code into (max 5 chars plus NUL). And
- * fix_input_buffer() can triple the number of bytes. */
- n = ui_inchar(buf + len, (CBUFLEN - 6 - len) / 3,
-! len == 0 ? -1L : 100L, 0);
- if (n > 0)
- {
- /* Replace zero and CSI by a special key code. */
-*** ../vim-6.2.294/src/proto/getchar.pro Sun Jun 1 12:26:10 2003
---- src/proto/getchar.pro Sat Feb 28 16:40:34 2004
-***************
-*** 21,26 ****
---- 21,27 ----
- int start_redo_ins __ARGS((void));
- void stop_redo_ins __ARGS((void));
- int ins_typebuf __ARGS((char_u *str, int noremap, int offset, int nottyped, int silent));
-+ int typebuf_changed __ARGS((int tb_change_cnt));
- int typebuf_typed __ARGS((void));
- int typebuf_maplen __ARGS((void));
- void del_typebuf __ARGS((int len, int offset));
-***************
-*** 39,45 ****
- int vpeekc_any __ARGS((void));
- int char_avail __ARGS((void));
- void vungetc __ARGS((int c));
-! int inchar __ARGS((char_u *buf, int maxlen, long wait_time));
- int fix_input_buffer __ARGS((char_u *buf, int len, int script));
- int input_available __ARGS((void));
- int do_map __ARGS((int maptype, char_u *arg, int mode, int abbrev));
---- 40,46 ----
- int vpeekc_any __ARGS((void));
- int char_avail __ARGS((void));
- void vungetc __ARGS((int c));
-! int inchar __ARGS((char_u *buf, int maxlen, long wait_time, int tb_change_cnt));
- int fix_input_buffer __ARGS((char_u *buf, int len, int script));
- int input_available __ARGS((void));
- int do_map __ARGS((int maptype, char_u *arg, int mode, int abbrev));
-*** ../vim-6.2.294/src/proto/main.pro Sun Jun 1 12:26:13 2003
---- src/proto/main.pro Sat Feb 28 16:40:40 2004
-***************
-*** 8,13 ****
---- 8,14 ----
- void time_pop __ARGS((void *tp));
- void time_msg __ARGS((char *msg, void *tv_start));
- void server_to_input_buf __ARGS((char_u *str));
-+ char_u *eval_client_expr_to_string __ARGS((char_u *expr));
- int toF_TyA __ARGS((int c));
- int fkmap __ARGS((int c));
- void conv_to_pvim __ARGS((void));
-*** ../vim-6.2.294/src/proto/os_unix.pro Sun Jun 1 12:26:18 2003
---- src/proto/os_unix.pro Sat Feb 28 16:40:46 2004
-***************
-*** 1,6 ****
- /* os_unix.c */
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime));
- int mch_char_avail __ARGS((void));
- long_u mch_total_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
---- 1,6 ----
- /* os_unix.c */
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
- int mch_char_avail __ARGS((void));
- long_u mch_total_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
-*** ../vim-6.2.294/src/proto/ui.pro Sun Jun 1 12:26:21 2003
---- src/proto/ui.pro Sat Feb 28 16:40:50 2004
-***************
-*** 1,7 ****
- /* ui.c */
- void ui_write __ARGS((char_u *s, int len));
- void ui_inchar_undo __ARGS((char_u *s, int len));
-! int ui_inchar __ARGS((char_u *buf, int maxlen, long wtime));
- int ui_char_avail __ARGS((void));
- void ui_delay __ARGS((long msec, int ignoreinput));
- void ui_suspend __ARGS((void));
---- 1,7 ----
- /* ui.c */
- void ui_write __ARGS((char_u *s, int len));
- void ui_inchar_undo __ARGS((char_u *s, int len));
-! int ui_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
- int ui_char_avail __ARGS((void));
- void ui_delay __ARGS((long msec, int ignoreinput));
- void ui_suspend __ARGS((void));
-*** ../vim-6.2.294/src/structs.h Thu Feb 5 12:09:25 2004
---- src/structs.h Sun Feb 29 14:25:58 2004
-***************
-*** 776,785 ****
- char_u *tb_noremap; /* mapping flags for characters in tb_buf[] */
- int tb_buflen; /* size of tb_buf[] */
- int tb_off; /* current position in tb_buf[] */
-! int tb_len; /* number of valid chars in tb_buf[] */
-! int tb_maplen; /* nr of mapped characters in tb_buf[] */
-! int tb_silent; /* nr of silently mapped chars in tb_buf[] */
-! int tb_no_abbr_cnt; /* nr of chars without abbrev. in tb_buf[] */
- } typebuf_T;
-
- /* Struct to hold the saved typeahead for save_typeahead(). */
---- 779,789 ----
- char_u *tb_noremap; /* mapping flags for characters in tb_buf[] */
- int tb_buflen; /* size of tb_buf[] */
- int tb_off; /* current position in tb_buf[] */
-! int tb_len; /* number of valid bytes in tb_buf[] */
-! int tb_maplen; /* nr of mapped bytes in tb_buf[] */
-! int tb_silent; /* nr of silently mapped bytes in tb_buf[] */
-! int tb_no_abbr_cnt; /* nr of bytes without abbrev. in tb_buf[] */
-! int tb_change_cnt; /* nr of time tb_buf was changed; never zero */
- } typebuf_T;
-
- /* Struct to hold the saved typeahead for save_typeahead(). */
-*** ../vim-6.2.294/src/os_unix.c Sun Feb 1 20:06:29 2004
---- src/os_unix.c Sat Feb 28 16:38:11 2004
-***************
-*** 309,318 ****
- * If wtime == -1 wait forever for characters.
- */
- int
-! mch_inchar(buf, maxlen, wtime)
- char_u *buf;
- int maxlen;
- long wtime; /* don't use "time", MIPS cannot handle it */
- {
- int len;
- #ifdef FEAT_AUTOCMD
---- 309,319 ----
- * If wtime == -1 wait forever for characters.
- */
- int
-! mch_inchar(buf, maxlen, wtime, tb_change_cnt)
- char_u *buf;
- int maxlen;
- long wtime; /* don't use "time", MIPS cannot handle it */
-+ int tb_change_cnt;
- {
- int len;
- #ifdef FEAT_AUTOCMD
-***************
-*** 383,392 ****
- if (do_resize) /* interrupted by SIGWINCH signal */
- continue;
-
-! #ifdef FEAT_CLIENTSERVER
-! if (received_from_client)
-! return 0; /* Input was put directly in typeahead buffer */
-! #endif
-
- /*
- * For some terminals we only get one character at a time.
---- 384,392 ----
- if (do_resize) /* interrupted by SIGWINCH signal */
- continue;
-
-! /* If input was put directly in typeahead buffer bail out here. */
-! if (typebuf_changed(tb_change_cnt))
-! return 0;
-
- /*
- * For some terminals we only get one character at a time.
-***************
-*** 3609,3615 ****
- len = 0;
- if (!(options & SHELL_EXPAND)
- && (ta_len > 0
-! || (len = ui_inchar(ta_buf, BUFLEN, 10L)) > 0))
- {
- /*
- * For pipes:
---- 3609,3616 ----
- len = 0;
- if (!(options & SHELL_EXPAND)
- && (ta_len > 0
-! || (len = ui_inchar(ta_buf, BUFLEN, 10L,
-! 0)) > 0))
- {
- /*
- * For pipes:
-*** ../vim-6.2.294/src/ui.c Sun Jan 18 20:58:01 2004
---- src/ui.c Sat Feb 28 16:36:51 2004
-***************
-*** 105,116 ****
- * If "wtime" == 0 do not wait for characters.
- * If "wtime" == -1 wait forever for characters.
- * If "wtime" > 0 wait "wtime" milliseconds for a character.
- */
- int
-! ui_inchar(buf, maxlen, wtime)
- char_u *buf;
- int maxlen;
- long wtime; /* don't use "time", MIPS cannot handle it */
- {
- int retval = 0;
-
---- 105,122 ----
- * If "wtime" == 0 do not wait for characters.
- * If "wtime" == -1 wait forever for characters.
- * If "wtime" > 0 wait "wtime" milliseconds for a character.
-+ *
-+ * "tb_change_cnt" is the value of typebuf.tb_change_cnt if "buf" points into
-+ * it. When typebuf.tb_change_cnt changes (e.g., when a message is received
-+ * from a remote client) "buf" can no longer be used. "tb_change_cnt" is NULL
-+ * otherwise.
- */
- int
-! ui_inchar(buf, maxlen, wtime, tb_change_cnt)
- char_u *buf;
- int maxlen;
- long wtime; /* don't use "time", MIPS cannot handle it */
-+ int tb_change_cnt;
- {
- int retval = 0;
-
-***************
-*** 143,150 ****
- static int count = 0;
-
- # ifndef NO_CONSOLE
-! retval = mch_inchar(buf, maxlen, 10L);
-! if (retval > 0)
- return retval;
- # endif
- if (wtime == -1 && ++count == 1000)
---- 149,156 ----
- static int count = 0;
-
- # ifndef NO_CONSOLE
-! retval = mch_inchar(buf, maxlen, 10L, tb_change_cnt);
-! if (retval > 0 || typebuf_changed(tb_change_cnt))
- return retval;
- # endif
- if (wtime == -1 && ++count == 1000)
-***************
-*** 162,168 ****
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-! if (gui_wait_for_chars(wtime))
- retval = read_from_input_buf(buf, (long)maxlen);
- }
- #endif
---- 168,174 ----
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-! if (gui_wait_for_chars(wtime) && !typebuf_changed(tb_change_cnt))
- retval = read_from_input_buf(buf, (long)maxlen);
- }
- #endif
-***************
-*** 170,176 ****
- # ifdef FEAT_GUI
- else
- # endif
-! retval = mch_inchar(buf, maxlen, wtime);
- #endif
-
- ctrl_c_interrupts = TRUE;
---- 176,182 ----
- # ifdef FEAT_GUI
- else
- # endif
-! retval = mch_inchar(buf, maxlen, wtime, tb_change_cnt);
- #endif
-
- ctrl_c_interrupts = TRUE;
-*** ../vim-6.2.294/src/version.c Sat Feb 28 15:30:58 2004
---- src/version.c Sun Feb 29 14:42:27 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 295,
- /**/
-
---
-Not too long ago, a program was something you watched on TV...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.296 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.296 (extra)
-Problem: Same as 6.2.295.
-Solution: Extra files for patch 6.2.295.
-Files: src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_win32.c,
- src/proto/os_amiga.pro, src/proto/os_msdos.pro,
- src/proto/os_riscos.pro, src/proto/os_win32.pro
-
-
-*** ../vim-6.2.295/src/os_amiga.c Sun Oct 12 17:25:14 2003
---- src/os_amiga.c Sat Feb 28 16:35:03 2004
-***************
-*** 111,120 ****
- * Return number of characters read.
- */
- int
-! mch_inchar(buf, maxlen, time)
- char_u *buf;
- int maxlen;
- long time; /* milli seconds */
- {
- int len;
- long utime;
---- 111,121 ----
- * Return number of characters read.
- */
- int
-! mch_inchar(buf, maxlen, time, tb_change_cnt)
- char_u *buf;
- int maxlen;
- long time; /* milli seconds */
-+ int tb_change_cnt;
- {
- int len;
- long utime;
-*** ../vim-6.2.295/src/os_msdos.c Thu May 15 20:49:07 2003
---- src/os_msdos.c Sat Feb 28 16:35:15 2004
-***************
-*** 982,988 ****
- mch_inchar(
- char_u *buf,
- int maxlen,
-! long time)
- {
- int len = 0;
- int c;
---- 982,989 ----
- mch_inchar(
- char_u *buf,
- int maxlen,
-! long time,
-! int tb_change_cnt)
- {
- int len = 0;
- int c;
-*** ../vim-6.2.295/src/os_riscos.c Sat Apr 19 15:12:24 2003
---- src/os_riscos.c Sat Feb 28 16:35:28 2004
-***************
-*** 217,226 ****
- * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
- */
- int
-! mch_inchar(buf, maxlen, wtime)
- char_u *buf;
- int maxlen;
- long wtime;
- {
- int got=0;
- unsigned int start_time = clock();
---- 217,227 ----
- * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
- */
- int
-! mch_inchar(buf, maxlen, wtime, tb_change_cnt)
- char_u *buf;
- int maxlen;
- long wtime;
-+ int tb_change_cnt;
- {
- int got=0;
- unsigned int start_time = clock();
-*** ../vim-6.2.295/src/os_win32.c Tue Feb 3 16:55:34 2004
---- src/os_win32.c Sat Feb 28 16:36:00 2004
-***************
-*** 1268,1274 ****
- mch_inchar(
- char_u *buf,
- int maxlen,
-! long time)
- {
- #ifndef FEAT_GUI_W32 /* this isn't used for the GUI */
-
---- 1268,1275 ----
- mch_inchar(
- char_u *buf,
- int maxlen,
-! long time,
-! int tb_change_cnt)
- {
- #ifndef FEAT_GUI_W32 /* this isn't used for the GUI */
-
-***************
-*** 1356,1361 ****
---- 1357,1369 ----
-
- while ((len == 0 || WaitForChar(0L)) && len < maxlen)
- {
-+ if (typebuf_changed(tb_change_cnt))
-+ {
-+ /* "buf" may be invalid now if a client put something in the
-+ * typeahead buffer and "buf" is in the typeahead buffer. */
-+ len = 0;
-+ break;
-+ }
- #ifdef FEAT_MOUSE
- if (g_nMouseClick != -1 && maxlen - len >= 5)
- {
-***************
-*** 1378,1390 ****
- {
- c = tgetch();
-
-! #ifdef FEAT_CLIENTSERVER
-! if (input_available())
- {
-! len = read_from_input_buf(buf, (long)maxlen);
- break;
- }
-- #endif
-
- if (c == Ctrl_C && ctrl_c_interrupts)
- {
---- 1386,1398 ----
- {
- c = tgetch();
-
-! if (typebuf_changed(tb_change_cnt))
- {
-! /* "buf" may be invalid now if a client put something in the
-! * typeahead buffer and "buf" is in the typeahead buffer. */
-! len = 0;
- break;
- }
-
- if (c == Ctrl_C && ctrl_c_interrupts)
- {
-*** ../vim-6.2.295/src/proto/os_amiga.pro Sun Jun 1 12:26:29 2003
---- src/proto/os_amiga.pro Sat Feb 28 16:40:57 2004
-***************
-*** 2,8 ****
- void win_resize_on __ARGS((void));
- void win_resize_off __ARGS((void));
- void mch_write __ARGS((char_u *p, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time));
- int mch_char_avail __ARGS((void));
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
---- 2,8 ----
- void win_resize_on __ARGS((void));
- void win_resize_off __ARGS((void));
- void mch_write __ARGS((char_u *p, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time, int tb_change_cnt));
- int mch_char_avail __ARGS((void));
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
-*** ../vim-6.2.295/src/proto/os_msdos.pro Sun Jun 1 12:26:30 2003
---- src/proto/os_msdos.pro Sat Feb 28 16:41:08 2004
-***************
-*** 4,10 ****
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time));
- int mch_char_avail __ARGS((void));
- void mch_suspend __ARGS((void));
- void mch_init __ARGS((void));
---- 4,10 ----
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time, int tb_change_cnt));
- int mch_char_avail __ARGS((void));
- void mch_suspend __ARGS((void));
- void mch_init __ARGS((void));
-*** ../vim-6.2.295/src/proto/os_riscos.pro Sun Jun 1 12:26:32 2003
---- src/proto/os_riscos.pro Sat Feb 28 16:41:14 2004
-***************
-*** 1,6 ****
- /* os_riscos.c */
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime));
- int mch_char_avail __ARGS((void));
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
---- 1,6 ----
- /* os_riscos.c */
- void mch_write __ARGS((char_u *s, int len));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
- int mch_char_avail __ARGS((void));
- long_u mch_avail_mem __ARGS((int special));
- void mch_delay __ARGS((long msec, int ignoreinput));
-*** ../vim-6.2.295/src/proto/os_win32.pro Tue Feb 3 16:55:34 2004
---- src/proto/os_win32.pro Sat Feb 28 16:41:22 2004
-***************
-*** 6,12 ****
- void mch_setmouse __ARGS((int on));
- void mch_update_cursor __ARGS((void));
- int mch_char_avail __ARGS((void));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time));
- void mch_init __ARGS((void));
- void mch_exit __ARGS((int r));
- int mch_check_win __ARGS((int argc, char **argv));
---- 6,12 ----
- void mch_setmouse __ARGS((int on));
- void mch_update_cursor __ARGS((void));
- int mch_char_avail __ARGS((void));
-! int mch_inchar __ARGS((char_u *buf, int maxlen, long time, int tb_change_cnt));
- void mch_init __ARGS((void));
- void mch_exit __ARGS((int r));
- int mch_check_win __ARGS((int argc, char **argv));
-*** ../vim-6.2.295/src/version.c Sun Feb 29 14:45:49 2004
---- src/version.c Sun Feb 29 14:47:03 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 296,
- /**/
-
---
-Not too long ago, a keyboard was something to make music with...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.297
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.297 (after 6.2.232)
-Problem: Cannot invoke Python commands recursively.
-Solution: With Python 2.3 and later use the available mechanisms to invoke
- Python recursively. (Matthew Mueller)
-Files: src/if_python.c
-
-
-*** ../vim-6.2.296/src/if_python.c Tue Feb 3 19:59:05 2004
---- src/if_python.c Sat Feb 28 21:11:15 2004
-***************
-*** 363,395 ****
- typedef PyObject PyThreadState;
- #endif /* Python 1.4 */
-
- static PyThreadState* saved_python_thread = NULL;
-
-! /* suspend a thread of the python interpreter
-! - other threads are allowed to run */
-!
- static void Python_SaveThread(void)
- {
- saved_python_thread = PyEval_SaveThread();
- }
-
-! /* restore a thread of the python interpreter
-! - waits for other threads to block */
-!
- static void Python_RestoreThread(void)
- {
-! PyEval_RestoreThread( saved_python_thread );
- saved_python_thread = NULL;
- }
-
-! /* obtain a lock on the Vim data structures */
-!
- static void Python_Lock_Vim(void)
- {
- }
-
-! /* release a lock on the Vim data structures */
-!
- static void Python_Release_Vim(void)
- {
- }
---- 363,404 ----
- typedef PyObject PyThreadState;
- #endif /* Python 1.4 */
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x020300F0
-+ /* Python 2.3: can invoke ":python" recursively. */
-+ # define PY_CAN_RECURSE
-+ #else
- static PyThreadState* saved_python_thread = NULL;
-
-! /*
-! * Suspend a thread of the Python interpreter, other threads are allowed to
-! * run.
-! */
- static void Python_SaveThread(void)
- {
- saved_python_thread = PyEval_SaveThread();
- }
-
-! /*
-! * Restore a thread of the Python interpreter, waits for other threads to
-! * block.
-! */
- static void Python_RestoreThread(void)
- {
-! PyEval_RestoreThread(saved_python_thread);
- saved_python_thread = NULL;
- }
-+ #endif
-
-! /*
-! * obtain a lock on the Vim data structures
-! */
- static void Python_Lock_Vim(void)
- {
- }
-
-! /*
-! * release a lock on the Vim data structures
-! */
- static void Python_Release_Vim(void)
- {
- }
-***************
-*** 433,440 ****
---- 442,451 ----
- if (PythonMod_Init())
- goto fail;
-
-+ #ifndef PY_CAN_RECURSE
- /* the first python thread is vim's */
- Python_SaveThread();
-+ #endif
-
- initialised = 1;
- }
-***************
-*** 457,476 ****
- static void
- DoPythonCommand(exarg_T *eap, const char *cmd)
- {
-! static int recursive = 0;
-
- if (recursive)
- {
- EMSG(_("E659: Cannot invoke Python recursively"));
- return;
- }
- ++recursive;
-
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
-! GrafPtr oldPort;
-! GetPort (&oldPort);
- /* Check if the Python library is available */
-! if ( (Ptr) PyMac_Initialize == (Ptr) kUnresolvedCFragSymbolAddress)
- goto theend;
- #endif
- if (Python_Init())
---- 468,495 ----
- static void
- DoPythonCommand(exarg_T *eap, const char *cmd)
- {
-! #ifdef PY_CAN_RECURSE
-! PyGILState_STATE pygilstate;
-! #else
-! static int recursive = 0;
-! #endif
-! #if defined(MACOS) && !defined(MACOS_X_UNIX)
-! GrafPtr oldPort;
-! #endif
-
-+ #ifndef PY_CAN_RECURSE
- if (recursive)
- {
- EMSG(_("E659: Cannot invoke Python recursively"));
- return;
- }
- ++recursive;
-+ #endif
-
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
-! GetPort(&oldPort);
- /* Check if the Python library is available */
-! if ((Ptr)PyMac_Initialize == (Ptr)kUnresolvedCFragSymbolAddress)
- goto theend;
- #endif
- if (Python_Init())
-***************
-*** 479,495 ****
- RangeStart = eap->line1;
- RangeEnd = eap->line2;
- Python_Release_Vim(); /* leave vim */
- Python_RestoreThread(); /* enter python */
- PyRun_SimpleString((char *)(cmd));
- Python_SaveThread(); /* leave python */
- Python_Lock_Vim(); /* enter vim */
- PythonIO_Flush();
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
-! SetPort (oldPort);
- #endif
-
- theend:
-! --recursive;
- }
-
- /*
---- 498,529 ----
- RangeStart = eap->line1;
- RangeEnd = eap->line2;
- Python_Release_Vim(); /* leave vim */
-+
-+ #ifdef PY_CAN_RECURSE
-+ pygilstate = PyGILState_Ensure();
-+ #else
- Python_RestoreThread(); /* enter python */
-+ #endif
-+
- PyRun_SimpleString((char *)(cmd));
-+
-+ #ifdef PY_CAN_RECURSE
-+ PyGILState_Release(pygilstate);
-+ #else
- Python_SaveThread(); /* leave python */
-+ #endif
-+
- Python_Lock_Vim(); /* enter vim */
- PythonIO_Flush();
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
-! SetPort(oldPort);
- #endif
-
- theend:
-! #ifndef PY_CAN_RECURSE
-! --recursive
-! #endif
-! return; /* keeps lint happy */
- }
-
- /*
-*** ../vim-6.2.296/src/version.c Sun Feb 29 14:48:02 2004
---- src/version.c Sun Feb 29 14:52:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 297,
- /**/
-
---
-I have to exercise early in the morning before my brain
-figures out what I'm doing.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///