Search the web
Sign In
New User? Sign Up
vimdev · Vim (Vi IMproved) text editor developers list
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want your group to be featured on the Yahoo! Groups website? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Messages 1 - 13086 of 55518   Newest  |  < Newer  |  Older >  |  Oldest
Messages: Show Message Summaries   (Group by Topic) Sort by Date v  
#13086 From: "Hast, Klaus" <khast@...>
Date: Tue Jan 11, 2000 12:16 pm
Subject: AW: HOWTO: vim dos32 and windows clipboard
khast@...
Send Email Send Email
 

Hello Vince,
1.
i don't know if it is of any usage (because it's from a Windows (MFC) program),
but maybe the calls are somehow adaptable ?? See below ..
If there are any plans to integrate clipboard support for dos32 - could i
receive a notification?
2.
About your speed-up hint gvim:
        You should set guioptions in your _vimrc (yes, _vimrc)
        to stop the processing of menu.vim, and turn off the
        menubar and toolbar. This considerably speeds the gui
        version startup. (I use this trick on my P75 :)
I tried that (_vimrc):
        set guioptions-=m
        set guioptions-=M
        set guioptions-=T
It speeds up a little bit, but not much.
Basically, my experience with the startup time of gvim is:
- on a fast system ("where you don't need it"), eg. P400, gvim loads nearly as fast
  as vim32(dos).  Settings above don't play a big role.
- on a slower system ("where you would need it"), eg. P133, the starting time
  of gvim against dos32-vim is drastical, with or without the hint above.
3.
Whey i tell this?
The features of VIM are great!
But using vim oftenly from the dos box, none of the three version is really usable
as a daily used default editor on Windows95 (what i mean is: starting it *oftenly* for some kind of files,
quitting it oftenly ..), because console-dos-32 and gvim are too slow when starting,
and dos32 is wonderful to use, but it lacks of the clipboard capability which is a
real ugly restriction.  
A clipboard extentions would be great great great :-)
Best Regards,
Klaus

Best Regards!
Klaus
BOOL CProbrdrcView::CopyTextToClipboard(CString * pString)
{
        HRESULT hRet = NOERROR;
        HGLOBAL hGlobal;
        unsigned length = pString->GetLength() + 1;
        if( pString )                                            // Arg Ok      
        {   if( OpenClipboard() )                                // Open Clipboard Ok
            {   hGlobal = GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, length);
                if( hGlobal )                                    // Mem Ok
                {  char *pGlMem;
                   pGlMem = (char *) GlobalLock( hGlobal );
                   if( pGlMem )                                  // Lock Ok
                   {   strcpy (pGlMem, *pString);
                       GlobalUnlock( pGlMem );
                       EmptyClipboard();
                       HANDLE hClip = SetClipboardData( CF_TEXT, hGlobal );
                       if( hClip == NULL )                       // Can't set Text
                       {     GlobalFree( hGlobal );
                             hRet = GetLastError();
                   }   }
                   else
                   {
                       GlobalFree( hGlobal );
                       hRet = GetLastError();
                   }
                } // if Mem Ok
                else
                   hRet = E_OUTOFMEMORY;
                CloseClipboard();
            } // if Open Clipboard Ok
            else
                hRet = GetLastError();
        } // if Arg Ok
        else
            hRet = E_FAIL;
        if (hRet == NOERROR)
            MessageBox("Copy done!", "Copy to Clipboard  ");
        else AfxMessageBox( "Unable to set Clipboard data" );
        return hRet;
}




    ----------
    Von:    Vince Negri[SMTP:vnegri@...]
    Gesendet:       Dienstag, 11. Januar 2000 12:04
    An:     'Hast, Klaus'; 'vim developers list'
    Cc:     Bram Moolenaar
    Betreff:        HOWTO: vim dos32 and windows clipboard

    > From: Hast, Klaus [SMTP:khast@...]
    > Vim dos32 with clipboard access would be a fine thing ... and would avoid
    > > the need to use different editors for different needs.
    >
    If you're interested in doing this (or anyone else is),
    here's the information:

    For Windows 3.x in 386 enhanced mode, Windows for Workgroups, or
    Win95 or later, Dos boxes support an INT 2fh interface to the clipboard.,
    NOTE: The Wws functions RegisterClipboardFormat() and
          EnumClipboardFormats() are not supported.

    Function Call Definitions
    Name            IdentifyWinOldApVersion()
    Parameters      AX = 1700H
    Return Values   AX == 1700H: Clipboard functions not available
                       <> 1700H: AL = Major version number
                                 AH = Minor version number

    Name            OpenClipboard()
    Parameters      AX = 1701H
    Return Values   AX == 0: Clipboard already open
                       <> 0: Clipboard opened

    Name            EmptyClipboard()
    Parameters      AX = 1702H
    Return Values   AX == 0: Error occurred
                       <> 0: OK, Clipboard emptied

    Name            SetClipboardData()
    Parameters      AX = 1703H
                    DX = WinOldAp-Supported Clipboard format
                    ES:BX = Pointer to data
                    SI:CX = Size of data in bytes
    Return Values   AX == 0: Error occurred
                       <> 0: OK.  Data copied into allocated memory.
    Note            The MS-DOS-based application should call the
                    ClipboardCompact() function prior to this to determine
                    if the data can be accommodated in memory.

    Name            GetClipboardDataSize()
    Parameters      AX = 1704H
                    DX = WinOldAp-Supported Clipboard format
    Return Values   DX:AX == Size of the data in bytes, including any
                             headers.
                          == 0 If data in this format is not in the clipboard.

    Name            GetClipboardData()
    Parameters      AX = 1705H
                    DX = WinOldAp-Supported Clipboard format
                    ES:BX = Pointer to data buffer to hold data
    Return Values   AX == 0: Error occurred (or data in this format is not
                             in the clipboard)
                       <> 0: OK
    Note           This call should be preceded by a
                   GetClipBoardDataSize() call to find out how much memory
                   is required for the buffer. No checking is performed, the
                   caller must ensure that the buffer is big enough;
                   otherwise, some of the callers code or data may be
                   overwritten.

    Name            CloseClipboard()
    Parameters      AX = 1708H
    Return Values   AX == 0: Error occurred
                       <> 0: OK

    Name            ClipboardCompact()
    Parameters      AX = 1709H
                    SI:CX = Desired memory size in bytes.
    Return Values   DX:AX == Number of bytes of largest block of free memory.
                          == 0 if error or no memory
    Notes           The MS-DOS-based application is responsible for including
                    the size of any headers in the desired memory size.

    Name            GetDeviceCaps()
    Parameters      AX = 170AH
                    DX = GDI information index
    Return Values   AX == integer value of desired item
                       == 0 if error
    Notes           The implied hDC for this call will be for the display.

    Supported Clipboard Formats
    The following Windows clipboard formats are supported:
       CF_TEXT         = 1
       CF_BITMAP       = 2         ; See structures section
       CF_OEMTEXT      = 7
       CF_DSPTEXT      = 81h
       CF_DSPBITMAP    = 82h

    NOTE: Since the RegisterClipboardFormat() and EnumClipboardFormats()
          functions are not available at this time, the use of private
          clipboard formats is not supported.

    Structures
    These structures mimic the actual Windows structures with one major
    difference: instead of including a handle or pointer to other memory
    containing the actual data, the data follows the structure. The structure
    information now behaves like a header prefacing the data.
    Bitmap structure:
       bmType          DW      ?   ; Always 0
       bmWidth         DW      ?   ; Width of bitmap in pixels
       bmHeight        DW      ?   ; Height of bitmap in raster lines
       bmWidthBytes    DW      ?   ; Bytes/raster line
       bmPlanes        DB      ?   ; Number of color planes in the bitmap
       bmBitsPixel     DB      ?   ; Number of adj color bits to def pixel
       bmBits          DQ      ?   ; Points to byte following bmHigDim
       bmWidDim        DW      ?   ; Width of bitmap in 0.1 mm units
       bmHigDim        DW      ?   ; Height of bitmap in 0.1 mm units
       BitmapData      nBytes      ; The actual data


    Legal Disclaimer: Any views expressed by the sender of this message are
    not necessarily those of Application Solutions Ltd. Information in this
    e-mail may be confidential and is for the use of the intended recipient
    only, no mistake in transmission is intended to waive or compromise such
    privilege. Please advise the sender if you receive this e-mail by mistake.


#13085 From: cec@... (Dr. Charles E. Campbell)
Date: Tue Jan 11, 2000 2:56 pm
Subject: Re: Anchoring a syntax match at the start of the line
cec@...
Send Email Send Email
 
Thus saith Moore, Paul:
> Is there a way of "anchoring" a syntax item to the start of the line? I have
> a syntax file (Oracle SQL Plus) which contains a number of commands which
> are only valid at the start of a line. I guess I could use syntax matches
> ...

The following was the best I came up with.  It won't highlight the first
two lines of the test file.

  -- <test> -----------------------------------------------------------
EXECUTE
EDIT EXECUTE
  EXECUTE
  EDIT EXECUTE
  -- <sqlplus.vim> ----------------------------------------------------
syn clear
syn match   sqlplusStartCommand             "^\s*"     nextgroup=sqlplusCommand
syn keyword sqlplusCommand       contained  EXEC[UTE]
syn keyword sqlplusCommand       contained  ED[IT]     skipwhite
nextgroup=sqlplusFile
syn match   sqlplusFile          contained  "\S\+"
hi link sqlplusCommand Statement
hi link sqlplusFile  String
  ---------------------------------------------------------------------

Now, I could include a bunch of matches to duplicate the keyword listings,
but that doesn't seem like a really good idea.

Problem:  syn match ... "^\s*" ...

  is not considered to match to zero lengths by the syntax engine.

Regards,
Dr C

--
         Charles E Campbell, Jr, PhD            _   __   __
         Goddard Space Flight Center           / /_/\_\_/ /
         cec@...      /_/  \/_//_/
   PGP public key: http://www.erols.com/astronaut/pgp.html/

#13084 From: Vince Negri <vnegri@...>
Date: Tue Jan 11, 2000 2:27 pm
Subject: RE: How do I do this in DJGPP then?
vnegri@...
Send Email Send Email
 
Gordon Bennett.. just found out that you can't
call DOS services which use the segment registers
(e.g. ES) from DPMI directly. You have to:

1) Create some 16-bit code to do the call
2) allocate low DOS memory
3) Copy said code into the low DOS memory
4) Copy desired params into more DOS memory
5) Call 16-routine via DPMI services
6) retrieve result
7) Free lumps of DOS memory previously allocated.

Phew! No wonder no-one's bothered yet. Boxer doesn't
have this trouble because it's 16-bit...
Legal Disclaimer: Any views expressed by the sender of this message are
not necessarily those of Application Solutions Ltd. Information in this
e-mail may be confidential and is for the use of the intended recipient
only, no mistake in transmission is intended to waive or compromise such
privilege. Please advise the sender if you receive this e-mail by mistake.

#13083 From: Vince Negri <vnegri@...>
Date: Tue Jan 11, 2000 2:01 pm
Subject: How do I do this in DJGPP then?
vnegri@...
Send Email Send Email
 
Using the following two calls:

Name            SetClipboardData()
Parameters      AX = 1703H
                 DX = WinOldAp-Supported Clipboard format
                 ES:BX = Pointer to data
                 SI:CX = Size of data in bytes
Return Values   AX == 0: Error occurred
                    <> 0: OK.  Data copied into allocated memory.


Name            GetClipboardData()
Parameters      AX = 1705H
                 DX = WinOldAp-Supported Clipboard format
                 ES:BX = Pointer to data buffer to hold data
Return Values   AX == 0: Error occurred (or data in this format is not
                          in the clipboard)
                    <> 0: OK

Using that "union REGS" stuff..

How do I get/set the ES:BX values into/out of a char_u* ?
How do I set up the SI:CX value?


MTIA

--
Vince Negri (vnegri@...)
Application Solutions Ltd. Tel:+44(0)1273-476608 Fax:+44(0)1273-478888

Legal Disclaimer: Any views expressed by the sender of this message are
not necessarily those of Application Solutions Ltd. Information in this
e-mail may be confidential and is for the use of the intended recipient
only, no mistake in transmission is intended to waive or compromise such
privilege. Please advise the sender if you receive this e-mail by mistake.

#13082 From: Vince Negri <vnegri@...>
Date: Tue Jan 11, 2000 1:18 pm
Subject: RE: HOWTO: vim dos32 and windows clipboard
vnegri@...
Send Email Send Email
 
Klaus,

1) Please trim your quotes when replying! Thank you. :)

2)
> i don't know if it is of any usage (because it's from a Windows
> (MFC) program),
Not really, sorry. We already have code for accessing the clipboard
from Windows, in the GUI versions. I supplied the DOS calls
that would be needed for thsi to be added to the dos version. Right
now I don't have the spare time to actually bolt this stuff in,
which is why I sent it to the list in case someone was feeling
bored out there..

3)
> I tried that (_vimrc):
>        set guioptions-=m
>        set guioptions-=M
>        set guioptions-=T
> It speeds up a little bit, but not much.

Bzzt! ;) That should be "set guioptions+=M". Or (drastic) replace
menu.vim with an empty file. That said, I will concede that
the dos version still starts up faster.

4)
> If there are any plans to integrate clipboard support for dos32 - could i
> receive a notification?
I don't know about formal plans, but I'm sure if someone
produced a decent patch Bram would include it in 6.0.

--
Vince Negri (vnegri@...)
Application Solutions Ltd. Tel:+44(0)1273-476608 Fax:+44(0)1273-478888


Legal Disclaimer: Any views expressed by the sender of this message are
not necessarily those of Application Solutions Ltd. Information in this
e-mail may be confidential and is for the use of the intended recipient
only, no mistake in transmission is intended to waive or compromise such
privilege. Please advise the sender if you receive this e-mail by mistake.

#13081 From: Ralf Schandl <rks@...>
Date: Tue Jan 11, 2000 1:13 pm
Subject: OS/390
rks@...
Send Email Send Email
 
Hello!

Is there a port of VIM to OS/390?

Or is someone working on this or interested in it?


Mit freundlichen Gruessen / Kind regards

Ralf Schandl
--
Ralf Schandl                              schandl@...
IBM Deutschland Informationssysteme GmbH  Tel: +49-69-6645-3208
Lyoner Str. 13, 60528 Frankfurt           Fax: +49-69-6645-3224

#13080 From: Vince Negri <vnegri@...>
Date: Tue Jan 11, 2000 11:04 am
Subject: HOWTO: vim dos32 and windows clipboard
vnegri@...
Send Email Send Email
 
> From: Hast, Klaus [SMTP:khast@...]
> Vim dos32 with clipboard access would be a fine thing ... and would avoid
> > the need to use different editors for different needs.
>
If you're interested in doing this (or anyone else is),
here's the information:

For Windows 3.x in 386 enhanced mode, Windows for Workgroups, or
Win95 or later, Dos boxes support an INT 2fh interface to the clipboard.,
NOTE: The Wws functions RegisterClipboardFormat() and
       EnumClipboardFormats() are not supported.

Function Call Definitions
Name            IdentifyWinOldApVersion()
Parameters      AX = 1700H
Return Values   AX == 1700H: Clipboard functions not available
                    <> 1700H: AL = Major version number
                              AH = Minor version number

Name            OpenClipboard()
Parameters      AX = 1701H
Return Values   AX == 0: Clipboard already open
                    <> 0: Clipboard opened

Name            EmptyClipboard()
Parameters      AX = 1702H
Return Values   AX == 0: Error occurred
                    <> 0: OK, Clipboard emptied

Name            SetClipboardData()
Parameters      AX = 1703H
                 DX = WinOldAp-Supported Clipboard format
                 ES:BX = Pointer to data
                 SI:CX = Size of data in bytes
Return Values   AX == 0: Error occurred
                    <> 0: OK.  Data copied into allocated memory.
Note            The MS-DOS-based application should call the
                 ClipboardCompact() function prior to this to determine
                 if the data can be accommodated in memory.

Name            GetClipboardDataSize()
Parameters      AX = 1704H
                 DX = WinOldAp-Supported Clipboard format
Return Values   DX:AX == Size of the data in bytes, including any
                          headers.
                       == 0 If data in this format is not in the clipboard.

Name            GetClipboardData()
Parameters      AX = 1705H
                 DX = WinOldAp-Supported Clipboard format
                 ES:BX = Pointer to data buffer to hold data
Return Values   AX == 0: Error occurred (or data in this format is not
                          in the clipboard)
                    <> 0: OK
Note           This call should be preceded by a
                GetClipBoardDataSize() call to find out how much memory
                is required for the buffer. No checking is performed, the
                caller must ensure that the buffer is big enough;
                otherwise, some of the callers code or data may be
                overwritten.

Name            CloseClipboard()
Parameters      AX = 1708H
Return Values   AX == 0: Error occurred
                    <> 0: OK

Name            ClipboardCompact()
Parameters      AX = 1709H
                 SI:CX = Desired memory size in bytes.
Return Values   DX:AX == Number of bytes of largest block of free memory.
                       == 0 if error or no memory
Notes           The MS-DOS-based application is responsible for including
                 the size of any headers in the desired memory size.

Name            GetDeviceCaps()
Parameters      AX = 170AH
                 DX = GDI information index
Return Values   AX == integer value of desired item
                    == 0 if error
Notes           The implied hDC for this call will be for the display.

Supported Clipboard Formats
The following Windows clipboard formats are supported:
    CF_TEXT         = 1
    CF_BITMAP       = 2         ; See structures section
    CF_OEMTEXT      = 7
    CF_DSPTEXT      = 81h
    CF_DSPBITMAP    = 82h

NOTE: Since the RegisterClipboardFormat() and EnumClipboardFormats()
       functions are not available at this time, the use of private
       clipboard formats is not supported.

Structures
These structures mimic the actual Windows structures with one major
difference: instead of including a handle or pointer to other memory
containing the actual data, the data follows the structure. The structure
information now behaves like a header prefacing the data.
Bitmap structure:
    bmType          DW      ?   ; Always 0
    bmWidth         DW      ?   ; Width of bitmap in pixels
    bmHeight        DW      ?   ; Height of bitmap in raster lines
    bmWidthBytes    DW      ?   ; Bytes/raster line
    bmPlanes        DB      ?   ; Number of color planes in the bitmap
    bmBitsPixel     DB      ?   ; Number of adj color bits to def pixel
    bmBits          DQ      ?   ; Points to byte following bmHigDim
    bmWidDim        DW      ?   ; Width of bitmap in 0.1 mm units
    bmHigDim        DW      ?   ; Height of bitmap in 0.1 mm units
    BitmapData      nBytes      ; The actual data


Legal Disclaimer: Any views expressed by the sender of this message are
not necessarily those of Application Solutions Ltd. Information in this
e-mail may be confidential and is for the use of the intended recipient
only, no mistake in transmission is intended to waive or compromise such
privilege. Please advise the sender if you receive this e-mail by mistake.

#13079 From: Bram Moolenaar <Bram@...>
Date: Tue Jan 11, 2000 11:30 am
Subject: Re: Win32 GUI: New edit-with-Vim menu entry
Bram@...
Send Email Send Email
 
David Pascoe wrote:

> One thing that I struggle with and this also does is binary location.
>
> I keep local users up to date with a .zip file that people install in
> either c:\apps\vim or c:\program files\vim. If I have the _vimrc in
> that directory with the gvim.exe then all is fine. If I was to follow
> the suggestion and use c:\apps\vim\vim56a for the binary location I
> would need to update the registry for every release, and also update
> my path for every release.
>
> I like keeping the same location as people can just blow away the old
> revision or simply overwrite with a new .zip file and not need to
> change anything.
>
> Any suggestions ?

There are two ways to do it, both of which are supported by the install.exe:

1. Keep the vim.exe (and gvim.exe) where they are in the vim/vim<version-nr>/
    directory.  If you start Vim from a shortcut or file type association, you
    need to adjust that.  The install.exe takes care of the "Edit with Vim"
    entry.  For use in a console you need to adjust the $PATH setting.

    This is a good solution if you only use Vim from the "Edit with Vim" menu,
    or when you have more than one version of Vim on your machine.

2. Copy the executables to a location that is the same for all versions.  Then
    you need to set $VIM to the location of the runtime files (unless that's
    where the executables are).  That is a one-time setup.  The install.exe
    asks you if you want to copy the files to a directory in your path, which
    is what you would normally use here.

    This is a good solution for people like you, who have only one version of
    Vim and don't want to change the setup when installing a new version.

Perhaps there is a third solution that works well?

I have been considering putting the executables in $VIM instead of
$VIM/vim<version-nr>/.  The problem is that unpacking the .zip archive
overwrites any older version, which is mainly a problem for test versions (you
probably want to keep the previous version, in case the test version has some
problem).

I might consider changing this for Vim 6.0.  I have noticed quite a few people
are confused by the choices they have to make when installing Vim (especially
on Windows).  We need a version of Vim that is very easy to install and still
keep the possibility to set it up as you like.

--
hundred-and-one symptoms of being an internet addict:
104. When people ask about the Presidential Election you ask "Which country?"

--/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
   \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /

#13078 From: "Moore, Paul" <Paul.Moore@...>
Date: Tue Jan 11, 2000 11:18 am
Subject: Anchoring a syntax match at the start of the line
Paul.Moore@...
Send Email Send Email
 
Is there a way of "anchoring" a syntax item to the start of the line? I have
a syntax file (Oracle SQL Plus) which contains a number of commands which
are only valid at the start of a line. I guess I could use syntax matches

     syn match sqlplusCommand "^\s*EXEC\(UTE\)\="

but this is somewhat unattractive. I'd prefer to use keywords, both because
they are faster (there are a lot of commands) and because the commands have
optional tails, like Ex commands (the above regex should really be
"^\s*EXEC\(U\|UT\|UTE\)\=", which gets nasty as the length of the tail
increases). Also, matches are much harder to read and maintain than keyword
lists.

I thought of

     syn match sqlplusStartOfLine "^\s*\S\+" contains=sqlplusCommand
     syn keyword sqlplusCommand contained EXEC[UTE] ...

This works, but if a particular sqlplusCommand has a nextgroup, it doesn't
seem to work (is it because the nextgroup is not part of the containing
sqlplusStartOfLine match?) For example, with

     syn match sqlplusStartOfLine "^\s*\S\+" contains=sqlplusCommand
     syn keyword sqlplusCommand contained skipwhite nextgroup=sqlplusFile
ED[IT]
     syn match sqlplusFile "\S\+" contained

the line

     EDIT xxx

doesn't get the "xxx" highlighted at all.

I also tried

     syn match sqlplusStartOfLine "^" skipwhite nextgroup=sqlplusCommand
     syn keyword sqlplusCommand contained EXEC[UTE] ...

but this didn't work at all. It works if sqlplusStartOfLine matches a
nonempty string. Is this a bug? I'd love it if it was! (Bram?) If it's meant
to be like that, then so be it. (I can't understand the syntax code well
enough to suggest a patch, sorry...)

Has anyone got any other suggestions?

Thanks,
Paul.

#13077 From: Bram Moolenaar <Bram@...>
Date: Tue Jan 11, 2000 9:18 am
Subject: Re: concerning Scott B's here-doc support
Bram@...
Send Email Send Email
 
Charles Campbell wrote:

> There are at least two syntax files that I'd like have
> make use of Scott Bigham's new external submatches
> patch (sh.vim: here-documents, tex.vim: \verb).
> Any chance that it will be Officially Accepted?

They will be, in Vim 6.0...

--
hundred-and-one symptoms of being an internet addict:
100. The most exciting sporting events you noticed during summer 1996
     was Netscape vs. Microsoft.

--/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
   \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /

#13076 From: David Pascoe <David.Pascoe@...>
Date: Tue Jan 11, 2000 8:18 am
Subject: Re: Win32 GUI: New edit-with-Vim menu entry
David.Pascoe@...
Send Email Send Email
 
One thing that I struggle with and this also does is binary location.

I keep local users up to date with a .zip file that people install in
either c:\apps\vim or c:\program files\vim. If I have the _vimrc in
that directory with the gvim.exe then all is fine. If I was to follow
the suggestion and use c:\apps\vim\vim56a for the binary location I
would need to update the registry for every release, and also update
my path for every release.

I like keeping the same location as people can just blow away the old
revision or simply overwrite with a new .zip file and not need to
change anything.

Any suggestions ?

davidp.

On Mon, 10 Jan 2000, Bram Moolenaar wrote:

> Tianmiao Hu has made a shell extension DLL for Vim.  This solves the problems
> which the "Edit with Vim" menu entry caused for the Office toolbar.
> Since many people have complained about this, and the DLL is only 12 Kbyte, I
> would like to include this in Vim 5.6.  But it has to be tested first!

<snip>

#13075 From: Thomas Köhler <jean-luc@...>
Date: Tue Jan 11, 2000 12:10 am
Subject: Re: concerning Scott B's here-doc support
jean-luc@...
Send Email Send Email
 
On Tue, Jan 11, 2000 at 12:44:38AM +0100,
Scott Bigham <dsb@...> wrote:
>
> On Mon, 10 Jan 100, Dr. Charles E. Campbell wrote:
>                ^^^
>
> Oh dear.  Y2K glitch in Pine, I suppose. :-/

Well, or it's just a long time ago that Charles E. Campbell wrote his
message :-)

> > There are at least two syntax files that I'd like have
> > make use of Scott Bigham's new external submatches
> > patch (sh.vim: here-documents, tex.vim: \verb).
> > Any chance that it will be Officially Accepted?
>
> In the interim, you should be able to wrap the appropriate lines in
> ':if has("extern_submatch")'.  In fact, you may want to do that anyway,
> to accommodate installations that #undef EXTERN_SUBMATCH.

Good point - and an important one to remember!

CU,
Thomas

--
  Thomas Köhler Email:   jean-luc@...   | LCARS - Linux for
      <><        WWW:  http://home.pages.de/~jeanluc/ | Computers on All
                 IRC:             jeanluc             | Real Starships
    PGP public key: http://www.mayn.de/users/jean-luc/PGP-Public.asc

#13074 From: Scott Bigham <dsb@...>
Date: Mon Jan 10, 2000 11:43 pm
Subject: Re: concerning Scott B's here-doc support
dsb@...
Send Email Send Email
 
On Mon, 10 Jan 100, Dr. Charles E. Campbell wrote:
                ^^^

Oh dear.  Y2K glitch in Pine, I suppose. :-/

> There are at least two syntax files that I'd like have
> make use of Scott Bigham's new external submatches
> patch (sh.vim: here-documents, tex.vim: \verb).
> Any chance that it will be Officially Accepted?

In the interim, you should be able to wrap the appropriate lines in
':if has("extern_submatch")'.  In fact, you may want to do that anyway,
to accommodate installations that #undef EXTERN_SUBMATCH.

						 -sbigham

#13073 From: Bram Moolenaar <Bram@...>
Date: Mon Jan 10, 2000 9:16 pm
Subject: Patch 5.6a.19
Bram@...
Send Email Send Email
 
Patch 5.6a.019
Problem:    When trying to recover through NFS, which uses a large block size,
	     Vim might think the swap file is empty, because mf_blocknr_max is
	     zero.  (Scott McDermott)
Solution:   When computing the number of blocks of the file in mf_open(),
	     round up instead of down.
Files:     src/memfile.c


*** ../vim-5.6a.18/src/memfile.c Mon Dec 20 09:59:15 1999
--- src/memfile.c Mon Jan 10 21:22:11 2000
***************
*** 185,191 ****
  		       || (size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0)
  	 mfp->mf_blocknr_max = 0; /* no file or empty file */
       else
!  mfp->mf_blocknr_max = (blocknr_t)(size / mfp->mf_page_size);
       mfp->mf_blocknr_min = -1;
       mfp->mf_neg_count = 0;
       mfp->mf_infile_count = mfp->mf_blocknr_max;
--- 185,192 ----
  		       || (size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0)
  	 mfp->mf_blocknr_max = 0; /* no file or empty file */
       else
!  mfp->mf_blocknr_max = (blocknr_t)((size + mfp->mf_page_size - 1)
! 							 / mfp->mf_page_size);
       mfp->mf_blocknr_min = -1;
       mfp->mf_neg_count = 0;
       mfp->mf_infile_count = mfp->mf_blocknr_max;
*** ../vim-5.6a.18/src/version.c Sat Jan  8 23:13:04 2000
--- src/version.c Mon Jan 10 21:26:18 2000
***************
*** 420,421 ****
--- 420,423 ----
   {   /* Add new patch number below this line */
+ /**/
+     19,
   /**/

--
hundred-and-one symptoms of being an internet addict:
97. Your mother tells you to remember something, and you look for
     a File/Save command.

--/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
   \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /

#13072 From: Johannes Zellner <johannes@...>
Date: Mon Jan 10, 2000 8:29 pm
Subject: Re: concerning Scott B's here-doc support
johannes@...
Send Email Send Email
 
On Mon, 10 Jan 100, Dr. Charles E. Campbell wrote:

> There are at least two syntax files that I'd like have
> make use of Scott Bigham's new external submatches
> patch (sh.vim: here-documents, tex.vim: \verb).
> Any chance that it will be Officially Accepted?
>
> Hoping so,

yes, please. hoping also ...

--
    Johannes

#13071 From: cec@... (Dr. Charles E. Campbell)
Date: Mon Jan 10, 2000 8:06 pm
Subject: concerning Scott B's here-doc support
cec@...
Send Email Send Email
 
-----BEGIN PGP SIGNED MESSAGE-----

Hello!

There are at least two syntax files that I'd like have
make use of Scott Bigham's new external submatches
patch (sh.vim: here-documents, tex.vim: \verb).
Any chance that it will be Officially Accepted?

Hoping so,
Dr C

- --
         Charles E Campbell, Jr, PhD            _   __   __
         Goddard Space Flight Center           / /_/\_\_/ /
         cec@...      /_/  \/_//_/
   PGP public key: http://www.erols.com/astronaut/pgp.html/

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBOHo7qdgdtXCdbCHhAQE59QP/TzIY3BMSdUPsdsUvNkgGepHxLHT0Xyc6
NYmeHfuQpVkhB7UOe3WD7lBb6MS7nM088WhDUyFoeUMzc38l5FubZ4bAFSqYlnRK
/lLMckClH4ol8gl+eMC5wfLegIA5kQxLDnXDHKsIUK44G9wXr7f/sqmhEvl1v06P
ACcBQ/z7e8I=
=yY/h
-----END PGP SIGNATURE-----

#13070 From: Bram Moolenaar <Bram@...>
Date: Mon Jan 10, 2000 5:53 pm
Subject: Win32 GUI: New edit-with-Vim menu entry
Bram@...
Send Email Send Email
 
Tianmiao Hu has made a shell extension DLL for Vim.  This solves the problems
which the "Edit with Vim" menu entry caused for the Office toolbar.
Since many people have complained about this, and the DLL is only 12 Kbyte, I
would like to include this in Vim 5.6.  But it has to be tested first!

It appears to work great for me.  But I'm not sure if it works on all
variations of MS Windows.  Let me know if this needs to be improved somehow.

The zip file below contains these files:
	 gvimext.dll the new DLL
	 install.exe the new install program for Win32 Gvim
	 uninstal.exe the new uninstall program
	 gvimext/* sources for gvimext.dll
	 diff  patch for src/dosinst.c and src/uninstal.c

Don't use the directions in gvimext/readme.txt, but use the install.exe and
uninstal.exe programs.  Install.exe will setup the right registry entries.
There must be a "gvim.exe" in the current directory for install to work.  This
should work:

	 cd <path>/vim/vim56a
	 unzip <path>/gvimext.zip
	 copy <path>/gvim.exe gvim.exe
	 install

You probably want to skip the parts in install.exe that change your vimrc file
and set $VIM.

I made a few changes to gvimext.cpp.  If something is wrong, don't immediately
blame Tianmiao!  (Tianmiao, let me know if you don't like some of my changes).

One specific item to watch out for: I have assumed that when the system
reports it is Windows NT the gvimext.dll needs to be moved to
$WINVER/system32/ and for others to $WINVER/system/.  Is that correct?  Does
this work on Windows 2000?

I'm not sure if this is correct: The registry entry
     HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
is given the default value "gvim".  Don't know why.

I added an extra entry in the registry that tells the gvimext.dll where
gvim.exe can be found.  This way it's not required for gvim.exe to be in the
search path.

- Bram

begin 644 gvimext.zip
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
M]<B!LMX\<E9N13>)&UDJE=-=(<%L6T\OP-V];287O(I!(J#Q@...%7
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
M&\.%B\D(`%&B\Y&S4-@A2Z45M`O%@...'60*A+JGTEN"D7\-9*'530*DFI
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
M:&[S^F:N:K4E:=@MZUV*#$,T@...#)5?$>*()0=)<TXXSB,"@KI4+T@J.(9
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
M\@[]7E\9?52*>I6$@8>D<?,;FE.:L^)I/\:#WS8/@...!82%Q$8D+OX,7
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
MJ-^"*QOY["<X=6T6%,C)Q6@6?"7TA6X-4@..."N)L40:4]&0#V8,BE6A&@
ML3M%I6ZFG+M."@,'A^H<'MRI@">Q$?L!+'O$YL&2D2CI!4J\U>[53Z"'RYQU
MTVW+L@V&$>6.;K#$H+5`AXGGWHS86()0].PF'@E3<\7*,]WA*#N%9!!IOT'\
M<[:5@&`\^6`7(]6RO7$\0<X79@]A3-LD!QM#W1D\]BG.)T?2]6OH,,O$PF:Y
M$^;$%0IG]!A&ES(3:E+.'1^FBL6EG/O7N>.GV9$2!9>)*B&4>YDYUT9[44T5
M2X=AM,?"9`OO!7`,_>G%;J;6E_<7'[J-O^K78F]!F6D[ZD5+7%CZ0ENOUCJA
M@R@TL9@5:&MA85`Z]8_U6J-WI#EA_J\,^/+IS_KG?K59Z7;KW7ZGW>YI6E+3
M_"$;C30-P:\W3/S]G1:18A]':LK+5]$TPQV/L:)>SYT0,]TI)EC_QH]CG<%=
M/X5A9"5.<7,`^4F8XD8W;OV1CE#^6@N0G'O^O*9K&C[N->D2R!O`RFU]N^FG
M3I`/MC,0BX=VA_4*-]O52K-_5JE^:K3JFM9U+3[3/:9I9[;AN3X^:MJ5[9CN
MS->TZM3#QH9?,L^W74?3+L+%-(TVC#W_6@B+K4P?.[ANH]WJ=S^U.[TPHXM'
MJ9)Z%&;TTT/N('R=G*$HMA<)0G'!S>W*LSE;WG2?$I&98/[6N%P;+QM>KXFB
M:K/;J&G:UT*N7J_GC_+I2JU43.=RYF&Z7,W5TZI:5O/%TOOWM7+YVY90IGK0
MI7"$^CUGCG#!)C'61?/SY-`:SKGG&EWFW3'O,+\MQR);_D:!-*4W])AN8EB>
MN2;#@3BQ,M$]CF[@FZ<]/UG9/:HJ.ZHS]/`GS-@1!NSW%'B6*;^SEJ81XK85
MG^B$%YGEAU)Z)<!P1&6";<0=,S>I\W1EGAG#+U-25.J/"_._7IG6%&HMA1J+
M:BVD#^OS!A7^PV5[;>=0*J>*Y:,%$R[EU%0I7YK7]9C_X',VGC?AD/4A;$D"
MCZ`MJH(18"E@0>&F!@LMR0R=^K%PKLFX;I!+;.ZSD942T['@\^$4R1!#!Q+,
MK>/.)#7"*<B2+-NQT9%F1G)DL8/@9G$@YYYA/,,2K0FI6&`SD!H`QDHFF)05
M5[G_8*<U0*F=N[A"QQ*-#JE%GZFY"X=(R@%__PW)Q2MD30(.?W,HI7J2G<EU
M%0D3.<>(`$</+PAKS2%)J[?`]X.HP=#$L-GSLU*GPSRZ6JX=8(LM^#NS5N>,
MT8)]<M@...,*FEK*>&,D-8_-^G9F/&_5%5SV?>H&A$":'Z([0$O,^&YWF
M,1*%O*X/=-L)$)+K#[3F0&M.M'*%Y1.ME;'AD5;Q)'=XDC_:?*1UF$\5RE$.
MZ3$^]1R(^\@F4"'8,]!,NN//F)<@-^:(NG)W.IDP+R[??U&OQ:>WG]\*<WR3
M!@...!NC*K&\19T;V"DB'5YD,3[NR_7B1W92(7'2((;Z/9(G"(M<$+[]NA,
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
M%R`0O2ID2@7DTPQI4[HR8AU)\V7`_[0@...(5(/CC!-WT1&ZSJ6:AT%
M2N\6E'!A\(H"&'8M7?C\(\P)9V;PA#X9[A7F&I/0S6W_EO+'^=$S3(!"WK.X
M"?\>W'R$FZ?R&6T0KYZ2B'7BH+U0TB*/5CR$4XHCBKBY_7(98PF%Y8Q)9B*K
M(%NM"K&L:XU."F@=7%/V+B`'MY7]B\?^+2+Y3EMUG,M)\7OT\21$^$).R&=L
MFW`44>^3\F8O(K5QT'TEH-/!-2]JJ<#_I`),2[53`5L2"89%E"^HM/'H9^&U
M+`LMS<\R*>;&;K@6U[*J]G0%7<#,DR=/`G%]CI^*:RA"2QU"%P7'+X[.7BS.
MSLZF),MDKO^ETOC#XA7_,![]%U!+`P04````"`"VD"HH-?\EZ^T```";`0``
M$@`5`&=V:6UE>'0O<F5S;W5R8V4N:%54"0`#:!%Z.&@1>CA5>`0`Z`,``'7.
MT6J#,!0&X'O!=SBP^ZJP%W`F%S)-BM&R7@6K)R7#)4.CVRA]]V6R,5K:W!SX
M_^^$$T6G$^.2T"UEA+(LI^)\#H,H@E)WHYVL<D!PP<&^XPC"S;VV<$2#8^NP
M!VVZ8>X1E!YPLZXUDX\/7W!<]!M^NLW8_<1AL);,)]"C:N?!P=(.,TZ@[`@&
M/\`>7K%ST^K"X$$K[R#=BKHA.9<YV_%G2M;"7#0530EGQ5Z*??G$"^&)[[5!
MD-Y(1E]J;P1OJHS*75HT%'Y?$B>W<,;+,F7DTL)C'-_CK*YX<<43SV]I?R2]
M_OKO$C2]5O_S&U!+`P04````"`"VD"HH]0,%:D````!"````$@`5`&=V:6UE
M>'0O=6YI;G-T+F)A=%54"0`#:!%Z.*`1>CA5>`0`Z`,``"LJS4O)R3$VTDNM
M2%4H3BTI+4@LR-3QS"LN2<S)\<C,2PM.32[)S,]3<$E-2RS-*0G-RX3(*1@:
M62BH&O)R`0!02P$"%@,4````"`"UD2HH80S\NYD.````,@``"P`-````````
M````I($`````9W9I;65X="YD;&Q55`4``T43>CA5>```4$L!`A8#%`````@`
MI9$J*&B$9D,3;````-@```L`#0```````````*2!UPX``&EN<W1A;&PN97AE
M550%``,F$WHX57@``%!+`0(6`Q0````(`*B1*BC_N3*Z%S\```!Z```,``T`
M``````````"D@2A[``!U;FEN<W1A;"YE>&555`4``RL3>CA5>```4$L!`A8#
M%`````@`5Y0J*+#6\6M_"```?Q\```0`#0```````0```*2!?KH``&1I9F95
M5`4``S88>CA5>```4$L!`A8#%`````@`MI`J*-88DF,2`0``0`(``!,`#0``
M`````0```*2!-,,``&=V:6UE>'0O1W9I;45X="YR96=55`4``V@1>CA5>```
M4$L!`A8#%`````@`MI`J*!%)O;T!`0``P`$``!``#0```````0```*2!C,0`
M`&=V:6UE>'0O34%+149)3$555`4``V@1>CA5>```4$L!`A8#%`````@`MI`J
M*!=&M^M5#P``YB\``!,`#0```````0```*2!T,4``&=V:6UE>'0O9W9I;65X
M="YC<'!55`4``V@1>CA5>```4$L!`A8#%`````@`MI`J*/H#D.J8````P```
M`!,`#0```````0```*2!:]4``&=V:6UE>'0O9W9I;65X="YD96955`4``V@1
M>CA5>```4$L!`A8#%`````@`MI`J*/74=\A5!P```!0``!$`#0```````0``
M`*2!2=8``&=V:6UE>'0O9W9I;65X="YH550%``-H$7HX57@``%!+`0(6`Q0`
M```(`+:0*BC:!5UA)P$``/`!```3``T```````$```"D@>+=``!G=FEM97AT
M+V=V:6UE>'0N:6YF550%``-H$7HX57@``%!+`0(6`Q0````(`+:0*B@QZMDN
M1P,``,L*```2``T```````$```"D@4_?``!G=FEM97AT+V=V:6UE>'0N<F-5
M5`4``V@1>CA5>```4$L!`A8#%`````@`MI`J**#O!KY!"@``MQ<``!(`#0``
M`````0```*2!V^(``&=V:6UE>'0O<F5A9&UE+G1X=%54!0`#:!%Z.%5X``!0
M2P$"%@,4````"`"VD"HH-?\EZ^T```";`0``$@`-```````!````I(%A[0``
M9W9I;65X="]R97-O=7)C92YH550%``-H$7HX57@``%!+`0(6`Q0````(`+:0
M*BCU`P5J0````$(````2``T```````$```"D@9/N``!G=FEM97AT+W5N:6YS
H="YB87155`4``V@1>CA5>```4$L%!@`````.``X`%00``!CO`````'5N
`
end

--
hundred-and-one symptoms of being an internet addict:
93. New mail alarm on your palmtop annoys other churchgoers.

--/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
   \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /

#13069 From: Brent Verner <brent@...>
Date: Mon Jan 10, 2000 11:37 am
Subject: Re: starting in insert mode. how?
brent@...
Send Email Send Email
 
on Sun, Jan 09, 2000 at 08:25:20PM +0100, Thomas Köhler typed aloud:
| On Sun, Jan 09, 2000 at 05:28:35PM +0100,
| Brent Verner <brent@...> wrote:
| >
| > Can anyone help me here? How can I start vim in insert mode using
| > vim -c '<mystery>' -- I do not want :insertmode behavior. I've
| > spent the past two hours going in circles here, please help.
|
| I'd expect
| vim -c 'au VimEnter * startinsert' filename
| to do what you want, but for some strange reaosn, it doesn't. It waits
| for some action to be taken before it goes into insert mode. Strange.
|
| I'm running vim-5.6a with included patches 1-18.

yeah, that's the same result i was having, but i found a workaround.
just make .vimrc-mutt with ':startinsert' in it and use
vim -s ~/.vimrc-mutt. does exactly what I need (er, want). FWIW, this
behavior was observed in 5.5.42, 5.5.62, 5.5.0 and 5.5.15.

thanks.
	 brent

#13068 From: Vince Negri <vnegri@...>
Date: Mon Jan 10, 2000 8:45 am
Subject: RE: Question vim dos-w32 5.5 - clipboard, win95
vnegri@...
Send Email Send Email
 
> It works fine here (WinNT).  I select in visual mode, hit <C-Insert>,
> which is copy for NT and OS/2, then go to an open Winword file and hit
> <S-Insert>, which is paste for NT and OS/2, and the clipboard is
> pasted.

What works? Vim or EDIT? I had just tried both the win95 EDIT
and the NT EDIT, under NT - neither cut to the windows
clipboard.


Legal Disclaimer: Any views expressed by the sender of this message are
not necessarily those of Application Solutions Ltd. Information in this
e-mail may be confidential and is for the use of the intended recipient
only, no mistake in transmission is intended to waive or compromise such
privilege. Please advise the sender if you receive this e-mail by mistake.

#13067 From: Chih-Tsun Huang <cthuang@...>
Date: Mon Jan 10, 2000 8:30 am
Subject: Re: starting in insert mode. how?
cthuang@...
Send Email Send Email
 
This works fine for me, with the same version of Vim.

* A short time ago, at a terminal far, far away, Thomas Köhler said:
> I'd expect
> vim -c 'au VimEnter * startinsert' filename
> to do what you want, but for some strange reaosn, it doesn't. It waits
> for some action to be taken before it goes into insert mode. Strange.
>
> I'm running vim-5.6a with included patches 1-18.

--
Chih-Tsun Huang

#13066 From: Thomas Köhler <jean-luc@...>
Date: Sun Jan 9, 2000 7:25 pm
Subject: Re: starting in insert mode. how?
jean-luc@...
Send Email Send Email
 
On Sun, Jan 09, 2000 at 05:28:35PM +0100,
Brent Verner <brent@...> wrote:
>
> Can anyone help me here? How can I start vim in insert mode using
> vim -c '<mystery>' -- I do not want :insertmode behavior. I've
> spent the past two hours going in circles here, please help.

I'd expect
vim -c 'au VimEnter * startinsert' filename
to do what you want, but for some strange reaosn, it doesn't. It waits
for some action to be taken before it goes into insert mode. Strange.

I'm running vim-5.6a with included patches 1-18.

> thanks.
>  brent

CU,
Thomas

--
  Thomas Köhler Email:   jean-luc@...   | LCARS - Linux for
      <><        WWW:  http://home.pages.de/~jeanluc/ | Computers on All
                 IRC:             jeanluc             | Real Starships
    PGP public key: http://www.mayn.de/users/jean-luc/PGP-Public.asc

#13065 From: Johannes Zellner <johannes@...>
Date: Sun Jan 9, 2000 11:22 pm
Subject: Re: Converting the whole buffer to a simple string
johannes@...
Send Email Send Email
 
On Sun, 9 Jan 2000, Dany St-Amant wrote:

> Hi,
>
>  In order to support Vim as an External Editor for CodeWaršior on the MacOS,
> I need to have the whole buffer as a simple string (probably with the MacOS
> end-of-line character). Is there any function doing this in the current
> code? I tried to follow the "clip_..." stuff but got lost.

:%join!

does this help?

--
    Johannes

#13064 From: Dany St-Amant <dany.stamant@...>
Date: Sun Jan 9, 2000 6:49 pm
Subject: Converting the whole buffer to a simple string
dany.stamant@...
Send Email Send Email
 
Hi,

  In order to support Vim as an External Editor for CodeWaršior on the MacOS,
I need to have the whole buffer as a simple string (probably with the MacOS
end-of-line character). Is there any function doing this in the current
code? I tried to follow the "clip_..." stuff but got lost.

  Thanks.

#13063 From: Michal Vitecek <M.Vitecek@...>
Date: Sun Jan 9, 2000 4:36 pm
Subject: Re: How do I start vim in insert mode?
M.Vitecek@...
Send Email Send Email
 
Michal Vitecek <fuf> wrote:
>Brent Verner <brent@...> wrote:
>>How can I start vim in insert mode? I do not want 'set insertmode'
>>behavior, I just want to know how/if I can have vim start in insert
>>mode by saying "vim -c '???'".
>>
>>thanks.
>> brent
>
> vim -c 'set insertmode'

  ahh, perhaps i misunderstood you.

  vim -c 'startinsert' should do what you want.

  my apologies if i understood you wrongly first time.
--
			 fuf


------------------------------ na IRC -------------------------------------
  BillGates [bgates@...] has joined #LINUX
  ...
  mode/#linux [+b BillGates!*@*] by DoDad
  BillGates was kicked off #linux by DoDad (banned: We see enough of Bill
           Gates already.)

#13062 From: Michal Vitecek <M.Vitecek@...>
Date: Sun Jan 9, 2000 4:32 pm
Subject: Re: How do I start vim in insert mode?
M.Vitecek@...
Send Email Send Email
 
Brent Verner <brent@...> wrote:
>How can I start vim in insert mode? I do not want 'set insertmode'
>behavior, I just want to know how/if I can have vim start in insert
>mode by saying "vim -c '???'".
>
>thanks.
> brent

  vim -c 'set insertmode'

--
			 fuf


------------------------------ na IRC -------------------------------------
  BillGates [bgates@...] has joined #LINUX
  ...
  mode/#linux [+b BillGates!*@*] by DoDad
  BillGates was kicked off #linux by DoDad (banned: We see enough of Bill
           Gates already.)

#13061 From: Brent Verner <brent@...>
Date: Sun Jan 9, 2000 6:38 am
Subject: How do I start vim in insert mode?
brent@...
Send Email Send Email
 
How can I start vim in insert mode? I do not want 'set insertmode'
behavior, I just want to know how/if I can have vim start in insert
mode by saying "vim -c '???'".

thanks.
	 brent

#13060 From: Brent Verner <brent@...>
Date: Sun Jan 9, 2000 6:13 am
Subject: starting in insert mode. how?
brent@...
Send Email Send Email
 
Can anyone help me here? How can I start vim in insert mode using
vim -c '<mystery>' -- I do not want :insertmode behavior. I've
spent the past two hours going in circles here, please help.

thanks.
	 brent

#13059 From: Johannes Zellner <johannes@...>
Date: Sun Jan 9, 2000 12:17 pm
Subject: Re: RFC (take 2): External submatches (aka. the here-document trick)
johannes@...
Send Email Send Email
 
On Sat, 8 Jan 2000, Scott Bigham wrote:

[...]
> Here is the latest version of my external submatches patch.  Since it's
> been a while, I'll give you the teaser again:
[...]
cool!

[...]
> The patch is against a virgin 5.6a; a quick scan through the official
> patches since then didn't turn up any obvious potential conflicts, but I
> can't be sure.  Have at it, and let me know if I've broken anything.
[...]
The patch works fine with a 5.6a including patches 1-18
(with some `hunks').

--
    Johannes

#13058 From: Scott Bigham <dsb@...>
Date: Sun Jan 9, 2000 1:28 am
Subject: RFC (take 2): External submatches (aka. the here-document trick)
dsb@...
Send Email Send Email
 
[Well, that took longer than I thought.  Catching and storing the
  external submatches was easy enough, but shepherding them safely
  through all the syntax state stacks without getting them prematurely
  deleted was tricky.  Frankly, I'm surprised the previous patch worked
  at all.  I think I've got it this time, though; passed all my tests so
  far with flying colors.]

Here is the latest version of my external submatches patch.  Since it's
been a while, I'll give you the teaser again:

	 Sometimes the start and end patterns of a region need to share a
	 common sub-expression.  A common example is the "here" document in
	 Perl and many Unix shells.  This effect can be achieved with the |/\z|
	 special regular expression atom, which marks a sub-expression as
	 "external", in the sense that it can be referenced from outside the
	 pattern in which it is defined.  The here-document example, for
	 instance, can be done like this:
    :syn region hereDoc start="<<\z\(\I\i*\)" end="^\z\1$"

	 As can be seen here, the \z atom actually does double duty.  In the
	 start pattern, it marks the "\(\I\i*\)" sub-expression as external;
	 in the end pattern, it changes the \1 back-reference into an external
	 reference referring to the first external sub-expression in the start
	 pattern.  External references can also be used in skip patterns:
    :syn region foo start="start \(\I\i*\)" skip="not end \z\1" end="end \z\1"

The patch is against a virgin 5.6a; a quick scan through the official
patches since then didn't turn up any obvious potential conflicts, but I
can't be sure.  Have at it, and let me know if I've broken anything.

						 -sbigham
--- ./src/eval.c.orig Wed Dec  8 06:04:32 1999
+++ ./src/eval.c Mon Dec 20 21:32:14 1999
@@ -2906,6 +2906,9 @@
  #ifdef EX_EXTRA
 	 "ex_extra",
  #endif
+#ifdef EXTERN_SUBMATCH
+ "extern_submatch",
+#endif
  #ifdef EXTRA_SEARCH
 	 "extra_search",
  #endif
--- ./src/regexp.c.orig Sat May 15 09:48:51 1999
+++ ./src/regexp.c Sat Jan  8 19:36:54 2000
@@ -194,6 +194,12 @@
  #define MCLOSE  70 /* -79  no Analogous to MOPEN. */
  #define BACKREF  80 /* -89  node Match same string again \1-\9 */
  #define BRACE_COMPLEX 90 /* -99  node Match nodes between m & n times */
+#ifdef EXTERN_SUBMATCH
+#define ZOPEN        100 /* -109 no mark this point in input as start
+ 			 * of \z\( subexpr. */
+#define ZCLOSE        110 /* -119 no Analogous to ZOPEN. */
+#define ZREF        120 /* -129 node Match external submatch \z\1-\z\9 */
+#endif

  #define Magic(x)    ((x) | ('\\' << 8))

@@ -224,6 +230,7 @@
   *  node.
   *
   * MOPEN,MCLOSE ...are numbered at compile time.
+ * ZOPEN,ZCLOSE ...ditto
   */

  /*
@@ -254,6 +261,11 @@

  #define MAX_LIMIT 32767

+#ifdef EXTERN_SUBMATCH
+/* This has got to live somewhere; here is as good a place as any... */
+static char_u e_toomzbra[] = "Too many \\z\\(";
+#endif
+
  static int re_ismult __ARGS((int));
  static int cstrncmp __ARGS((char_u *s1, char_u *s2, int n));
  static char_u *cstrchr __ARGS((char_u *, int));
@@ -494,6 +506,12 @@
  static char_u *regparse;  /* Input-scan pointer. */
  static int num_complex_braces; /* Complex \{...} count */
  static int regnpar; /* () count. */
+#ifdef EXTERN_SUBMATCH
+static int regnzpar; /* \z() count. */
+static int re_has_z; /* \z atom detected */
+int  re_allow_extmatch = 0; /* 1 to allow \z\(...\)
+ 				   2 to allow \z\1 et al. */
+#endif
  static char_u *regcode; /* Code-emit pointer, or JUST_CALC_SIZE */
  static long regsize; /* Code size. */
  static char_u **regendp; /* Pointer to endp array */
@@ -509,7 +527,11 @@
   * META contains all characters that may be magic, except '^' and '$'.
   */

+#ifdef EXTERN_SUBMATCH
+static char_u META[] = ".[()|=+*<>iIkKfFpPsSdDxXoOwWhHaAlLuUz~123456789{";
+#else
  static char_u META[] = ".[()|=+*<>iIkKfFpPsSdDxXoOwWhHaAlLuU~123456789{";
+#endif

  /*
   * Forward declarations for vim_regcomp()'s friends.
@@ -601,6 +623,9 @@
      initchr((char_u *)expr);
      num_complex_braces = 0;
      regnpar = 1;
+#ifdef EXTERN_SUBMATCH
+    regnzpar = 1;
+#endif
      regsize = 0L;
      regcode = JUST_CALC_SIZE;
      regendp = NULL;
@@ -626,6 +651,10 @@
      initchr((char_u *)expr);
      num_complex_braces = 0;
      regnpar = 1;
+#ifdef EXTERN_SUBMATCH
+    regnzpar = 1;
+    re_has_z = 0;
+#endif
      regcode = r->program;
      regendp = r->endp;
      regc(MAGIC);
@@ -634,6 +663,10 @@
 	 vim_free(r);
 	 return NULL;
      }
+#ifdef EXTERN_SUBMATCH
+    /* Remember whether this pattern has any \z specials in it. */
+    r->reghasz = re_has_z;
+#endif

      /* Dig out information for optimizations. */
      r->regstart = '\0';  /* Worst-case defaults. */
@@ -719,11 +752,27 @@
      char_u *br;
      char_u *ender;
      int  parno = 0;
+#ifdef EXTERN_SUBMATCH
+    int  zparno = 0;
+#endif
      int  flags;

      *flagp = HASWIDTH;  /* Tentatively. */

      /* Make an MOPEN node, if parenthesized. */
+#ifdef EXTERN_SUBMATCH
+    /* Or maybe a ZOPEN node... */
+    if (paren == 2)
+    {
+ if (regnzpar >= NSUBEXP)
+     EMSG_RET_NULL(e_toomzbra);
+ zparno = regnzpar;
+ regnzpar++;
+ ret = regnode(ZOPEN + zparno);
+ /* Something here about storing this somehow... */
+    }
+    else
+#endif
      if (paren)
      {
 	 if (regnpar >= NSUBEXP)
@@ -761,7 +810,22 @@
      }

      /* Make a closing node, and hook it on the end. */
+#ifdef EXTERN_SUBMATCH
+    switch (paren)
+    {
+ case 1:
+     ender = regnode(MCLOSE + parno);
+     break;
+ case 2:
+     ender = regnode(ZCLOSE + zparno);
+     break;
+ default:
+     ender = regnode(END);
+     break;
+    }
+#else
      ender = regnode((paren) ? MCLOSE + parno : END);
+#endif
      regtail(ret, ender);

      /* Hook the tails of the branches to the closing node. */
@@ -770,7 +834,11 @@

      /* Check for proper termination. */
      if (paren && getchr() != Magic(')'))
+#ifdef EXTERN_SUBMATCH
+ EMSG_RET_NULL((paren == 2) ? e_toomzbra : e_toombra)
+#else
 	 EMSG_RET_NULL(e_toombra)
+#endif
      else if (!paren && peekchr() != '\0')
      {
 	 if (PeekChr() == Magic(')'))
@@ -783,7 +851,11 @@
       * Here we set the flag allowing back references to this set of
       * parentheses.
       */
+#ifdef EXTERN_SUBMATCH
+    if (paren == 1 && regendp)
+#else
      if (paren && regendp)
+#endif
 	 regendp[parno] = ender; /* have seen the close paren */
      return ret;
  }
@@ -1145,6 +1217,37 @@
 		 EMSG_RET_NULL("Illegal back reference");
 	 }
 	 break;
+#ifdef EXTERN_SUBMATCH
+      case Magic('z'):
+ {
+     int refnum;
+
+     if (re_allow_extmatch == 0)
+  EMSG_RET_NULL("\\z not allowed here");
+     refnum = getchr();
+     if (refnum == Magic('('))
+     {
+  if (re_allow_extmatch != 1)
+ 	    EMSG_RET_NULL("\\z\\( not allowed here");
+  ret = reg(2, &flags);
+  if (ret == NULL)
+ 	    return NULL;
+  *flagp |= flags & (HASWIDTH | SPSTART);
+  re_has_z = 1;
+     }
+     else if (refnum >= Magic('1') || refnum > Magic('9'))
+     {
+  if (re_allow_extmatch != 2)
+ 	    EMSG_RET_NULL("\\z\\1 et al. not allowed here");
+  refnum -= Magic('0');
+  ret = regnode(ZREF + refnum);
+  re_has_z = 2;
+     }
+     else
+  EMSG_RET_NULL("unattached \\z");
+ }
+ break;
+#endif
        case Magic('['):
 	 {
 	     char_u *p;
@@ -1659,6 +1762,14 @@
  static char_u **regstartp;  /* Pointer to startp array. */
  static int   need_clear_subexpr; /* *regstartp end *regendp still need
 					    to be cleared */
+#ifdef EXTERN_SUBMATCH
+vim_regexp_extmatch     *re_extmatch_in = 0; /* Strings that match
+ 					   \z\1...\z\9 */
+vim_regexp_extmatch     *re_extmatch_out = 0; /* Place to store \z\(...\)
+ 					   matches */
+static char_u  *regstartzp[NSUBEXP]; /* Workspace to mark beginning */
+static char_u  *regendzp[NSUBEXP]; /*   and end of \z\(...\) matches */
+#endif

  static int regtry __ARGS((vim_regexp *, char_u *));
  static void clear_subexpr __ARGS((void));
@@ -1744,6 +1855,60 @@
      return 0;
  }

+#ifdef EXTERN_SUBMATCH
+    vim_regexp_extmatch *
+make_extmatch()
+{
+    vim_regexp_extmatch    *em;
+
+    em = (vim_regexp_extmatch *)alloc(sizeof(vim_regexp_extmatch));
+    if (em == NULL)
+ return NULL;
+    em->refcnt = 0;
+    vim_memset(em->matches, 0, sizeof(char_u *) * NSUBEXP);
+    return em;
+}
+
+    void
+clear_extmatch(em)
+    vim_regexp_extmatch    *em;
+{
+    int i;
+
+    if (em != NULL)
+ for (i = 0; i < NSUBEXP; i++)
+     vim_free(em->matches[i]);
+    vim_free(em);
+}
+
+    vim_regexp_extmatch *
+ref_extmatch(em)
+    vim_regexp_extmatch     *em;
+{
+    if (em != NULL)
+ em->refcnt++;
+    return em;
+}
+
+/*
+ * The motivation for returning null here is that if we're releasing a
+ * pointer to the extmatch, we should *really* release it and set it to
+ * null.
+ */
+    vim_regexp_extmatch *
+unref_extmatch(em)
+    vim_regexp_extmatch     *em;
+{
+    if (em != NULL)
+    {
+ em->refcnt--;
+ if (em->refcnt <= 0)
+     clear_extmatch(em);
+    }
+    return NULL;
+}
+#endif
+
  /*
   * regtry - try match at specific point
   */
@@ -1756,12 +1921,40 @@
      regstartp = prog->startp;
      regendp = prog->endp;
      need_clear_subexpr = TRUE;
+#ifdef EXTERN_SUBMATCH
+    /* Clear the external match subpointers if necessary. */
+    if (prog->reghasz == 2)
+    {
+ vim_memset(regstartzp, 0, sizeof(char_u *) * NSUBEXP);
+ vim_memset(regendzp, 0, sizeof(char_u *) * NSUBEXP);
+    }
+#endif

      if (regmatch(prog->program + 1))
      {
 	 clear_subexpr();
 	 prog->startp[0] = string;
 	 prog->endp[0] = reginput;
+#ifdef EXTERN_SUBMATCH
+ /* Package any \z\(...\) matches for export. */
+ re_extmatch_out = unref_extmatch(re_extmatch_out);
+
+ if (prog->reghasz == 1)
+ {
+     int i;
+
+     re_extmatch_out = ref_extmatch(make_extmatch());
+     for (i = 0; i < NSUBEXP; i++)
+     {
+  if (regstartzp[i] != NULL && regendzp[i] != NULL)
+ 	    re_extmatch_out->matches[i] =
+ 	 vim_strnsave(regstartzp[i],
+ 			     regendzp[i] - regstartzp[i]);
+     }
+ }
+ /* Make sure we don't accidentally use these next time. */
+ re_extmatch_in = unref_extmatch(re_extmatch_in);
+#endif
 	 return 1;
      }
      else
@@ -1827,6 +2020,21 @@
 	 {
 	     mch_errmsg(regprop(scan));
 	     mch_errmsg("...\n");
+#ifdef EXTERN_SUBMATCH
+     if (re_extmatch_in != NULL)
+     {
+  int i;
+
+  mch_errmsg("External submatches:\n");
+  for (i = 0; i < NSUBEXP; i++)
+  {
+ 	    mch_errmsg("    \"");
+ 	    if (re_extmatch_in->matches[i] != NULL)
+ 	 mch_errmsg(re_extmatch_in->matches[i]);
+ 	    mch_errmsg("\"\n");
+  }
+     }
+#endif
 	 }
  #endif
 	 next = regnext(scan);
@@ -2057,6 +2265,49 @@
 		 return 0;
 	     }
 	     /* break; Not Reached */
+#ifdef EXTERN_SUBMATCH
+   case ZOPEN + 1:
+   case ZOPEN + 2:
+   case ZOPEN + 3:
+   case ZOPEN + 4:
+   case ZOPEN + 5:
+   case ZOPEN + 6:
+   case ZOPEN + 7:
+   case ZOPEN + 8:
+   case ZOPEN + 9:
+     {
+  int     no;
+  char_u     *save;
+
+  clear_subexpr();
+  no = OP(scan) - ZOPEN;
+  save = regstartzp[no];
+  regstartzp[no] = reginput; /* Tentatively */
+#ifdef DEBUG
+  if (regnarrate)
+ 	    printf("ZOPEN  %d pre  @'%s' ('%s' )'%s'\n",
+ 	 no, save,
+ 	 regstartzp[no] ? (char *)regstartzp[no] : "NULL",
+ 	 regendzp[no] ? (char *)regendzp[no] : "NULL");
+#endif
+
+  if (regmatch(next))
+  {
+#ifdef DEBUG
+ 	    if (regnarrate)
+ 	 printf("ZOPEN  %d post @'%s' ('%s' )'%s'\n",
+ 		 no, save,
+ 		 regstartzp[no] ? (char *)regstartzp[no]
+ 				       : "NULL",
+ 		 regendzp[no] ? (char *)regendzp[no] : "NULL");
+#endif
+ 	    return 1;
+  }
+  regstartzp[no] = save;     /* We were wrong... */
+  return 0;
+     }
+     /* break; Not Reached */
+#endif
 	   case MCLOSE + 1:
 	   case MCLOSE + 2:
 	   case MCLOSE + 3:
@@ -2097,6 +2348,49 @@
 		 return 0;
 	     }
 	     /* break; Not Reached */
+#ifdef EXTERN_SUBMATCH
+   case ZCLOSE + 1:
+   case ZCLOSE + 2:
+   case ZCLOSE + 3:
+   case ZCLOSE + 4:
+   case ZCLOSE + 5:
+   case ZCLOSE + 6:
+   case ZCLOSE + 7:
+   case ZCLOSE + 8:
+   case ZCLOSE + 9:
+     {
+  int     no;
+  char_u     *save;
+
+  clear_subexpr();
+  no = OP(scan) - ZCLOSE;
+  save = regendzp[no];
+  regendzp[no] = reginput; /* Tentatively */
+#ifdef DEBUG
+  if (regnarrate)
+ 	    printf("ZCLOSE %d pre  @'%s' ('%s' )'%s'\n",
+ 	 no, save,
+ 	 regstartzp[no] ? (char *)regstartzp[no] : "NULL",
+ 	 regendzp[no] ? (char *)regendzp[no] : "NULL");
+#endif
+
+  if (regmatch(next))
+  {
+#ifdef DEBUG
+ 	    if (regnarrate)
+ 	 printf("ZCLOSE %d post @'%s' ('%s' )'%s'\n",
+ 		 no, save,
+ 		 regstartzp[no] ? (char *)regstartzp[no]
+ 				       : "NULL",
+ 		 regendzp[no] ? (char *)regendzp[no] : "NULL");
+#endif
+ 	    return 1;
+  }
+  regendzp[no] = save; /* We were wrong... */
+  return 0;
+     }
+     /* break; Not Reached */
+#endif
 	   case BACKREF + 1:
 	   case BACKREF + 2:
 	   case BACKREF + 3:
@@ -2126,6 +2420,38 @@
 		 }
 	     }
 	     break;
+#ifdef EXTERN_SUBMATCH
+   case ZREF + 1:
+   case ZREF + 2:
+   case ZREF + 3:
+   case ZREF + 4:
+   case ZREF + 5:
+   case ZREF + 6:
+   case ZREF + 7:
+   case ZREF + 8:
+   case ZREF + 9:
+     {
+  int no;
+  int len;
+
+  no = OP(scan) - ZREF;
+  if (re_extmatch_in != NULL &&
+ 	    re_extmatch_in->matches[no] != NULL)
+  {
+ 	    len = (int)strlen(re_extmatch_in->matches[no]);
+ 	    if (cstrncmp(re_extmatch_in->matches[no],
+ 			 reginput, len) != 0)
+ 	 return 0;
+ 	    reginput += len;
+  }
+  else
+  {
+ 	    /*emsg("extern submatch ref to nothing");*/
+ 	    /*return 0;*/
+  }
+     }
+     break;
+#endif
 	   case BRANCH:
 	     {
 		 char_u     *save;
@@ -2744,6 +3070,44 @@
 	 sprintf(buf + STRLEN(buf), "BACKREF%d", OP(op) - BACKREF);
 	 p = NULL;
 	 break;
+#ifdef EXTERN_SUBMATCH
+      case ZOPEN + 1:
+      case ZOPEN + 2:
+      case ZOPEN + 3:
+      case ZOPEN + 4:
+      case ZOPEN + 5:
+      case ZOPEN + 6:
+      case ZOPEN + 7:
+      case ZOPEN + 8:
+      case ZOPEN + 9:
+ sprintf(buf + STRLEN(buf), "ZOPEN%d", OP(op) - ZOPEN);
+ p = NULL;
+ break;
+      case ZCLOSE + 1:
+      case ZCLOSE + 2:
+      case ZCLOSE + 3:
+      case ZCLOSE + 4:
+      case ZCLOSE + 5:
+      case ZCLOSE + 6:
+      case ZCLOSE + 7:
+      case ZCLOSE + 8:
+      case ZCLOSE + 9:
+ sprintf(buf + STRLEN(buf), "ZCLOSE%d", OP(op) - ZCLOSE);
+ p = NULL;
+ break;
+      case ZREF + 1:
+      case ZREF + 2:
+      case ZREF + 3:
+      case ZREF + 4:
+      case ZREF + 5:
+      case ZREF + 6:
+      case ZREF + 7:
+      case ZREF + 8:
+      case ZREF + 9:
+ sprintf(buf + STRLEN(buf), "ZREF%d", OP(op) - ZREF);
+ p = NULL;
+ break;
+#endif
        case STAR:
 	 p = "STAR";
 	 break;
--- ./src/syntax.c.orig Thu Dec 16 09:57:45 1999
+++ ./src/syntax.c Sat Jan  8 19:39:12 2000
@@ -181,6 +181,10 @@
  {
      int     bs_idx;  /* index of pattern */
      int     bs_flags;  /* flags for pattern */
+#ifdef EXTERN_SUBMATCH
+    vim_regexp_extmatch *bs_start_ext; /* external matches from start
+ 				   pattern */
+#endif
  };

  #define SYN_STATE_P(ssp)    ((struct buf_state *)((ssp)->ga_data))
@@ -265,6 +269,10 @@
 				        HL_SKIP* for si_next_list */
      short   *si_cont_list;     /* list of contained groups */
      short   *si_next_list;     /* nextgroup IDs after this item ends */
+#ifdef EXTERN_SUBMATCH
+    vim_regexp_extmatch    *si_start_ext;   /* \z\(...\) matches from the
+ 				       start pattern */
+#endif
  };

  #define KEYWORD_IDX -1     /* value of si_idx for keywords */
@@ -287,6 +295,9 @@
  static int next_match_eos_col;     /* column for end of start pattern */
  static int next_match_eoe_col;     /* column for end of end pattern */
  static int next_match_end_idx;     /* ID of group for end pattern or zero */
+#ifdef EXTERN_SUBMATCH
+static vim_regexp_extmatch *next_match_extmatch = NULL;
+#endif

  /*
   * A state stack is an array of integers or struct state_item, stored in a
@@ -335,7 +346,13 @@
  static int syn_regexec __ARGS((vim_regexp *prog, char_u *string, int at_bol));
  static int push_current __ARGS((int idx));
  static void pop_current __ARGS((void));
+#ifndef EXTERN_SUBMATCH
  static char_u *find_endp __ARGS((int idx, char_u *sstart, int at_bol, char_u
**hl_endp, int *flagsp, char_u **end_endp, int *end_idx));
+#else
+static char_u *find_endp __ARGS((int idx, char_u *sstart, int at_bol, char_u
**hl_endp, int *flagsp, char_u **end_endp, int *end_idx, vim_regexp_extmatch
*start_ext));
+static void clear_buf_state_ga __ARGS((struct growarray *ga));
+static void clear_state_item_ga __ARGS((struct growarray *ga));
+#endif
  static char_u *syn_add_end_off __ARGS((struct syn_pattern *spp, int idx, int
extra));
  static char_u *syn_add_start_off __ARGS((struct syn_pattern *spp, int idx, int
extra));
  static int check_keyword_id __ARGS((char_u *line, int startcol, int *endcol,
int *flags, short **next_list, struct state_item *cur_si));
@@ -384,6 +401,16 @@
  static void syn_combine_list __ARGS((short **clstr1, short **clstr2, int
list_op));
  static void syn_incl_toplevel __ARGS((int id, int *flagsp));

+#ifdef EXTERN_SUBMATCH
+/* These should probably be moved to regexp.pro... */
+extern vim_regexp_extmatch  *re_extmatch_in;
+extern vim_regexp_extmatch  *re_extmatch_out;
+extern int 	     re_allow_extmatch;
+
+extern void clear_extmatch __ARGS((vim_regexp_extmatch *em));
+extern vim_regexp_extmatch *ref_extmatch __ARGS((vim_regexp_extmatch *em));
+extern vim_regexp_extmatch *unref_extmatch __ARGS((vim_regexp_extmatch *em));
+#endif
  /*
   * Start the syntax recognition for a line.  This function is normally called
   * from the screen updating, once for each consecutive line.
@@ -593,6 +620,37 @@
      reg_syn = FALSE;
  }

+#ifdef EXTERN_SUBMATCH
+/*
+ * Gah!  We can no longer simply discard growarrays full of state_items or
+ * buf_states; we have to manually release their extmatch pointers first.
+ */
+
+    static void
+clear_buf_state_ga(ga)
+    struct growarray *ga;
+{
+    int i;
+
+    for (i = 0; i < ga->ga_len; i++)
+ unref_extmatch(SYN_STATE_P(ga)[i].bs_start_ext);
+    ga_clear(ga);
+}
+
+    static void
+clear_state_item_ga(ga)
+    struct growarray *ga;
+{
+    int i;
+    struct state_item *sip;
+
+    sip = (struct state_item *)(ga->ga_data);
+    for (i = 0; i < ga->ga_len; i++)
+ unref_extmatch(sip[i].si_start_ext);
+    ga_clear(ga);
+}
+#endif
+
  /*
   * Try to find a synchronisation point for line "lnum".
   *
@@ -776,7 +834,11 @@
 		  * state stack.  If there was no item specified, make the
 		  * state stack empty.
 		  */
+#ifdef EXTERN_SUBMATCH
+  clear_state_item_ga(&current_state);
+#else
 		 ga_clear(&current_state);
+#endif
 		 if (found_match_idx >= 0 &&
 			 push_current(found_match_idx) == OK)
 		     update_si_attr(current_state.ga_len - 1);
@@ -888,7 +950,11 @@
      if (buf->b_syn_states != NULL)
      {
 	 for (idx = 0; idx < buf->b_syn_states_len; ++idx)
+#ifdef EXTERN_SUBMATCH
+     clear_buf_state_ga(&(buf->b_syn_states[idx].sst_ga));
+#else
 	     ga_clear(&(buf->b_syn_states[idx].sst_ga));
+#endif
 	 vim_free(buf->b_syn_states);
 	 buf->b_syn_states = NULL;
 	 buf->b_syn_states_len = 0;
@@ -908,7 +974,11 @@
      for (idx = start; idx < end; ++idx)
      {
 	 sp = &(syn_buf->b_syn_states[idx].sst_ga);
+#ifdef EXTERN_SUBMATCH
+ clear_buf_state_ga(sp);
+#else
 	 ga_clear(sp);
+#endif
 	 sp->ga_itemsize = 0;
      }
  }
@@ -929,7 +999,11 @@
      {
 	 to = &(syn_buf->b_syn_states[idx].sst_ga);
 	 if (to->ga_data != NULL)
+#ifdef EXTERN_SUBMATCH
+     clear_buf_state_ga(to);
+#else
 	     ga_clear(to);
+#endif
 	 else if (to->ga_itemsize == 0)
 	 {
 	     to->ga_itemsize = sizeof(struct buf_state);
@@ -941,6 +1015,11 @@
 	     {
 		 SYN_STATE_P(to)[i].bs_idx = CUR_STATE(i).si_idx;
 		 SYN_STATE_P(to)[i].bs_flags = CUR_STATE(i).si_flags;
+#ifdef EXTERN_SUBMATCH
+  unref_extmatch(SYN_STATE_P(to)[i].bs_start_ext);
+  SYN_STATE_P(to)[i].bs_start_ext =
+ 	    ref_extmatch(CUR_STATE(i).si_start_ext);
+#endif
 	     }
 	     to->ga_len = current_state.ga_len;
 	     to->ga_room -= to->ga_len;
@@ -961,7 +1040,11 @@
      int     i;
      struct growarray *ga = &(from->sst_ga);

+#ifdef EXTERN_SUBMATCH
+    clear_state_item_ga(&current_state);
+#else
      ga_clear(&current_state);
+#endif
      validate_current_state();
      keepend_level = -1;
      if (ga->ga_len && ga_grow(&current_state, ga->ga_len) != FAIL)
@@ -977,6 +1060,11 @@
 	     CUR_STATE(i).si_m_lnum = 0;
 	     CUR_STATE(i).si_next_list =
 		        (SYN_ITEMS(syn_buf)[CUR_STATE(i).si_idx]).sp_next_list;
+#ifdef EXTERN_SUBMATCH
+     unref_extmatch(CUR_STATE(i).si_start_ext);
+     CUR_STATE(i).si_start_ext =
+  ref_extmatch(SYN_STATE_P(ga)[i].bs_start_ext);
+#endif
 	     update_si_attr(i);
 	 }
 	 current_state.ga_len = ga->ga_len;
@@ -989,7 +1077,11 @@
      static void
  invalidate_current_state()
  {
+#ifdef EXTERN_SUBMATCH
+    clear_state_item_ga(&current_state);
+#else
      ga_clear(&current_state);
+#endif
      current_state.ga_itemsize = 0;
      current_next_list = NULL;
      keepend_level = -1;
@@ -1009,7 +1101,11 @@
  move_state(from, to)
      int     from, to;
  {
+#ifdef EXTERN_SUBMATCH
+    clear_buf_state_ga(&(syn_buf->b_syn_states[to].sst_ga));
+#else
      ga_clear(&(syn_buf->b_syn_states[to].sst_ga));
+#endif
      syn_buf->b_syn_states[to] = syn_buf->b_syn_states[from];
      ga_init(&(syn_buf->b_syn_states[from].sst_ga));
      syn_buf->b_syn_states[from].sst_ga.ga_itemsize = 0; /* invalid entry */
@@ -1357,6 +1453,9 @@
 					      spp->sp_flags & HL_CONTAINED))))))
 			 {
 			     int lc_col;
+#ifdef EXTERN_SUBMATCH
+ 		    vim_regexp_extmatch *cur_extmatch = NULL;
+#endif

 			     /* If we already tried matching in this line, and
 			      * there isn't a match before next_match_col, skip
@@ -1419,6 +1518,15 @@
 				 eos_col = (endp - line) - 1
 						 + spp->sp_offsets[SPO_RS_OFF];

+#ifdef EXTERN_SUBMATCH
+ 		    /*
+ 		     * Grab the external submatches before they get
+ 		     * overwritten.
+ 		     */
+ 		    cur_extmatch = ref_extmatch(re_extmatch_out);
+ 		    re_extmatch_out = unref_extmatch(re_extmatch_out);
+#endif
+
 			     /*
 			      * If this is a oneline, the end must be found
 			      * in the same line too.
@@ -1428,8 +1536,14 @@
 			     end_idx = 0;
 			     if (spp->sp_type == SPTYPE_START
 				     && (spp->sp_flags & HL_ONELINE))
+#ifdef EXTERN_SUBMATCH
+ 		 endp = find_endp(idx, endp, endp == line,
+ 			 &hl_endp, &flags, &eoep, &end_idx,
+ 			 cur_extmatch);
+#else
 				 endp = find_endp(idx, endp, endp == line,
 					 &hl_endp, &flags, &eoep, &end_idx);
+#endif

 			     /*
 			      * For a "match" the size must be > 0 after the
@@ -1449,6 +1563,10 @@
 				     if (spp->sp_prog->startp[0] ==
 							 spp->sp_prog->endp[0])
 					 try_next_column = TRUE;
+#ifdef EXTERN_SUBMATCH
+ 			    /* Catch this before we go back... */
+ 			    unref_extmatch(cur_extmatch);
+#endif
 				     continue;
 				 }
 			     }
@@ -1470,7 +1588,16 @@
 				 next_match_eos_col = eos_col;
 				 next_match_eoe_col = eoep - line;
 				 next_match_end_idx = end_idx;
+#ifdef EXTERN_SUBMATCH
+ 		 unref_extmatch(next_match_extmatch);
+ 		 next_match_extmatch =
+ 			    ref_extmatch(cur_extmatch);
+#endif
 			     }
+#ifdef EXTERN_SUBMATCH
+ 		    /* This is about to go out of scope... */
+ 		    unref_extmatch(cur_extmatch);
+#endif
 			 }
 		     }
 		 }
@@ -1606,6 +1733,10 @@
 	 cur_si->si_m_lnum = current_lnum;
 	 cur_si->si_flags = spp->sp_flags;
 	 cur_si->si_next_list = spp->sp_next_list;
+#ifdef EXTERN_SUBMATCH
+ unref_extmatch(cur_si->si_start_ext);
+ cur_si->si_start_ext = ref_extmatch(next_match_extmatch);
+#endif
 	 if (spp->sp_type == SPTYPE_START && !(spp->sp_flags & HL_ONELINE))
 	 {
 	     update_si_end(cur_si, line, next_match_m_endcol);
@@ -1828,8 +1959,14 @@
       * line.
       */
      end_idx = 0;
+#ifdef EXTERN_SUBMATCH
+    endp = find_endp(sip->si_idx, line + startcol,
+        startcol == 0, &hl_endp, &(sip->si_flags), &end_endp,
+        &end_idx, sip->si_start_ext);
+#else
      endp = find_endp(sip->si_idx, line + startcol,
 	        startcol == 0, &hl_endp, &(sip->si_flags), &end_endp, &end_idx);
+#endif
      if (endp == NULL)
      {
 	 /* continues on next line */
@@ -1882,6 +2019,11 @@
  {
      if (current_state.ga_len)
      {
+#ifdef EXTERN_SUBMATCH
+ struct state_item   *cur_si = &CUR_STATE(current_state.ga_len - 1);
+
+ cur_si->si_start_ext = unref_extmatch(cur_si->si_start_ext);
+#endif
 	 --current_state.ga_len;
 	 ++current_state.ga_room;
      }
@@ -1897,7 +2039,11 @@
   * Find the end of a start/skip/end pattern match.
   */
      static char_u *
+#ifdef EXTERN_SUBMATCH
+find_endp(idx, sstart, at_bol, hl_endp, flagsp, end_endp, end_idx, start_ext)
+#else
  find_endp(idx, sstart, at_bol, hl_endp, flagsp, end_endp, end_idx)
+#endif
      int     idx; /* index of the pattern */
      char_u  *sstart; /* where to start looking for an END match */
      int     at_bol; /* if sstart is at begin-of-line */
@@ -1905,6 +2051,9 @@
      int     *flagsp; /* flags of matching END */
      char_u  **end_endp; /* end of end pattern match */
      int     *end_idx; /* group ID for end pattern match, or 0 */
+#ifdef EXTERN_SUBMATCH
+    vim_regexp_extmatch *start_ext; /* submatches from the start pattern */
+#endif
  {
      char_u  *endp; 	    /* end of highlighting */
      struct syn_pattern *spp, *spp_skip;
@@ -1960,6 +2109,10 @@
 		 break;

 	     reg_ic = spp->sp_ic;
+#ifdef EXTERN_SUBMATCH
+     unref_extmatch(re_extmatch_in);
+     re_extmatch_in = ref_extmatch(start_ext);
+#endif
 	     if (syn_regexec(spp->sp_prog, endp, (at_bol && endp == sstart)))
 	     {
 		 if (best_idx == -1 || spp->sp_prog->startp[0] < best_ptr)
@@ -1981,6 +2134,10 @@
 	  * If the skip pattern matches before the end pattern,
 	  * continue searching after the skip pattern.
 	  */
+#ifdef EXTERN_SUBMATCH
+ unref_extmatch(re_extmatch_in);
+ re_extmatch_in = ref_extmatch(start_ext);
+#endif
 	 if (    spp_skip != NULL
 		 && (reg_ic = spp_skip->sp_ic,
 			 syn_regexec(spp_skip->sp_prog, endp,
@@ -3595,7 +3752,17 @@
 	     /*
 	      * Get the syntax pattern and the following offset(s).
 	      */
+#ifdef EXTERN_SUBMATCH
+     /* Enable the appropriate \z specials. */
+     if (item == ITEM_START)
+  re_allow_extmatch = 1;
+     else if (item == ITEM_SKIP || item == ITEM_END)
+  re_allow_extmatch = 2;
+#endif
 	     rest = get_syn_pattern(rest, ppp->pp_synp);
+#ifdef EXTERN_SUBMATCH
+     re_allow_extmatch = 0;
+#endif
 	     if (item == ITEM_END && vim_regcomp_had_eol()
 						    && !(flags & HL_EXCLUDENL))
 		 ppp->pp_synp->sp_flags |= HL_HAS_EOL;
@@ -4538,6 +4705,7 @@
      }
      return !retval;
  }
+

  struct subcommand
  {
--- ./src/version.c.orig Sat Dec 18 10:08:12 1999
+++ ./src/version.c Mon Dec 20 21:32:14 1999
@@ -127,6 +127,11 @@
  #else
 	 "-ex_extra",
  #endif
+#ifdef EXTERN_SUBMATCH
+ "+extern_submatch",
+#else
+ "-extern_submatch",
+#endif
  #ifdef EXTRA_SEARCH
 	 "+extra_search",
  #else
--- ./src/feature.h.orig Sat Oct 23 19:22:49 1999
+++ ./src/feature.h Mon Dec 20 21:32:14 1999
@@ -326,6 +326,15 @@
  #endif

  /*
+ * +extern_submatch When EXTERN_SUBMATCH defined: Include support for
+ * 	 \z special regexp atom to allow subpattern matches
+ * 	 to be shared between region start and end patterns.
+ */
+#if !defined(MIN_FEAT) && defined(SYNTAX_HL)
+# define EXTERN_SUBMATCH
+#endif
+
+/*
   * +sniff  When USE_SNIFF defined: Include support for Sniff
   * 	 interface.  This needs to be defined in the Makefile.
   */
--- ./src/regexp.h.orig Sun Dec  7 08:11:17 1997
+++ ./src/regexp.h Sat Jan  8 17:42:24 2000
@@ -24,6 +24,9 @@
      char_u     reganch; /* Internal use only. */
      char_u    *regmust; /* Internal use only. */
      int 	    regmlen; /* Internal use only. */
+#ifdef EXTERN_SUBMATCH
+    char_u     reghasz; /* Internal use only. */
+#endif
      char_u     program[1]; /* Unwarranted chumminess with compiler. */
  } vim_regexp;

@@ -33,5 +36,12 @@
   */

  #define MAGIC 0234
+
+#ifdef EXTERN_SUBMATCH
+typedef struct vim_regexp_extmatch {
+    short     refcnt;
+    char_u    *matches[NSUBEXP];
+} vim_regexp_extmatch;
+#endif

  #endif /* _REGEXP_H */
--- ./runtime/doc/eval.txt.orig Sat Dec 18 10:10:39 1999
+++ ./runtime/doc/eval.txt Mon Dec 20 21:32:14 1999
@@ -1344,6 +1344,8 @@
  eval 	 Compiled with expression evaluation support.  Always
 			 true, of course!
  ex_extra  Compiled with extra Ex commands |+ex_extra|.
+extern_submatch  Compiled with external submatch support
+ 	 |+extern_submatch|.
  extra_search  Compiled with support for |'incsearch'| and
 			 |'hlsearch'|
  farsi 	 Compiled with Farsi support |farsi|.
--- ./runtime/doc/pattern.txt.orig Sat Dec 18 10:10:45 1999
+++ ./runtime/doc/pattern.txt Mon Dec 20 21:32:14 1999
@@ -362,6 +362,19 @@
 	 \2      \2 Like "\1", but uses second sub-expression, */\2*
 	    ...
 	 \9      \9 Like "\1", but uses ninth sub-expression. */\9*
+ \z\(\) \z\(\) Marks the sub-expression as "external",  */\z*
+ 	 meaning that it is can be accessed from another
+ 	 pattern match.  Currently only usable in defining
+ 	 a syntax region; see |:syn-extmatch| for details.
+ 	 {not available when compiled without the
+ 	 |+extern_submatch| feature}
+ \z\1 \z\1
+     ...
+ \z\9 \z\9 Matches the same string that was matched by the
+ 	 corresponding sub-expression in a previous
+ 	 pattern match.  See |:syn-extmatch| for details
+ 	 of its use.  {not available when compiled without
+ 	 the |+extern_submatch| feature}

 	 x x A single character, with no special meaning,
 			 matches itself
--- ./runtime/doc/syntax.txt.orig Sat Dec 18 10:10:46 1999
+++ ./runtime/doc/syntax.txt Mon Dec 20 21:32:14 1999
@@ -1253,6 +1253,33 @@
  >  hi par2 ctermfg=blue guifg=blue
  >  hi par3 ctermfg=darkgreen guifg=darkgreen

+ 					 *:syn-extmatch*
+ {not available when compiled without the |+extern_submatch| feature}
+ Sometimes the start and end patterns of a region need to share a
+ common sub-expression.  A common example is the "here" document in
+ Perl and many Unix shells.  This effect can be achieved with the |/\z|
+ special regular expression atom, which marks a sub-expression as
+ "external", in the sense that it can be referenced from outside the
+ pattern in which it is defined.  The here-document example, for
+ instance, can be done like this:
+>  :syn region hereDoc start="<<\z\(\I\i*\)" end="^\z\1$"
+
+ As can be seen here, the \z atom actually does double duty.  In the
+ start pattern, it marks the "\(\I\i*\)" sub-expression as external;
+ in the end pattern, it changes the \1 back-reference into an external
+ reference referring to the first external sub-expression in the start
+ pattern.  External references can also be used in skip patterns:
+>  :syn region foo start="start \(\I\i*\)" skip="not end \z\1" end="end \z\1"
+
+ Note that normal and external sub-expressions are completely
+ orthogonal and indexed separately; for instance, if the pattern
+ "\z\(..\)\(..\)" is applied to the string "aabb", then \1 will refer
+ to "bb" and \z\1 will refer to "aa".  Note also that external
+ sub-expressions cannot be accessed as back-references within the same
+ pattern like normal sub-expressions.  If you want to use one
+ sub-expression as both a normal and an external sub-expression, you
+ can nest the two, as in "\(\z\(...\)\)".
+
  ==============================================================================
  6. :syntax arguments 			 *:syn-arguments*

--- ./runtime/doc/various.txt.orig Sat Dec 18 10:10:47 1999
+++ ./runtime/doc/various.txt Mon Dec 20 21:32:14 1999
@@ -198,6 +198,7 @@
  *+eval* 	 expression evaluation |eval.txt|
  *+ex_extra*  Vim's extra Ex commands: |:center|, |:left|,
 			 |:normal|, |:retab| and |:right|
+*+extern_submatch* External submatches:  |:syn-extmatch|
  *+extra_search*  |'hlsearch'| and |'incsearch'| options.
  *+farsi*  |farsi| language
  *+file_in_path*  |gf|, |CTRL-W_f| and |<cfile>|

#13057 From: Ken Scott <kscott-list@...>
Date: Sat Jan 8, 2000 10:56 pm
Subject: OT: Vim Buddy reference??
kscott-list@...
Send Email Send Email
 
I don't know how many Vim folks read UserFriendly, but I saw this strip,
and the first thing that I thought of was Vim Buddy :)

http://www.userfriendly.org/cartoons/archives/00jan/20000108.html

Ken

--
><>   Ken Scott   kscott@...   http://www.pcisys.net/~kscott

               This is the day that the Lord has made;
               I will rejoice and be glad in it!          -- Psalm 118:24

Messages 1 - 13086 of 55518   Newest  |  < Newer  |  Older >  |  Oldest
Advanced
Add to My Yahoo!      XML What's This?

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help