]> granicus.if.org Git - vim/commitdiff
updated for version 7.0c13 v7.0c13
authorBram Moolenaar <Bram@vim.org>
Sun, 9 Apr 2006 21:54:49 +0000 (21:54 +0000)
committerBram Moolenaar <Bram@vim.org>
Sun, 9 Apr 2006 21:54:49 +0000 (21:54 +0000)
23 files changed:
runtime/colors/slate.vim
runtime/doc/change.txt
runtime/doc/eval.txt
runtime/doc/help.txt
runtime/doc/intro.txt
runtime/doc/options.txt
runtime/doc/tabpage.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/usr_41.txt
runtime/doc/version7.txt
runtime/syntax/sisu.vim
src/gui.c
src/gui_gtk_x11.c
src/gui_motif.c
src/gui_w32.c
src/gui_w48.c
src/option.c
src/proto/gui.pro
src/proto/window.pro
src/structs.h
src/version.h
src/window.c

index c091c725842837e77a6bcbd2c788df62ac65e816..b948b602cdcd5c94b33b2a90aa673cac2781ead5 100644 (file)
@@ -28,13 +28,14 @@ endif
 :hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse
 :hi WarningMsg guifg=salmon ctermfg=1
 :hi String guifg=SkyBlue ctermfg=darkcyan
-:hi Comment guifg=DimGrey ctermfg=darkgrey
+:hi Comment term=bold ctermfg=11 guifg=#80a0ff
 :hi Constant guifg=#ffa0a0 ctermfg=brown
-:hi Special guifg=DarkKhaki ctermfg=brown
-:hi Identifier guifg=salmon ctermfg=darkred
-:hi Include guifg=darkred ctermfg=darkred
-:hi PreProc guifg=olivedrab ctermfg=red
-:hi Operator guifg=CornflowerBlue ctermfg=darkcyan
+:hi Special guifg=green ctermfg=brown
+:hi Identifier guifg=salmon ctermfg=red
+:hi Include guifg=red ctermfg=red
+:hi PreProc guifg=red guibg=white ctermfg=red
+:hi Operator guifg=Red ctermfg=Red
+":hi Operator guifg=CornflowerBlue ctermfg=darkcyan
 :hi Define guifg=gold gui=bold ctermfg=yellow
 :hi Type guifg=darkkhaki ctermfg=2
 :hi Function guifg=navajowhite ctermfg=brown
index abb528ee11ad3e9bd81ffc4cc6aeeffea1c3bbb9..4a321758e10b0c2a481e1b5984d36b4e719af096 100644 (file)
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0c.  Last change: 2006 Mar 16
+*change.txt*    For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1542,6 +1542,9 @@ found here: |sort()|.
 <                      To sort on the text at virtual column 10 (thus
                        ignoring the difference between tabs and spaces): >
                                :sort /.*\%10v/
+<                      To sort on the first number in the line, no matter
+                       what is in front of it: >
+                               :sort /.*\ze\d/
 <
 Note that using ":sort" with ":global" doesn't sort the matching lines, it's
 quite useless.
index 040007a15aa3c096084cff37f3ad1c5d0a9f3d2d..711de353d75870c53f69a60c3f2c6bf38d0cb870 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0c.  Last change: 2006 Apr 06
+*eval.txt*      For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1549,29 +1549,33 @@ eval( {string})                 any     evaluate {string} into its value
 eventhandler( )                        Number  TRUE if inside an event handler
 executable( {expr})            Number  1 if executable {expr} exists
 exists( {expr})                        Number  TRUE if {expr} exists
+extend({expr1}, {expr2} [, {expr3}])
+                               List/Dict insert items of {expr2} into {expr1}
 expand( {expr})                        String  expand special keywords in {expr}
 filereadable( {file})          Number  TRUE if {file} is a readable file
+filewritable( {file})          Number  TRUE if {file} is a writable file
 filter( {expr}, {string})      List/Dict  remove items from {expr} where
                                        {string} is 0
 finddir( {name}[, {path}[, {count}]])
-                               String  Find directory {name} in {path}
+                               String  find directory {name} in {path}
 findfile( {name}[, {path}[, {count}]])
-                               String  Find file {name} in {path}
-filewritable( {file})          Number  TRUE if {file} is a writable file
+                               String  find file {name} in {path}
 fnamemodify( {fname}, {mods})  String  modify file name
 foldclosed( {lnum})            Number  first line of fold at {lnum} if closed
 foldclosedend( {lnum})         Number  last line of fold at {lnum} if closed
 foldlevel( {lnum})             Number  fold level at {lnum}
 foldtext( )                    String  line displayed for closed fold
+foldtextresult( {lnum})                String  text for closed fold at {lnum}
 foreground( )                  Number  bring the Vim window to the foreground
 function( {name})              Funcref reference to function {name}
+garbagecollect()               none    free memory, breaking cyclic references
 get( {list}, {idx} [, {def}])  any     get item {idx} from {list} or {def}
 get( {dict}, {key} [, {def}])  any     get item {key} from {dict} or {def}
 getbufline( {expr}, {lnum} [, {end}])
                                List    lines {lnum} to {end} of buffer {expr}
+getbufvar( {expr}, {varname})  any     variable {varname} in buffer {expr}
 getchar( [expr])               Number  get one character from the user
 getcharmod( )                  Number  modifiers for the last typed character
-getbufvar( {expr}, {varname})          variable {varname} in buffer {expr}
 getcmdline()                   String  return the current command-line
 getcmdpos()                    Number  return cursor position in command-line
 getcmdtype()                   String  return the current command-line type
@@ -1590,7 +1594,7 @@ getreg( [{regname} [, 1]])        String  contents of register
 getregtype( [{regname}])       String  type of register
 getwinposx()                   Number  X coord in pixels of GUI Vim window
 getwinposy()                   Number  Y coord in pixels of GUI Vim window
-getwinvar( {nr}, {varname})            variable {varname} in window {nr}
+getwinvar( {nr}, {varname})    any     variable {varname} in window {nr}
 glob( {expr})                  String  expand file wildcards in {expr}
 globpath( {path}, {expr})      String  do glob({expr}) for all dirs in {path}
 has( {feature})                        Number  TRUE if feature {feature} supported
@@ -1611,6 +1615,7 @@ index( {list}, {expr} [, {start} [, {ic}]])
 input( {prompt} [, {text} [, {completion}]])
                                String  get input from the user
 inputdialog( {p} [, {t} [, {c}]]) String  like input() but in a GUI dialog
+inputlist( {textlist})         Number  let the user pick from a choice list
 inputrestore()                 Number  restore typeahead
 inputsave()                    Number  save and clear typeahead
 inputsecret( {prompt} [, {text}]) String  like input() but hiding the text
@@ -1689,6 +1694,7 @@ setcmdpos( {pos})         Number  set cursor position in command-line
 setline( {lnum}, {line})       Number  set line {lnum} to {line}
 setloclist( {nr}, {list}[, {action}])
                                Number  modify location list using {list}
+setpos( {expr}, {list})                none    set the {expr} position to {list}
 setqflist( {list}[, {action}]) Number  modify quickfix list using {list}
 setreg( {n}, {v}[, {opt}])     Number  set register to value and type
 setwinvar( {nr}, {varname}, {val})     set {varname} in window {nr} to {val}
@@ -2730,7 +2736,7 @@ getfontname([{name}])                                     *getfontname()*
                font name.  If not then an empty string is returned.
                Otherwise the actual font name is returned, or {name} if the
                GUI does not support obtaining the real name.
-               Only works when the GUI is running, thus not you your vimrc or
+               Only works when the GUI is running, thus not in your vimrc or
                gvimrc file.  Use the |GUIEnter| autocommand to use this
                function just after the GUI has started.
                Note that the GTK 2 GUI accepts any font name, thus checking
index 229220f14d73e4ac85b1bb7ec6b974852a54acb5..f6a9e2b204551a732b87d858075c088e8b9aeac3 100644 (file)
@@ -171,6 +171,7 @@ Versions ~
 |version4.txt| Differences between Vim version 3.0 and 4.x
 |version5.txt| Differences between Vim version 4.6 and 5.x
 |version6.txt| Differences between Vim version 5.7 and 6.x
+|version7.txt| Differences between Vim version 6.4 and 7.x
                                                *sys-file-list*
 Remarks about specific systems ~
 |os_390.txt|   OS/390 Unix
@@ -195,12 +196,6 @@ Standard plugins ~
 |pi_zip.txt|   Zip archive explorer
 
 LOCAL ADDITIONS:                               *local-additions*
-|cecutil.txt|  DrChip's Utilities                              Jun 11, 2004
-|example.txt|  Example for a locally added help file
-|matchit.txt|   Extended "%" matching
-|test.txt|     Testing the hélp cömmånd nôw
-|typecorr.txt| Plugin for correcting typing mistakes
-|helpp.txt|    Dummy line to avoid an error message
 
 ------------------------------------------------------------------------------
 *bars*         Bars example
index e9fe36937ae0685c12667a71847cbf63f8987665..d23fe7c5549dc2f72d63b4c52097a8d43a91f503 100644 (file)
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.0c.  Last change: 2005 Sep 01
+*intro.txt*     For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -94,13 +94,15 @@ mention that.
 There are several mailing lists for Vim:
 <vim@vim.org>
        For discussions about using existing versions of Vim: Useful mappings,
-       questions, answers, where to get a specific version, etc.
+       questions, answers, where to get a specific version, etc.  There are
+       quite a few people watching this list and answering questions, also
+       for beginners.  Don't hesitate to ask your question here.
 <vim-dev@vim.org>                              *vim-dev* *vimdev*
        For discussions about changing Vim: New features, porting, patches,
        beta-test versions, etc.
 <vim-announce@vim.org>                         *vim-announce*
        Announcements about new versions of Vim; also for beta-test versions
-       and ports to different systems.
+       and ports to different systems.  This is a read-only list.
 <vim-multibyte@vim.org>                                *vim-multibyte*
        For discussions about using and improving the multi-byte aspects of
        Vim.
index b04bb5562b42e892475964a0da814194142cf454..1c5f5def5e3dfa98a2e08e1e8949e7d9afd05c58 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 7.0c.  Last change: 2006 Apr 05
+*options.txt*  For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1442,6 +1442,8 @@ A jump table for the options with a short description can be found at |Q_op|.
                        {not in Vi}
        Number of screen lines to use for the command-line.  Helps avoiding
        |hit-enter| prompts.
+       The value of this option is stored with the tab page, so that each tab
+       page can have a different value.
 
                                                *'cmdwinheight'* *'cwh'*
 'cmdwinheight' 'cwh'   number  (default 7)
@@ -6522,8 +6524,8 @@ A jump table for the options with a short description can be found at |Q_op|.
 'tagrelative' 'tr'     boolean (Vim default: on, Vi default: off)
                        global
                        {not in Vi}
-       If on and using a tag file in another directory, file names in that
-       tag file are relative to the directory where the tag file is.
+       If on and using a tags file in another directory, file names in that
+       tags file are relative to the directory where the tags file is.
        NOTE: This option is set to the Vi default value when 'compatible' is
        set and to the Vim default value when 'compatible' is reset.
 
index 5439fd4db2cc42c2817df9a396ed23701c8bc3e6..55f12d9cc113decd11590487672f68151c1dabd5 100644 (file)
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.0c.  Last change: 2006 Apr 06
+*tabpage.txt*   For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -205,6 +205,8 @@ files.
 
 Variables local to a tab page start with "t:". |tabpage-variable|
 
+Currently there is only one option local to a tab page: 'cmdheight'.
+
 The TabLeave and TabEnter autocommand events can be used to do something when
 switching from one tab page to another.  The exact order depends on what you
 are doing.  When creating a new tab page this works as if you create a new
index 3daf3ba4d85b3d25b22968ecdc1def312257a95d..4134a1da1d00fb23c712c53a114871d043d7d8cd 100644 (file)
@@ -5611,6 +5611,7 @@ hebrew    hebrew.txt      /*hebrew*
 hebrew.txt     hebrew.txt      /*hebrew.txt*
 help   various.txt     /*help*
 help-context   help.txt        /*help-context*
+help-tags      tags    1
 help-translated        various.txt     /*help-translated*
 help-xterm-window      various.txt     /*help-xterm-window*
 help.txt       help.txt        /*help.txt*
index bf7f42881e089ea4469231fc91624c4835fc3143..8ddf52fa0ee2bcf198f6ef892c020e6c03c615ca 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0c.  Last change: 2006 Apr 07
+*todo.txt*      For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -33,7 +33,7 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
     WFP_COMPPERMIT and WFP_COMPFORBID
 
-":mkspell" still takes too long in Hungarian dictionary.
+":mkspell" still takes much too long in Hungarian dictionary.
 
 Use ~/tmp/hungarian*.txt to test dictionary with.
 
@@ -1805,6 +1805,11 @@ Shared libraries:
 
 
 Tags:
+9   With ":set tags=./tags,../tags" and a tag appears in both tags files it is
+    added twice.  Requires figuring out the actual file name for each found
+    match.  Remove tag_fname from the match and combine it with the fname in
+    the match (without expanding or other things that take time).  When
+    'tagrelative' is off tag_fname isn't needed at all.
 7   Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
     number of possible matches? Check tags file for an item that has members.
     (Flemming Madsen)
index 3ff134087ee1e33e2a835ebbb5dc688dee182de4..5b7fbb040d80f4187a9d2db866efa23d8195a3f1 100644 (file)
@@ -1,4 +1,4 @@
-*usr_41.txt*   For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_41.txt*   For Vim version 7.0c.  Last change: 2006 Apr 09
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -577,15 +577,19 @@ used for.  You can find an alphabetical list here: |functions|.  Use CTRL-] on
 the function name to jump to detailed help on it.
 
 String manipulation:
-       char2nr()               get ASCII value of a character
        nr2char()               get a character by its ASCII value
+       char2nr()               get ASCII value of a character
+       str2nr()                convert a string to a number
+       printf()                format a string according to % items
        escape()                escape characters in a string with a '\'
+       tr()                    translate characters from one set to another
        strtrans()              translate a string to make it printable
        tolower()               turn a string to lowercase
        toupper()               turn a string to uppercase
        match()                 position where a pattern matches in a string
        matchend()              position where a pattern match ends in a string
        matchstr()              match of a pattern in a string
+       matchlist()             like matchstr() and also return submatches
        stridx()                first index of a short string in a long string
        strridx()               last index of a short string in a long string
        strlen()                length of a string
@@ -594,6 +598,9 @@ String manipulation:
        strpart()               get part of a string
        expand()                expand special keywords
        iconv()                 convert text from one encoding to another
+       byteidx()               byte index of a character in a string
+       repeat()                repeat a string multiple times
+       eval()                  evaluate a string expression
 
 List manipulation:
        get()                   get an item without error for wrong index
@@ -611,12 +618,14 @@ List manipulation:
        reverse()               reverse the order of a List
        split()                 split a String into a List
        join()                  join List items into a String
+       range()                 return a List with a sequence of numbers
        string()                String representation of a List
        call()                  call a function with List as arguments
        index()                 index of a value in a List
        max()                   maximum value in a List
        min()                   minimum value in a List
        count()                 count number of times a value appears in a List
+       repeat()                repeat a List multiple times
 
 Dictionary manipulation:
        get()                   get an entry without an error for a wrong key
@@ -637,15 +646,30 @@ Dictionary manipulation:
        min()                   minimum value in a Dictionary
        count()                 count number of times a value appears
 
-Working with text in the current buffer:
-       byte2line()             get line number at a specific byte count
-       line2byte()             byte count at a specific line
+Variables:
+       type()                  type of a variable
+       islocked()              check if a variable is locked
+       function()              get a Funcref for a function name
+       getbufvar()             get a variable value from a specific buffer
+       setbufvar()             set a variable in a specific buffer
+       getwinvar()             get a variable value from a specific window
+       setwinvar()             set a variable in a specific window
+       garbagecollect()        possibly free memory
+
+Cursor and mark position:
        col()                   column number of the cursor or a mark
        virtcol()               screen column of the cursor or a mark
        line()                  line number of the cursor or mark
        wincol()                window column number of the cursor
        winline()               window line number of the cursor
        cursor()                position the cursor at a line/column
+       getpos()                get position of cursor, mark, etc.
+       setpos()                set position of cursor, mark, etc.
+       byte2line()             get line number at a specific byte count
+       line2byte()             byte count at a specific line
+       diff_filler()           get the number of filler lines above a line
+
+Working with text in the current buffer:
        getline()               get a line or list of lines from the buffer
        setline()               replace a line in the buffer
        append()                append line or list of lines in the buffer
@@ -658,24 +682,27 @@ Working with text in the current buffer:
        searchpos()             find a match for a pattern
        searchpair()            find the other end of a start/skip/end
        searchpairpos()         find the other end of a start/skip/end
+       searchdecl()            search for the declaration of a name
 
 System functions and manipulation of files:
-       browse()                put up a file requester
        glob()                  expand wildcards
        globpath()              expand wildcards in a number of directories
+       findfile()              find a file in a list of directories
+       finddir()               find a directory in a list of directories
        resolve()               find out where a shortcut points to
        fnamemodify()           modify a file name
+       pathshorten()           shorten directory names in a path
+       simplify()              simplify a path without changing its meaning
        executable()            check if an executable program exists
        filereadable()          check if a file can be read
        filewritable()          check if a file can be written to
-       mkdir()                 create a new directory
+       getfperm()              get the permissions of a file
+       getftype()              get the kind of a file
        isdirectory()           check if a directory exists
-       getcwd()                get the current working directory
        getfsize()              get the size of a file
-       getftime()              get last modification time of a file
-       localtime()             get current time
-       strftime()              convert time to a string
+       getcwd()                get the current working directory
        tempname()              get the name of a temporary file
+       mkdir()                 create a new directory
        delete()                delete a file
        rename()                rename a file
        system()                get the result of a shell command
@@ -683,6 +710,13 @@ System functions and manipulation of files:
        readfile()              read a file into a List of lines
        writefile()             write a List of lines into a file
 
+Date and Time:
+       getftime()              get last modification time of a file
+       localtime()             get current time in seconds
+       strftime()              convert time to a string
+       reltime()               get the current or elapsed time accurately
+       reltimestr()            convert reltime() result to a string
+
 Buffers, windows and the argument list:
        argc()                  number of entries in the argument list
        argidx()                current position in the argument list
@@ -692,27 +726,52 @@ Buffers, windows and the argument list:
        bufloaded()             check if a buffer exists and is loaded
        bufname()               get the name of a specific buffer
        bufnr()                 get the buffer number of a specific buffer
+       tabpagebuflist()        return List of buffers in a tab page
+       tabpagenr()             get the number of a tab page
+       tabpagewinnr()          like winnr() for a specified tab page
        winnr()                 get the window number for the current window
        bufwinnr()              get the window number of a specific buffer
        winbufnr()              get the buffer number of a specific window
        getbufline()            get a list of lines from the specified buffer
-       getbufvar()             get a variable value from a specific buffer
-       setbufvar()             set a variable in a specific buffer
-       getwinvar()             get a variable value from a specific window
-       setwinvar()             set a variable in a specific window
+
+Command line:
+       getcmdline()            get the current command line
+       getcmdpos()             get position of the cursor in the command line
+       setcmdpos()             set position of the cursor in the command line
+       getcmdtype()            return the current command-line type
+
+Quickfix and location lists:
+       getqflist()             list of quickfix errors
+       setqflist()             modify a quickfix list
+       getloclist()            list of location list items
+       setloclist()            modify a location list
+
+Insert mode completion:
+       complete()              set found matches
+       complete_add()          add to found matches
+       complete_check()        check if completion should be aborted
+       pumvisible()            check if the popup menu is displayed
 
 Folding:
        foldclosed()            check for a closed fold at a specific line
        foldclosedend()         like foldclosed() but return the last line
        foldlevel()             check for the fold level at a specific line
        foldtext()              generate the line displayed for a closed fold
+       foldtextresult()        get the text displayed for a closed fold
 
-Syntax highlighting:
+Syntax and highlighting:
        hlexists()              check if a highlight group exists
        hlID()                  get ID of a highlight group
        synID()                 get syntax ID at a specific position
        synIDattr()             get a specific attribute of a syntax ID
        synIDtrans()            get translated syntax ID
+       diff_hlID()             get highlight ID for diff mode at a position
+       matcharg()              get info about |:match| arguments
+
+Spelling:
+       spellbadword()          locate badly spelled word at or after cursor
+       spellsuggest()          return suggested spelling corrections
+       soundfold()             return the sound-a-like equivalent of a word
 
 History:
        histadd()               add an item to a history
@@ -721,15 +780,23 @@ History:
        histnr()                get highest index of a history list
 
 Interactive:
+       browse()                put up a file requester
+       browsedir()             put up a directory requester
        confirm()               let the user make a choice
        getchar()               get a character from the user
        getcharmod()            get modifiers for the last typed character
        input()                 get a line from the user
+       inputlist()             let the user pick an entry from a list
        inputsecret()           get a line from the user without showing it
        inputdialog()           get a line from the user in a dialog
        inputsave()             save and clear typeahead
        inputrestore()          restore typeahead
 
+GUI:
+       getfontname()           get name of current font being used
+       getwinposx()            X position of the GUI Vim window
+       getwinposy()            Y position of the GUI Vim window
+
 Vim server:
        serverlist()            return the list of server names
        remote_send()           send command characters to a Vim server
@@ -740,8 +807,14 @@ Vim server:
        foreground()            move the Vim window to the foreground
        remote_foreground()     move the Vim server window to the foreground
 
+Window size and position:
+       winheight()             get height of a specific window
+       winwidth()              get width of a specific window
+       winrestcmd()            return command to restore window sizes
+       winsaveview()           get view of current window
+       winrestview()           restore saved view of current window
+
 Various:
-       type()                  type of a variable
        mode()                  get current editing mode
        visualmode()            last visual mode used
        hasmapto()              check if a mapping exists
@@ -749,23 +822,20 @@ Various:
        maparg()                get rhs of a mapping
        exists()                check if a variable, function, etc. exists
        has()                   check if a feature is supported in Vim
-       getqflist()             list of quickfix errors
-       getloclist()            list of location list items
+       changenr()              return number of most recent change
        cscope_connection()     check if a cscope connection exists
        did_filetype()          check if a FileType autocommand was used
        eventhandler()          check if invoked by an event handler
-       getwinposx()            X position of the GUI Vim window
-       getwinposy()            Y position of the GUI Vim window
-       winheight()             get height of a specific window
-       winwidth()              get width of a specific window
+
        libcall()               call a function in an external library
        libcallnr()             idem, returning a number
+
        getreg()                get contents of a register
        getregtype()            get type of a register
-       setqflist()             modify a quickfix list
-       setloclist()            modify a location list
        setreg()                set contents and type of a register
+
        taglist()               get list of matching tags
+       tagfiles()              get a list of tags files
 
 ==============================================================================
 *41.7* Defining a function
index 1cac881cf72b39ff5b52b440db84cb3808ebe736..8bd9dad1fb551743f85702ec2cb005ac50134efa 100644 (file)
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0c.  Last change: 2006 Apr 07
+*version7.txt*  For Vim version 7.0c.  Last change: 2006 Apr 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2411,4 +2411,7 @@ needed on the spell file.
 
 glob('/dir/\$ABC/*') didn't work.
 
+When using several tab pages and changing 'cmdheight' the display could become
+messed up.  Now store the value of 'cmdheight' separately for each tab page.
+
  vim:tw=78:ts=8:ft=help:norl:
index d71aa22a32cf101fc555ecc8e2e24c56d9c93813..166f50bad026be3c97722e7e927dc6601a02b638 100644 (file)
@@ -9,9 +9,8 @@ elseif exists("b:current_syntax")
   finish
 else
 endif
-"% 12 Errors?
+"% 11 Errors?
 syn match sisu_error contains=sisu_contain,sisu_control,sisu_markpara,sisu_mark,sisu_content_alt,sisu_error_wspace "<![^ei]\S\+!>"
-"% 11 Expression Substitution: and Backslash Notation
 "% 10 Markers: Endnote Identifiers, Pagebreaks etc.: 
 if !exists("sisu_no_identifiers")
   syn match   sisu_mark_endnote   "\~^"
@@ -19,20 +18,16 @@ if !exists("sisu_no_identifiers")
   syn match   sisu_break          "<br>\|<br />"
   syn match   sisu_control        "<p>\|</p>\|<p />\|<:p[bn]>"
   syn match   sisu_html           "<center>\|</center>"
-  syn match   sisu_markpara       "^_\([12]\*\?\|\*\)\s\+"
-  syn match   sisu_markpara       "#[ 1]\|_# "
   syn match   sisu_marktail       "[~-]#"
   syn match   sisu_html           "<td>\|<td \|<tr>\|</td>\|</tr>\|<table>\|<table \|</table>"
   syn match   sisu_control        "\""
-  syn match   sisu_underline      "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"he=e-1
+  syn match   sisu_underline      "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
+  syn match   sisu_number         "[0-9a-f]\{32\}\|[0-9a-f]\{64\}"
   "metaverse specific
   syn match   sisu_ocn            "<\~\d\+;\w\d\+;\w\d\+>"
-  syn match   sisu_digest         "<[0-9a-f]\{32\}:[0-9a-f]\{32\}>\|<[0-9a-f]\{32\}>"
-  syn match   sisu_digest         "<[0-9a-f]\{64\}:[0-9a-f]\{64\}>\|<[0-9a-f]\{64\}>"
   syn match   sisu_marktail       "<\~#>"
   syn match   sisu_markpara       "<:i[12]>"
   syn match   sisu_link           " \*\~\S\+"
-  syn match   sisu_action         "^<<.\+"
   syn match   sisu_action         "^<:insert\d\+>"
   syn match   sisu_contain        "<:e>"
 endif
@@ -46,24 +41,25 @@ syn match sisu_error              "<a href\|</a>]" contains=sisu_error
 "% 7 Simple Enclosed Markup:
 " Simple Markup:
 "%   header
-syn region sisu_header contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="0\~" end="$"
+syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^0\~\(\S\+\|[^-]\)" end="$"
 "%   headings
-syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_ocn,sisu_digest,sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_heading start="[1-8]\~[^-]" end="$"
+syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_structure start="^[1-8]\~\(\S\+\|[^-]\)" end="$"
 "%   grouped text
 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_contain start="table{.\+" end="}table"
 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_contain start="{t\~h}" end="$$"
 syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_contain start="^\(alt\|group\|poem\){" end="^}\(alt\|group\|poem\)"
 syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="^code{" end="^}code"
 "%   endnotes
-syn region sisu_content_endnote contains=sisu_digest,sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_error_spell,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~{" end="}\~" skip="\n"
+syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_error_spell,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~{" end="}\~" skip="\n"
 syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_error_spell,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n\n"
 "%   images
-syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_error,sisu_error_spell matchgroup=sisu_link start="{" end="}\(\(http://\|\.\./\)\S\+\|image\)" oneline
-"syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_link start="{" end="}\(\(http://\|\.\./\)\S\+\|image\)" oneline
-"sisu_identifier fix
-""syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_link start="{" end="}\(http\S\+\|image\)" oneline
+syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_link start="{" end="}\(\(http://\|\.\./\)\S\+\|image\)" oneline
+"%   line operations
+syn region sisu_link contains=sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$"
+syn region sisu_control contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_control start="\(\(^\| \)!_ \|<:b>\)" end="$"
+syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_markpara start="^_\([12]\*\?\|\*\) " end="$"
+syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace,sisu_error_spell matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$"
 "%   font face curly brackets
-syn region sisu_control contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_spell matchgroup=sisu_control start="\(\(^\| \)!_ \|<:b>\)" end="$"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_fontface start="\*{" end="}\*"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_fontface start="!{" end="}!"
 syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_fontface start="_{" end="}_"
@@ -72,23 +68,19 @@ syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_
 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_fontface start="\^{" end="}\^"
 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_fontface start=",{" end="}," 
 syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-" 
-syn region sisu_control contains=sisu_error matchgroup=sisu_content_alt start="<b>" end="</b>" oneline
-syn region sisu_control contains=sisu_error matchgroup=sisu_content_alt start="<em>" end="</em>" oneline
-syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="<u>" end="</u>" oneline
-syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="<i>" end="</i>" oneline
-syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="<ins>" end="</ins>" skip="\\\\\|\\'" oneline
-syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="<del>" end="</del>" oneline
 syn region sisu_html contains=sisu_error contains=sisu_strikeout matchgroup=sisu_contain start="<a href=\".\{-}\">" end="</a>" oneline
 "%   single words bold italicise etc. "workon
 syn region sisu_control contains=sisu_error matchgroup=sisu_control start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
 syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline
-"syn region sisu_underline matchgroup=sisu_underline start="\([ (]\|^\)_\([^ !*{\\][\w]\|[^12][^*]\)"hs=e-2 end="\(_\([ )\.]\|$\)\| \)"he=e-1 skip="[a-zA-Z0-9']" oneline
 "%   html
-syn region sisu_number contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_contain start="<b>" end="</b>" skip="\n"
-syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_contain start="<i>" end="</i>" skip="\n"
-syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_contain start="<u>" end="</u>" skip="\n"
+syn region sisu_number contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_html start="<b>" end="</b>" skip="\n" oneline
+syn region sisu_number contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_html start="<em>" end="</em>" oneline
+syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_html start="<i>" end="</i>" skip="\n" oneline
+syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_html start="<u>" end="</u>" skip="\n" oneline
+syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell,sisu_mark matchgroup=sisu_html start="<ins>" end="</ins>" skip="\\\\\|\\'" oneline
+syn region sisu_identifier contains=sisu_error matchgroup=sisu_html start="<del>" end="</del>" oneline
 "%   misc
-syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\^[^{\|\n\\]" end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline
+syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline
 "% metaverse
 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_spell matchgroup=sisu_contain start="<:Table.\{-}>" end="<:Table[-_]end>"
 syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="<:code>" end="<:code[-_]end>"
@@ -101,8 +93,7 @@ else " not Expensive
   syn region  sisu_content_alt  matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline
 endif " Expensive?
 "% 5 Headers: and Headings (Document Instructions)
-"syn match   sisu_header contains=sisu_error,sisu_error_wspace,sisu_mark "0\~.*"
-syn match   sisu_comment contains=sisu_error "^% .*\|^%% .*"
+syn match   sisu_comment "^% .*\|^%% .*"
 syn match   sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+"
 syn region  sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$"
 "% 4 Errors?
@@ -110,6 +101,7 @@ syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+"
 syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+"
 syn match sisu_error_wspace contains=sisu_error_wspace  " \s*$"
 syn match sisu_error contains=sisu_error,sisu_error_wspace "[^ (}]http:\S\+"
+syn match sisu_error contains=sisu_error_wspace "\t\+"
 syn match sisu_error contains=sisu_error "http:\S\+[}><]"
 syn match sisu_error contains=sisu_error "\([!*/_\+,^]\){\([^(\}\1)]\)\{-}\n\n"
 syn match sisu_error contains=sisu_error "^[\-\~]{[^{]\{-}\n\n"
@@ -139,8 +131,11 @@ if version >= 508 || !exists("did_sisu_syntax_inits")
     command -nargs=+ HiLink hi def link <args>
   endif
 "% 1 Defined
+  HiLink sisu_normal          Normal
   HiLink sisu_header          PreProc
+  HiLink sisu_header_content  Statement
   HiLink sisu_heading         Title
+  HiLink sisu_structure       Operator
   HiLink sisu_contain         Include
   HiLink sisu_mark_endnote    Include
   HiLink sisu_link            NonText
@@ -151,7 +146,6 @@ if version >= 508 || !exists("did_sisu_syntax_inits")
   HiLink sisu_content_endnote Special
   HiLink sisu_control         Define
   HiLink sisu_ocn             Include
-  HiLink sisu_digest          Identifier
   HiLink sisu_number          Number
   HiLink sisu_identifier      Function
   HiLink sisu_underline       Underlined
@@ -165,8 +159,6 @@ if version >= 508 || !exists("did_sisu_syntax_inits")
   HiLink sisu_error_spell     SpellErrors "line does nothing
   HiLink sisu_error_wspace    Error
   HiLink sisu_error           Error
-  "HiLink sisu_                Statement
-  "HiLink sisu_                Operator
   delcommand HiLink
 endif
 let b:current_syntax = "sisu"
index 4c7c7758460437b3078f0085e907472d788928b3..208b72154fdce6f4c66f043214dcbc16dd1734db 100644 (file)
--- a/src/gui.c
+++ b/src/gui.c
@@ -591,7 +591,7 @@ gui_init()
        /* When 'cmdheight' was set during startup it may not have taken
         * effect yet. */
        if (p_ch != 1L)
-           command_height(-1L);
+           command_height();
 
        return;
     }
@@ -3497,6 +3497,25 @@ send_tabline_event(nr)
     return TRUE;
 }
 
+/*
+ * Send a tabline menu event
+ */
+    void
+send_tabline_menu_event(tabidx, event)
+    int            tabidx;
+    int            event;
+{
+    char_u         string[3];
+
+    string[0] = CSI;
+    string[1] = KS_TABMENU;
+    string[2] = KE_FILLER;
+    add_to_input_buf(string, 3);
+    string[0] = tabidx;
+    string[1] = (char_u)(long)event;
+    add_to_input_buf_csi(string, 2);
+}
+
 #endif
 
 /*
index 832933a5541dcd7f9b9987bd99423d21d3009d3a..adb603a6c90ca9eb9bf0873233a7d6e4e24faf80 100644 (file)
@@ -3128,16 +3128,9 @@ static int clicked_page;     /* page clicked in tab line */
     static void
 tabline_menu_handler(GtkMenuItem *item, gpointer user_data)
 {
-    char_u     string[3];
 
     /* Add the string cmd into input buffer */
-    string[0] = CSI;
-    string[1] = KS_TABMENU;
-    string[2] = KE_FILLER;
-    add_to_input_buf(string, 3);
-    string[0] = clicked_page;
-    string[1] = (char_u)(long)user_data;
-    add_to_input_buf_csi(string, 2);
+    send_tabline_menu_event(clicked_page, (int)(long)user_data);
 
     if (gtk_main_level() > 0)
        gtk_main_quit();
index a98c9d1c607a25c4f5576f8f1311792b29619f0c..4caecc308d54b478f2c2d5f5a3880fb5750f3d57 100644 (file)
@@ -27,6 +27,7 @@
 #include <Xm/ToggleBG.h>
 #include <Xm/SeparatoG.h>
 #include <Xm/Notebook.h>
+#include <Xm/XmP.h>
 
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
@@ -151,19 +152,52 @@ tabline_button_cb(w, client_data, call_data)
     Widget     w;
     XtPointer  client_data, call_data;
 {
-    char_u     string[3];
     int                cmd, tab_idx;
 
     XtVaGetValues(w, XmNuserData, &cmd, NULL);
     XtVaGetValues(tabLine_menu, XmNuserData, &tab_idx, NULL);
 
-    string[0] = CSI;
-    string[1] = KS_TABMENU;
-    string[2] = KE_FILLER;
-    add_to_input_buf(string, 3);
-    string[0] = tab_idx;
-    string[1] = (char_u)(long)cmd;
-    add_to_input_buf_csi(string, 2);
+    send_tabline_menu_event(tab_idx, cmd);
+}
+
+/*
+ * Tabline single mouse click timeout handler
+ */
+/*ARGSUSED*/
+    static void
+motif_tabline_timer_cb (timed_out, interval_id)
+    XtPointer          timed_out;
+    XtIntervalId       *interval_id;
+{
+    *((int *)timed_out) = TRUE;
+}
+
+/*
+ * check if the tabline tab scroller is clicked
+ */
+    static int
+tabline_scroller_clicked(scroller_name, event)
+    char               *scroller_name;
+    XButtonPressedEvent *event;
+{
+    Widget     tab_scroll_w;
+    Position   pos_x, pos_y;
+    Dimension  width, height;
+
+    tab_scroll_w = XtNameToWidget(tabLine, scroller_name);
+    if (tab_scroll_w != (Widget)0) {
+       XtVaGetValues(tab_scroll_w, XmNx, &pos_x, XmNy, &pos_y, XmNwidth,
+                     &width, XmNheight, &height, NULL);
+       if (pos_x >= 0) {
+           /* Tab scroller (next) is visible */
+           if ((event->x >= pos_x) && (event->x <= pos_x + width) &&
+               (event->y >= pos_y) && (event->y <= pos_y + height)) {
+               /* Clicked on the scroller */
+               return TRUE;
+           }
+       }
+    }
+    return FALSE;
 }
 
 /*ARGSUSED*/
@@ -179,15 +213,47 @@ tabline_menu_cb(w, closure, e, continue_dispatch)
     int                                tab_idx = 0;
     WidgetList                 children;
     Cardinal                   numChildren;
+    static XtIntervalId                timer = (XtIntervalId)0;
+    static int                 timed_out = TRUE;
 
     event = (XButtonPressedEvent *)e;
 
+    if (event->button == Button1)
+    {
+       if (tabline_scroller_clicked("MajorTabScrollerNext", event)
+           || tabline_scroller_clicked("MajorTabScrollerPrevious", event))
+           return;
+
+       if (!timed_out)
+       {
+           XtRemoveTimeOut(timer);
+           timed_out = TRUE;
+
+           /*
+            * Double click on the tabline gutter, add a new tab
+            */
+           send_tabline_menu_event(0, TABLINE_MENU_NEW);
+       }
+       else
+       {
+           /*
+            * Single click on the tabline gutter, start a timer to check
+            * for double clicks
+            */
+           timer = XtAppAddTimeOut(app_context, (long_u)p_mouset,
+                                   motif_tabline_timer_cb, &timed_out);
+           timed_out = FALSE;
+       }
+       return;
+    }
+
     if (event->button != Button3)
        return;
 
     if (event->subwindow != None)
     {
        tab_w = XtWindowToWidget(XtDisplay(w), event->subwindow);
+       /* LINTED: avoid warning: dubious operation on enum */
        if (tab_w != (Widget)0 && XmIsPushButton(tab_w))
            XtVaGetValues(tab_w, XmNpageNumber, &tab_idx, NULL);
     }
@@ -3169,6 +3235,9 @@ gui_mch_show_tabline(int showit)
        {
            XtManageChild(tabLine);
            XtUnmanageChild(XtNameToWidget(tabLine, "PageScroller"));
+           XtUnmanageChild(XtNameToWidget(tabLine, "MinorTabScrollerNext"));
+           XtUnmanageChild(XtNameToWidget(tabLine,
+                                          "MinorTabScrollerPrevious"));
 #ifdef FEAT_MENU
 # ifdef FEAT_TOOLBAR
            if (XtIsManaged(XtParent(toolBar)))
@@ -3237,6 +3306,8 @@ gui_mch_update_tabline(void)
     XmNotebookPageInfo page_info;
     XmNotebookPageStatus page_status;
     int                        last_page, tab_count;
+    XmString           label_str;
+    char               *label_cstr;
 
     if (tabLine == (Widget)0)
        return;
@@ -3265,9 +3336,25 @@ gui_mch_update_tabline(void)
            tab = page_info.major_tab_widget;
 
        XtVaSetValues(tab, XmNpageNumber, nr, NULL);
-       get_tabline_label(tp);
-       XtVaSetValues(tab, XtVaTypedArg, XmNlabelString, XmRString,
-                     NameBuff, STRLEN(NameBuff) + 1, NULL);
+
+       /*
+        * Change the label text only if it is different
+        */
+       XtVaGetValues(tab, XmNlabelString, &label_str, NULL);
+       if (XmStringGetLtoR(label_str, XmSTRING_DEFAULT_CHARSET, &label_cstr))
+       {
+           get_tabline_label(tp);
+           if (STRCMP(label_cstr, NameBuff) != 0) {
+               XtVaSetValues(tab, XtVaTypedArg, XmNlabelString, XmRString,
+                             NameBuff, STRLEN(NameBuff) + 1, NULL);
+               /*
+                * Force a resize of the tab label button
+                */
+               XtUnmanageChild(tab);
+               XtManageChild(tab);
+           }
+           XtFree(label_cstr);
+       }
     }
 
     tab_count = nr - 1;
index 0e6e8570465f41b85a7fb832888d509c1a4887d0..21b757b60928305d1d06988eda3da07931de4a18 100644 (file)
@@ -740,17 +740,7 @@ _WndProc(
                GetCursorPos((LPPOINT)&pt);
                GetWindowRect(s_textArea, &rect);
                if (pt.y < rect.top)
-               {
-                   char_u          string[3];
-
-                   string[0] = CSI;
-                   string[1] = KS_TABMENU;
-                   string[2] = KE_FILLER;
-                   add_to_input_buf(string, 3);
-                   string[0] = 0;
-                   string[1] = (char_u)(long)TABLINE_MENU_NEW;
-                   add_to_input_buf_csi(string, 2);
-               }
+                   send_tabline_menu_event(0, TABLINE_MENU_NEW);
            }
            return MyWindowProc(hwnd, uMsg, wParam, lParam);
        }
index b940a27351d74d5a46c03d65cfe750643d41bd7a..7592c7f7144438432e467e858d2d8d63a2abc5d9 100644 (file)
@@ -1120,6 +1120,7 @@ gui_mch_set_text_area_pos(int x, int y, int w, int h)
     if (showing_tabline)
     {
        int     top = 0;
+       RECT    rect;
 
 #ifdef FEAT_TOOLBAR
        if (vim_strchr(p_go, GO_TOOLBAR) != NULL)
@@ -2191,7 +2192,6 @@ show_tabline_popup_menu(void)
     MENUITEMINFO    minfo;
     long           rval;
     POINT          pt;
-    char_u         string[3];
 
     tab_pmenu = CreatePopupMenu();
     if (tab_pmenu == NULL)
@@ -2236,13 +2236,7 @@ show_tabline_popup_menu(void)
        else
            idx += 1;
 
-       string[0] = CSI;
-       string[1] = KS_TABMENU;
-       string[2] = KE_FILLER;
-       add_to_input_buf(string, 3);
-       string[0] = idx;
-       string[1] = (char_u)(long)rval;
-       add_to_input_buf_csi(string, 2);
+       send_tabline_menu_event(idx, (int)rval);
     }
 }
 
index f809a736dbc8b473f4cdf88cc55f4974a92ac2b6..8ed4f3469f127f33f7b703df53f070c1341258a7 100644 (file)
@@ -7743,7 +7743,7 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags)
                && !gui.starting
 #endif
           )
-           command_height(old_value);
+           command_height();
     }
 
     /* when 'updatecount' changes from zero to non-zero, open swap files */
index b926eb0bdb133628c4eb6c2344b94e0ff8335a61..7105a6f8345f97c9f2c9b9c5254802f0139fb051 100644 (file)
@@ -38,6 +38,7 @@ extern int gui_use_tabline __ARGS((void));
 extern void gui_update_tabline __ARGS((void));
 extern void get_tabline_label __ARGS((tabpage_T *tp));
 extern int send_tabline_event __ARGS((int nr));
+extern void send_tabline_menu_event __ARGS((int tabidx, int event));
 extern void gui_remove_scrollbars __ARGS((void));
 extern void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
 extern scrollbar_T *gui_find_scrollbar __ARGS((long ident));
index 362f00a451b27536afb66f5dabcb92af8c370098..f0ca77bba4046e67c764c119ff0e0d9b80c68eca 100644 (file)
@@ -1,59 +1,59 @@
 /* window.c */
-extern void do_window __ARGS((int nchar, long Prenum, int xchar));
-extern int win_split __ARGS((int size, int flags));
-extern int win_valid __ARGS((win_T *win));
-extern int win_count __ARGS((void));
-extern int make_windows __ARGS((int count, int vertical));
-extern void win_move_after __ARGS((win_T *win1, win_T *win2));
-extern void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-extern void close_windows __ARGS((buf_T *buf, int keep_curwin));
-extern void win_close __ARGS((win_T *win, int free_buf));
-extern void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-extern void win_free_all __ARGS((void));
-extern void close_others __ARGS((int message, int forceit));
-extern void curwin_init __ARGS((void));
-extern int win_alloc_first __ARGS((void));
-extern void win_init_size __ARGS((void));
-extern int win_new_tabpage __ARGS((int after));
-extern int may_open_tabpage __ARGS((void));
-extern int make_tabpages __ARGS((int maxcount));
-extern int valid_tabpage __ARGS((tabpage_T *tpc));
-extern tabpage_T *find_tabpage __ARGS((int n));
-extern int tabpage_index __ARGS((tabpage_T *ftp));
-extern void goto_tabpage __ARGS((int n));
-extern void goto_tabpage_tp __ARGS((tabpage_T *tp));
-extern void tabpage_move __ARGS((int nr));
-extern void win_goto __ARGS((win_T *wp));
-extern win_T *win_find_nr __ARGS((int winnr));
-extern void win_enter __ARGS((win_T *wp, int undo_sync));
-extern win_T *buf_jump_open_win __ARGS((buf_T *buf));
-extern int win_alloc_lines __ARGS((win_T *wp));
-extern void win_free_lsize __ARGS((win_T *wp));
-extern void shell_new_rows __ARGS((void));
-extern void shell_new_columns __ARGS((void));
-extern void win_size_save __ARGS((garray_T *gap));
-extern void win_size_restore __ARGS((garray_T *gap));
-extern int win_comp_pos __ARGS((void));
-extern void win_setheight __ARGS((int height));
-extern void win_setheight_win __ARGS((int height, win_T *win));
-extern void win_setwidth __ARGS((int width));
-extern void win_setwidth_win __ARGS((int width, win_T *wp));
-extern void win_setminheight __ARGS((void));
-extern void win_drag_status_line __ARGS((win_T *dragwin, int offset));
-extern void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
-extern void win_comp_scroll __ARGS((win_T *wp));
-extern void command_height __ARGS((long old_p_ch));
-extern void last_status __ARGS((int morewin));
-extern int tabline_height __ARGS((void));
-extern char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
-extern char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
-extern char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
-extern char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
-extern int path_with_url __ARGS((char_u *fname));
-extern int vim_isAbsName __ARGS((char_u *name));
-extern int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-extern int min_rows __ARGS((void));
-extern int only_one_window __ARGS((void));
-extern void check_lnums __ARGS((int do_curwin));
-extern int win_hasvertsplit __ARGS((void));
+void do_window __ARGS((int nchar, long Prenum, int xchar));
+int win_split __ARGS((int size, int flags));
+int win_valid __ARGS((win_T *win));
+int win_count __ARGS((void));
+int make_windows __ARGS((int count, int vertical));
+void win_move_after __ARGS((win_T *win1, win_T *win2));
+void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+void close_windows __ARGS((buf_T *buf, int keep_curwin));
+void win_close __ARGS((win_T *win, int free_buf));
+void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+void win_free_all __ARGS((void));
+void close_others __ARGS((int message, int forceit));
+void curwin_init __ARGS((void));
+int win_alloc_first __ARGS((void));
+void win_init_size __ARGS((void));
+int win_new_tabpage __ARGS((int after));
+int may_open_tabpage __ARGS((void));
+int make_tabpages __ARGS((int maxcount));
+int valid_tabpage __ARGS((tabpage_T *tpc));
+tabpage_T *find_tabpage __ARGS((int n));
+int tabpage_index __ARGS((tabpage_T *ftp));
+void goto_tabpage __ARGS((int n));
+void goto_tabpage_tp __ARGS((tabpage_T *tp));
+void tabpage_move __ARGS((int nr));
+void win_goto __ARGS((win_T *wp));
+win_T *win_find_nr __ARGS((int winnr));
+void win_enter __ARGS((win_T *wp, int undo_sync));
+win_T *buf_jump_open_win __ARGS((buf_T *buf));
+int win_alloc_lines __ARGS((win_T *wp));
+void win_free_lsize __ARGS((win_T *wp));
+void shell_new_rows __ARGS((void));
+void shell_new_columns __ARGS((void));
+void win_size_save __ARGS((garray_T *gap));
+void win_size_restore __ARGS((garray_T *gap));
+int win_comp_pos __ARGS((void));
+void win_setheight __ARGS((int height));
+void win_setheight_win __ARGS((int height, win_T *win));
+void win_setwidth __ARGS((int width));
+void win_setwidth_win __ARGS((int width, win_T *wp));
+void win_setminheight __ARGS((void));
+void win_drag_status_line __ARGS((win_T *dragwin, int offset));
+void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
+void win_comp_scroll __ARGS((win_T *wp));
+void command_height __ARGS((void));
+void last_status __ARGS((int morewin));
+int tabline_height __ARGS((void));
+char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
+char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
+char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
+char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
+int path_with_url __ARGS((char_u *fname));
+int vim_isAbsName __ARGS((char_u *name));
+int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+int min_rows __ARGS((void));
+int only_one_window __ARGS((void));
+void check_lnums __ARGS((int do_curwin));
+int win_hasvertsplit __ARGS((void));
 /* vim: set ft=c : */
index ce3bf9b1fea2cea42d8b17cf28bbb19cc6da6e82..6710b7218f2311691f7f14989a9c9ec3b0cb08b1 100644 (file)
@@ -1625,6 +1625,8 @@ struct tabpage_S
     win_T          *tp_lastwin;    /* last window in this Tab page */
     long           tp_old_Rows;    /* Rows when Tab page was left */
     long           tp_old_Columns; /* Columns when Tab page was left */
+    long           tp_ch_used;     /* value of 'cmdheight' when frame size
+                                      was set */
 #ifdef FEAT_GUI
     int                    tp_prev_which_scrollbars[3];
                                    /* previous value of which_scrollbars */
index 993e7475c5ae8ab1cc0b4aa00a5a4056ec8c3cb7..a5c7e886948959aed98135fd5cce285c5466fe4c 100644 (file)
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT      "vim70c"
 #define VIM_VERSION_SHORT      "7.0c"
-#define VIM_VERSION_MEDIUM     "7.0c12 BETA"
-#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0c12 BETA (2006 Apr 7)"
-#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0c12 BETA (2006 Apr 7, compiled "
+#define VIM_VERSION_MEDIUM     "7.0c13 BETA"
+#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0c13 BETA (2006 Apr 8)"
+#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0c13 BETA (2006 Apr 8, compiled "
index 26003f37ae918be1de6d5e977ea8ed69fecb248c..5e9553b6e56c266e3b2b491c192608638a05c33f 100644 (file)
@@ -85,8 +85,6 @@ static void win_new_height __ARGS((win_T *, int));
 #define NOWIN          (win_T *)-1     /* non-exisiting window */
 
 #ifdef FEAT_WINDOWS
-static long p_ch_used = 1L;            /* value of 'cmdheight' when frame
-                                          size was set */
 # define ROWS_AVAIL (Rows - p_ch - tabline_height())
 #else
 # define ROWS_AVAIL (Rows - p_ch)
@@ -3087,9 +3085,6 @@ win_alloc_firstwin(oldwin)
     topframe->fr_width = Columns;
 #endif
     topframe->fr_height = Rows - p_ch;
-#ifdef FEAT_WINDOWS
-    p_ch_used = p_ch;
-#endif
     topframe->fr_win = curwin;
     curwin->w_frame = topframe;
 
@@ -3137,6 +3132,7 @@ alloc_tabpage()
        /* init t: variables */
        init_var_dict(&tp->tp_vars, &tp->tp_winvar);
 #endif
+       tp->tp_ch_used = p_ch;
     }
     return tp;
 }
@@ -3419,7 +3415,9 @@ enter_tabpage(tp, old_curbuf)
 
     /* The tabpage line may have appeared or disappeared, may need to resize
      * the frames for that.  When the Vim window was resized need to update
-     * frame sizes too. */
+     * frame sizes too.  Use the stored value of p_ch, so that it can be
+     * different for each tab page. */
+    p_ch = curtab->tp_ch_used;
     if (curtab->tp_old_Rows != Rows || (old_off != firstwin->w_winrow
 #ifdef FEAT_GUI_TABLINE
                            && !gui_use_tabline()
@@ -4215,7 +4213,7 @@ shell_new_rows()
 #endif
     compute_cmdrow();
 #ifdef FEAT_WINDOWS
-    p_ch_used = p_ch;
+    curtab->tp_ch_used = p_ch;
 #endif
 
 #if 0
@@ -4961,6 +4959,7 @@ win_drag_status_line(dragwin, offset)
     p_ch = Rows - cmdline_row;
     if (p_ch < 1)
        p_ch = 1;
+    curtab->tp_ch_used = p_ch;
     redraw_all_later(SOME_VALID);
     showmode();
 }
@@ -5257,19 +5256,17 @@ win_comp_scroll(wp)
  * command_height: called whenever p_ch has been changed
  */
     void
-command_height(old_p_ch)
-    long       old_p_ch;
+command_height()
 {
 #ifdef FEAT_WINDOWS
     int                h;
     frame_T    *frp;
+    int                old_p_ch = curtab->tp_ch_used;
 
-    /* When passed a negative value use the value of p_ch that we remembered.
-     * This is needed for when the GUI starts up, we can't be sure in what
-     * order things happen. */
-    if (old_p_ch < 0)
-       old_p_ch = p_ch_used;
-    p_ch_used = p_ch;
+    /* Use the value of p_ch that we remembered.  This is needed for when the
+     * GUI starts up, we can't be sure in what order things happen.  And when
+     * p_ch was changed in another tab page. */
+    curtab->tp_ch_used = p_ch;
 
     /* Find bottom frame with width of screen. */
     frp = lastwin->w_frame;
@@ -5328,8 +5325,8 @@ command_height(old_p_ch)
     if (frp != lastwin->w_frame)
        (void)win_comp_pos();
 #else
-    win_setheight((int)(firstwin->w_height + old_p_ch - p_ch));
     cmdline_row = Rows - p_ch;
+    win_setheight(cmdline_row);
 #endif
 }