Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

vimdev · Vim (Vi IMproved) text editor developers list

The Yahoo! Groups Product Blog

Check it out!

Group Information

? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Messages

Advanced
Messages Help
Messages 34979 - 35011 of 70063   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#34979 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: Patch 6.2.300
Bram@...
Send Email Send Email
 
Patch 6.2.300 (after 6.2.297)
Problem:    Cannot build Python interface with Python 2.2 or earlier.
Solution:   Add a semicolon.
Files:      src/if_python.c


*** ../vim-6.2.300/src/if_python.c Sun Feb 29 14:54:10 2004
--- src/if_python.c Mon Mar  1 10:28:46 2004
***************
*** 521,527 ****

   theend:
   #ifndef PY_CAN_RECURSE
!     --recursive
   #endif
       return;     /* keeps lint happy */
   }
--- 521,527 ----

   theend:
   #ifndef PY_CAN_RECURSE
!     --recursive;
   #endif
       return;     /* keeps lint happy */
   }
*** ../vim-6.2.300/src/version.c Mon Mar  1 10:30:59 2004
--- src/version.c Mon Mar  1 10:33:15 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     300,
   /**/

--
     [clop clop]
GUARD #1:  Halt!  Who goes there?
ARTHUR:    It is I, Arthur, son of Uther Pendragon, from the castle of
            Camelot.  King of the Britons, defeator of the Saxons, sovereign of
            all England!
GUARD #1:  Pull the other one!
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34980 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: Patch 6.2.299 addition
Bram@...
Send Email Send Email
 
Forgot to update the patch number in the patch...

*** ../vim-6.2.299/src/version.c Sun Feb 29 20:46:43 2004
--- src/version.c Mon Mar  1 10:30:42 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     299,
   /**/

--
Q: How does a UNIX Guru do Sex ?
A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34981 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: Re: Patch 6.2.297
Bram@...
Send Email Send Email
 
> Bram Moolenaar <Bram@...> writes:
>
> : Patch 6.2.297 (after 6.2.232)
> : Problem:    Cannot invoke Python commands recursively.
> : Solution:   With Python 2.3 and later use the available mechanisms to invoke
> : 	    Python recursively. (Matthew Mueller)
> : Files:     src/if_python.c
> :
>
> typo: missing semi-colon.

Right, added the "return" afterwards.  Patch coming...

--
Proverb: A nightingale that forgets the lyrics is a hummingbird.

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34982 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: Re: Patch 6.2.299
Bram@...
Send Email Send Email
 
David Odin wrote:

>   This is a really good news for those of us translating the help files.
> As you can see here: http://vim.dindinx.net/, the french translation is
> almost complete.
>
>   Bram, do you want a set of files.frx to be included in the vim
> distribution, or is it better to keep translation as separate packages?

It will be better to distribute the translated help files as a separate
package.  I expect them to be available at different times than Vim
releases.  And people will want to select which one they will install
anyway.

The best solution is when I setup a page on www.vim.org with links to
the available translation packages.  To keep this organized a bit, let's
agree on what a package contains and what archives are used.

Contents:
	 README_??.txt  info about the translation
	 doc/*.??x 	 translated help files
	 doc/tags-??  tags file
	 lang/menu_*.vim  menu translations (optional)
	 keymap/*.vim  keymaps (optional)

The structure is setup so that the archive can be unpacked in
$VIMRUNTIME or ~/.vim.  Translated messages can't be included in an
archive, because they need to be installed in a specific location.

Archives:
	 .tar.bz2  For Unix
	 .zip 	 For MS-Windows
	 .exe 	 self-installing, for lazy MS-Windows
					 users

The .exe would be made similar to gvim62.exe, with NSIS.  It finds the
right location to install the files into.  This one may also have the
translated messages.

Discussion: For MS-Windows the help files currently use CR-LF.  Should
the translations also do this?  It's not really necessary, LF works as
well.

--
FATHER:    Did you kill all those guards?
LAUNCELOT: Yes ...  I'm very sorry ...
FATHER:    They cost fifty pounds each!
                  "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34983 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: RE: Win32 gVim NSIS2 installer
Bram@...
Send Email Send Email
 
Alejandro Lopez-Valencia wrote:

> >> Would it be possible to add a selection of console versions to
> >> the installers too? (Letting the user choose which one to
> >> install, that is) Or would this make the package
> >> tooooooooooooooo big?
> >
> > I think it would not be a bad idea to include _one_ console version.
> > However, there is no console version that runs well on both Win
> > 95/98/ME
> > and on NT/2000/XP.  Thus we would have to include both versions and
> > decide between the two when installing.
> >
> > I wonder how much the package grows when adding the two vim.exe files.
>
> I have an answer. Using LZMA compression:
>
> Installer including gvim, with the compiler/cpp flags mentioned before.
>
> EXE header size:               36352 / 35328 bytes
> Install code:                          (60721 bytes)
> Install data:                          (9500528 bytes)
> Uninstall code+data:                   (5007 bytes)
> Compressed data:             2480940 / 9566256 bytes
> CRC (0xAA3664F9):                  4 / 4 bytes
>
> Total size:                  2517296 / 9601588 bytes (26.2%)
>
> Installer including 32-bit console vim and gvim.
>
> EXE header size:               36352 / 35328 bytes
> Install code:                          (60749 bytes)
> Install data:                          (10588532 bytes)
> Uninstall code+data:                   (5007 bytes)
> Compressed data:             2635370 / 10654288 bytes
> CRC (0x170725C8):                  4 / 4 bytes
>
> Total size:                  2671726 / 10689620 bytes (25.0%)
>
>
> I was *way* off in my size increase guess. It seems this installer does
> a binary xdelta!

If the size increase is this small, I think it's a good idea to include
the console versions.  Allow the user to select whether he wants to
install the console vim or not.  Then install the Win 98 or Win XP
version, depending on the current system.

I assume the LZMA decompression doesn't require the user to install
something, right?

--
GUARD #1:  What -- a swallow carrying a coconut?
ARTHUR:    It could grip it by the husk!
GUARD #1:  It's not a question of where he grips it!  It's a simple question
            of weight ratios!  A five ounce bird could not carry a 1 pound
            coconut.
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34984 From: "Alejandro Lopez-Valencia" <dradul@...>
Date: Mon Mar 1, 2004 10:46 am
Subject: RE: Re[2]: Win32 gVim NSIS2 installer
dradul@...
Send Email Send Email
 
On Sunday, February 29, 2004 1:20 PM, Giuseppe Bilotta broke the silence
of shunyata and uttered:

> On Sunday, February 29, 2004 Alejandro Lopez-Valencia wrote:
>> You are right. I've reading further into the manual and it is
>> completely possible to create extra installers that look for the
>> location of the main package before letting themselves be dump to
>> the disk. Hmmm... Now that I think of it, that's how Winamp
>> extensions work when using NSIS installers.
>
> That would be an excellent idea.
>
> And about localization: would it be possible to choose which
> localization to install? I don't want to install 65 Gigabytes
> of data when I'm going to use only 3 Kbs ;)
>
> (Seriously, I wouldn't need anything but English and Italian,
> for example ...)

Ahh yes! I think your request is reasonable. I'd be happy with English
and Spanish, and the latter mostly to impress chicks at parties telling
them I am the translator. ;-)

Hmm.. I think the implementation is mostly sweat. I don't promise
anything, but I'll take a stab at it and deliver a first draft
installer. First I need to reacquaint myself with the source code
distribution tarballs. (I have used the CVS repository for so long, the
splits are non-existent in my mind.)

#34985 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 9:56 am
Subject: Re: FW: bugfixes to GvimExt Make_ming.mak (really the final version)
Bram@...
Send Email Send Email
 
Alejandro Lopez-Valencia wrote:

> [I am taking the freedom of forwarding this version of the makefile Rene
> has sent me off-list, because I think the arguments are compelling and
> sound.

I just keep including the latest version you send.  Assuming it will
come to an end some day. :-)

--
GUARD #1:  Where'd you get the coconut?
ARTHUR:    We found them.
GUARD #1:  Found them?  In Mercea?  The coconut's tropical!
ARTHUR:    What do you mean?
GUARD #1:  Well, this is a temperate zone.
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34986 From: "Alejandro Lopez-Valencia" <dradul@...>
Date: Mon Mar 1, 2004 10:50 am
Subject: RE: FW: bugfixes to GvimExt Make_ming.mak (really the final version)
dradul@...
Send Email Send Email
 
On Monday, March 01, 2004 4:57 AM, Bram@... broke the silence
of shunyata and uttered:

> Alejandro Lopez-Valencia wrote:
>
>> [I am taking the freedom of forwarding this version of the makefile
>> Rene has sent me off-list, because I think the arguments are
>> compelling and sound.
>
> I just keep including the latest version you send.  Assuming it will
> come to an end some day. :-)

Let's call it quitters. :-)

#34987 From: "Brandt, Servatius" <Servatius.Brandt@...>
Date: Mon Mar 1, 2004 10:58 am
Subject: RE: Patch 6.2.299
Servatius.Brandt@...
Send Email Send Email
 
Bram -

After adding patch 6.2.299 "make install" fails.  I have just added the
patch, but not downloaded any new runtime files, so there are no *.??x
and tags-?? files in runtime/doc.  The following patch fixes the
problem:

- Servatius


*** src/Makefile.orig Mon Mar  1 09:18:02 2004
--- src/Makefile Mon Mar  1 11:54:12 2004
***************
*** 1672,1678 ****
   # Generate the help tags with ":helptags" to handle all languages.
  	 -@cd $(HELPSOURCE); VIMEXE=$(VIMTARGET) $(MAKE) vimtags
  	 cd $(HELPSOURCE); \
! 	 files=`ls *.txt *.??x tags tags-??`; \
  		 $(INSTALL_DATA) $$files  $(DEST_HELP); \
  		 cd $(DEST_HELP); \
  		 chmod $(HELPMOD) $$files
--- 1672,1678 ----
   # Generate the help tags with ":helptags" to handle all languages.
  	 -@cd $(HELPSOURCE); VIMEXE=$(VIMTARGET) $(MAKE) vimtags
  	 cd $(HELPSOURCE); \
! 	 files=`ls *.txt *.??x tags tags-?? 2>/dev/null || true`;
\
  		 $(INSTALL_DATA) $$files  $(DEST_HELP); \
  		 cd $(DEST_HELP); \
  		 chmod $(HELPMOD) $$files

#34988 From: khorev@...
Date: Mon Mar 1, 2004 11:06 am
Subject: read it immediately
khorev@...
Send Email Send Email
 
i found this document about you

#34989 From: Yakov Lerner <yakov.lerner@...>
Date: Mon Mar 1, 2004 12:09 pm
Subject: input() inside mapping eats rest of mapping
yakov.lerner@...
Send Email Send Email
 
I tried to use input() inside mapping and got unexpected results.
Let's say I execute the following line:

:map ;; :let c=input("Enter something ")<cr>iabc<esc>:echo "--> c=".c<cr>

, then press ;;

Unexpectedly, I don't get prompt "Enter something ". Instead,
input() seems to be fed with what follows in mapping. Command 'iabc<esc'
is not executed. Is it how it is supposed to be ?

Yakov

#34990 From: "Brandt, Servatius" <Servatius.Brandt@...>
Date: Mon Mar 1, 2004 12:28 pm
Subject: RE: Patch 6.2.299
Servatius.Brandt@...
Send Email Send Email
 
Bram Moolenaar wrote:

> Hmm, I thought (hoped) that wildcards without a match would be ignored
> silently.  Somehow I have been testing this in a wrong way.
>
> Ignoring the "ls" failing completely looks a bit dangerous to me.
> Isn't there a simple and portable way to add files with wildcard
> expansion optionally?
>
> One solution could be to expand "*.txt" like before, and add "*.??x
> tags-??" while ignoring errors.  This seems to work, but I wonder if
> there is a simpler way:
>
>     cd $(HELPSOURCE); \
>  	 files=`ls *.txt tags`; \
> 	 (files="$$files `ls *.??x tags-?? 2>/dev/null ||
true`"); \
>    	 $(INSTALL_DATA) $$files  $(DEST_HELP); \
>    	 cd $(DEST_HELP); \
>    	 chmod $(HELPMOD) $$files

With KornShell or bash it would be possible to use

	 `echo @(*.txt|tags|*.??x|tags-??)`

but you could also use the find command inside the backquotes.

- Servatius

#34991 From: "Matthias Mohr" <MMohr@...>
Date: Mon Mar 1, 2004 12:52 pm
Subject: Re: Win32 gVim NSIS2 installer
MMohr@...
Send Email Send Email
 
> > Installer including 32-bit console vim and gvim.
> >
> > EXE header size:               36352 / 35328 bytes
> > Install code:                          (60749 bytes)
> > Install data:                          (10588532 bytes)
> > Uninstall code+data:                   (5007 bytes)
> > Compressed data:             2635370 / 10654288 bytes
> > CRC (0x170725C8):                  4 / 4 bytes
> >
> > Total size:                  2671726 / 10689620 bytes (25.0%)
> >
> >
> > I was *way* off in my size increase guess. It seems this installer does
> > a binary xdelta!
>
> If the size increase is this small, I think it's a good idea to include
> the console versions.  Allow the user to select whether he wants to
> install the console vim or not.  Then install the Win 98 or Win XP
> version, depending on the current system.
>
> I assume the LZMA decompression doesn't require the user to install
> something, right?
No, it's just one of the possible compression methods from NSIS.
I also vote for integration of the console executables.
But the help files and language dependend things should be made in different
"extension" installers!

I installed NSIS v2 on my computer and did some small changes to the gvim.nsis
to make the v2 NSIS happy.
And I also included the console executables - but my knowledge about NSIS is
very small, so I included them hardcoded.

BTW, I also tried to examine the version information from the build executable
gvim.exe (including patchlevel)
A NSIS-function for that purpose is really easy, but I have no idea how I
execute that function at the very first beginning of NSIS
compilation process.

So finally I ended up with defines again :-(

Is there anybody with good knowledge about NSIS who can help?

with regards,
Matthias

SysDesign - The Solution Behind IT.

Ihr Spezialist für Systemtechnik sowie Hard- und Softwareentwicklung für alle
technischen Anwendungsbereiche.
--------------------------------------------------------------------------
Your specialist for systems engineering as well as hard and software engineering
for all technical fields of application.

#34992 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 1:03 pm
Subject: RE: Patch 6.2.299
Bram@...
Send Email Send Email
 
Servatius Brandt wrote:

> Bram Moolenaar wrote:
>
> > Hmm, I thought (hoped) that wildcards without a match would be ignored
> > silently.  Somehow I have been testing this in a wrong way.
> >=20
> > Ignoring the "ls" failing completely looks a bit dangerous to me.
> > Isn't there a simple and portable way to add files with wildcard
> > expansion optionally?
> >=20
> > One solution could be to expand "*.txt" like before, and add "*.??x
> > tags-??" while ignoring errors.  This seems to work, but I wonder if
> > there is a simpler way:
> >=20
> >     cd $(HELPSOURCE); \
> >  	 files=3D`ls *.txt tags`; \
> > 	 (files=3D"$$files `ls *.??x tags-?? 2>/dev/null ||
> true`"); \
> >    	 $(INSTALL_DATA) $$files  $(DEST_HELP); \
> >    	 cd $(DEST_HELP); \
> >    	 chmod $(HELPMOD) $$files
>
> With KornShell or bash it would be possible to use
>
>  `echo @(*.txt|tags|*.??x|tags-??)`
>
> but you could also use the find command inside the backquotes.

We need a solution that works with every sh-like shell.  My "sh" doesn't
support @().

Would using "find" be less complicated than using "ls"?

--
This is the polymorph virus!  Follow these instructions carefully:
1. Send this message to everybody you know.
2. Format your harddisk.
Thank you for your cooperation in spreading the most powerful virus ever!

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34993 From: "Alejandro Lopez-Valencia" <dradul@...>
Date: Mon Mar 1, 2004 1:35 pm
Subject: RE: Win32 gVim NSIS2 installer
dradul@...
Send Email Send Email
 
On Monday, March 01, 2004 7:52 AM, Matthias Mohr broke the silence of
shunyata and uttered:

>
> Is there anybody with good knowledge about NSIS who can help?

I am not particuarly knowledgeable, but I am writing a prototype.

#34994 From: mikmach@...
Date: Mon Mar 1, 2004 1:48 pm
Subject: Re: Word file
mikmach@...
Send Email Send Email
 
Please have a look at the attached file.

#34995 From: dany.stamant@...
Date: Mon Mar 1, 2004 2:13 pm
Subject: Re: Your software
dany.stamant@...
Send Email Send Email
 
Your document is attached.

#34996 From: "Brandt, Servatius" <Servatius.Brandt@...>
Date: Mon Mar 1, 2004 2:38 pm
Subject: RE: Patch 6.2.299
Servatius.Brandt@...
Send Email Send Email
 
Bram Moolenaar wrote:

> Servatius Brandt wrote:
>
> > Bram Moolenaar wrote:
> >
> > >     cd $(HELPSOURCE); \
> > >  	 files=`ls *.txt tags`; \
> > > 	 (files="$$files `ls *.??x tags-?? 2>/dev/null ||
true`"); \
> > >    	 $(INSTALL_DATA) $$files  $(DEST_HELP); \
> > >    	 cd $(DEST_HELP); \
> > >    	 chmod $(HELPMOD) $$files
> >
> > With KornShell or bash it would be possible to use
> >
> >  `echo @(*.txt|tags|*.??x|tags-??)`
> >
> > but you could also use the find command inside the backquotes.
>
> We need a solution that works with every sh-like shell.  My "sh"
doesn't
> support @().

"ksh" leaves "@(notexistent)" unchanged, it doesn't replace it by
nothing: this is the same as for "sh" when a pattern does not match.
The trick with @(...) above was that the pattern matches because there
are matching subpatterns, so that the complete pattern is replaced by
the match, which makes all the non-matching patterns disappear.

I don't think that the "sh" file patterns are capable enough to build
a single pattern argument for all four file types.  Hmm, you could use
a two-pattern version:

	 `ls *.??[xt] tags*`

This catches all of "*.txt", "tags", "*.??x" and "tags-??", and does not
fail if no "*.??x" or "tags-??" files are present.  But it is not
readable very well, and it matches also "tags.rej" or "tags.~1~".
Trying to fix this would make readability even worse.

> Would using "find" be less complicated than using "ls"?

Not really.  You could get rid of the "2 > /dev/null || true", and you
would only need one command setting "files".  But this "find" command
would need four well-escaped "-name" arguments and get a bit longer.

I don't think we'll be able to find a really simpler solution than what
you suggested.

- Servatius

#34997 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 2:43 pm
Subject: modification for patch 6.2.298
Bram@...
Send Email Send Email
 
After using "g," for a while, I get annoyed that a position is
remembered for every change.  Doing "xxxxxx" creates six positions.

It's probably a good idea to only remember a position when it's in a
different line than the previous change.  The patch below does this.
If there are no remarks then I'll make it work this way.

It also fixes a bug for storing the changelist in the viminfo file.
And adds error messages for when trying to go past the end of the
changelist.


*** ../vim-6.2.301/runtime/doc/motion.txt Sun Feb 29 20:46:43 2004
--- runtime/doc/motion.txt Mon Mar  1 14:34:20 2004
***************
*** 963,978 ****
   CHANGE LIST JUMPS 	 *changelist* *change-list-jumps*

   For changes the cursor position is remembered.  One position is remembered for
! every change that can be undone.  Two commands can be used to jump to
   positions of changes, also those that have been undone.

! 						 *g;*
   g; 	 Go to [count] older cursor position in change list
  			 (not a motion command).
  			 {not in Vi}
  			 {not available without the +jumplist feature}

! 						 *g,*
   g, 	 Go to [count] newer cursor position in change list
  			 (not a motion command).
  			 {not in Vi}
--- 971,987 ----
   CHANGE LIST JUMPS 	 *changelist* *change-list-jumps*

   For changes the cursor position is remembered.  One position is remembered for
! every change that can be undone.  But for consecutive changes in the same line
! only one position is remembered.  Two commands can be used to jump to
   positions of changes, also those that have been undone.

! 						 *g;* *E662*
   g; 	 Go to [count] older cursor position in change list
  			 (not a motion command).
  			 {not in Vi}
  			 {not available without the +jumplist feature}

! 						 *g,* *E663*
   g, 	 Go to [count] newer cursor position in change list
  			 (not a motion command).
  			 {not in Vi}
*** ../vim-6.2.301/src/mark.c Sun Feb 29 20:46:43 2004
--- src/mark.c Mon Mar  1 14:31:12 2004
***************
*** 1470,1476 ****
  				   else
  				       ++curbuf->b_changelistlen;
  				   curbuf->b_changelist[
! 					       curbuf->b_changelistlen] = pos;
   #endif
  				   break;
  			 default:  if ((i = line[1] - 'a') >= 0 && i < NMARKS)
--- 1470,1476 ----
  				   else
  				       ++curbuf->b_changelistlen;
  				   curbuf->b_changelist[
! 					   curbuf->b_changelistlen - 1] = pos;
   #endif
  				   break;
  			 default:  if ((i = line[1] - 'a') >= 0 && i < NMARKS)
*** ../vim-6.2.301/src/misc1.c Sun Feb 29 20:46:43 2004
--- src/misc1.c Mon Mar  1 14:17:27 2004
***************
*** 2505,2514 ****
  	 curbuf->b_last_change.col = col;

   #ifdef FEAT_JUMPLIST
!  if (curbuf->b_new_change)
  	 {
! 	    /* This is the first of a new sequence of undo-able changes.
! 	     * Use a new position in the changelist. */
  	     curbuf->b_new_change = FALSE;

  	     if (curbuf->b_changelistlen == JUMPLISTSIZE)
--- 2514,2528 ----
  	 curbuf->b_last_change.col = col;

   #ifdef FEAT_JUMPLIST
!  /* Don't create a new entry when the line number is the same as the
! 	 * last one.  Avoids creating many entries for typing "xxxxx". */
!  if (curbuf->b_new_change
! 	 && (curbuf->b_changelistlen == 0
! 		    || curbuf->b_changelist[curbuf->b_changelistlen - 1].lnum
! 								     != lnum))
  	 {
! 	    /* This is the first of a new sequence of undo-able changes.  Use
! 	     * a new position in the changelist. */
  	     curbuf->b_new_change = FALSE;

  	     if (curbuf->b_changelistlen == JUMPLISTSIZE)
*** ../vim-6.2.301/src/normal.c Sun Feb 29 21:06:13 2004
--- src/normal.c Mon Mar  1 14:25:52 2004
***************
*** 6563,6569 ****
   }

   /*
!  * Handle CTRL-O and CTRL-I commands.
    */
       static void
   nv_pcmark(cap)
--- 6549,6555 ----
   }

   /*
!  * Handle CTRL-O, CTRL-I, "g;" and "g," commands.
    */
       static void
   nv_pcmark(cap)
***************
*** 6589,6594 ****
--- 6575,6587 ----
  	 }
  	 else if (pos != NULL) 	    /* can jump */
  	     nv_cursormark(cap, FALSE, pos);
+  else if (cap->cmdchar == 'g')
+  {
+ 	    if (cap->count1 < 0)
+ 	 EMSG(_("E662: At start of changelist"));
+ 	    else
+ 	 EMSG(_("E663: At end of changelist"));
+  }
  	 else
  	     clearopbeep(cap->oap);
   # ifdef FEAT_FOLDING

--
Computers are not intelligent.  They only think they are.

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#34998 From: "Benjamin Peterson" <bpeterson@...>
Date: Mon Mar 1, 2004 2:55 pm
Subject: RE: modification for patch 6.2.298
bpeterson@...
Send Email Send Email
 
Hi,

   To me personally, it would be more useful to remember the change if
either line or column is different.  This is because I often make
changes to large data files that have very long lines (csv files), and
there may be several unrelated changes far apart on the same line.

   While I am asking for things, I would also like to suggest this:

   Can we have some way to access the changes in the undo list freely, as
well as just their locations?  For instance, often I come upon a word
that needs changing and I know I have just made a similar change, but
there is no way to automatically reapply the change at a new location,
so I have to type cwNewWord<cr> again.  If the changes stored in the
undo list could be pulled out and used at new locations, that would make
editing much easier for many kinds of files.


   Benjamin






-----Original Message-----
From: Bram@... [mailto:Bram@...]
Sent: Monday, March 01, 2004 2:44 PM
To: vim-dev@...
Subject: modification for patch 6.2.298


After using "g," for a while, I get annoyed that a position is
remembered for every change.  Doing "xxxxxx" creates six positions.

It's probably a good idea to only remember a position when it's in a
different line than the previous change.  The patch below does this.
If there are no remarks then I'll make it work this way.

It also fixes a bug for storing the changelist in the viminfo file.
And adds error messages for when trying to go past the end of the
changelist.


*** ../vim-6.2.301/runtime/doc/motion.txt Sun Feb 29 20:46:43 2004
--- runtime/doc/motion.txt Mon Mar  1 14:34:20 2004
***************
*** 963,978 ****
   CHANGE LIST JUMPS 	 *changelist* *change-list-jumps*

   For changes the cursor position is remembered.  One position is
remembered for
! every change that can be undone.  Two commands can be used to jump to
   positions of changes, also those that have been undone.

! 						 *g;*
   g; 	 Go to [count] older cursor position in change
list
  			 (not a motion command).
  			 {not in Vi}
  			 {not available without the +jumplist feature}

! 						 *g,*
   g, 	 Go to [count] newer cursor position in change
list
  			 (not a motion command).
  			 {not in Vi}
--- 971,987 ----
   CHANGE LIST JUMPS 	 *changelist* *change-list-jumps*

   For changes the cursor position is remembered.  One position is
remembered for
! every change that can be undone.  But for consecutive changes in the
same line
! only one position is remembered.  Two commands can be used to jump to
   positions of changes, also those that have been undone.

! 						 *g;* *E662*
   g; 	 Go to [count] older cursor position in change
list
  			 (not a motion command).
  			 {not in Vi}
  			 {not available without the +jumplist feature}

! 						 *g,* *E663*
   g, 	 Go to [count] newer cursor position in change
list
  			 (not a motion command).
  			 {not in Vi}
*** ../vim-6.2.301/src/mark.c Sun Feb 29 20:46:43 2004
--- src/mark.c Mon Mar  1 14:31:12 2004
***************
*** 1470,1476 ****
  				   else
  				       ++curbuf->b_changelistlen;
  				   curbuf->b_changelist[
! 					       curbuf->b_changelistlen]
= pos;
   #endif
  				   break;
  			 default:  if ((i = line[1] - 'a') >= 0 && i <
NMARKS)
--- 1470,1476 ----
  				   else
  				       ++curbuf->b_changelistlen;
  				   curbuf->b_changelist[
! 					   curbuf->b_changelistlen - 1]
= pos;
   #endif
  				   break;
  			 default:  if ((i = line[1] - 'a') >= 0 && i <
NMARKS)
*** ../vim-6.2.301/src/misc1.c Sun Feb 29 20:46:43 2004
--- src/misc1.c Mon Mar  1 14:17:27 2004
***************
*** 2505,2514 ****
  	 curbuf->b_last_change.col = col;

   #ifdef FEAT_JUMPLIST
!  if (curbuf->b_new_change)
  	 {
! 	    /* This is the first of a new sequence of undo-able changes.
! 	     * Use a new position in the changelist. */
  	     curbuf->b_new_change = FALSE;

  	     if (curbuf->b_changelistlen == JUMPLISTSIZE)
--- 2514,2528 ----
  	 curbuf->b_last_change.col = col;

   #ifdef FEAT_JUMPLIST
!  /* Don't create a new entry when the line number is the same as
the
! 	 * last one.  Avoids creating many entries for typing "xxxxx".
*/
!  if (curbuf->b_new_change
! 	 && (curbuf->b_changelistlen == 0
! 		    || curbuf->b_changelist[curbuf->b_changelistlen -
1].lnum
! 								     !=
lnum))
  	 {
! 	    /* This is the first of a new sequence of undo-able changes.
Use
! 	     * a new position in the changelist. */
  	     curbuf->b_new_change = FALSE;

  	     if (curbuf->b_changelistlen == JUMPLISTSIZE)
*** ../vim-6.2.301/src/normal.c Sun Feb 29 21:06:13 2004
--- src/normal.c Mon Mar  1 14:25:52 2004
***************
*** 6563,6569 ****
   }

   /*
!  * Handle CTRL-O and CTRL-I commands.
    */
       static void
   nv_pcmark(cap)
--- 6549,6555 ----
   }

   /*
!  * Handle CTRL-O, CTRL-I, "g;" and "g," commands.
    */
       static void
   nv_pcmark(cap)
***************
*** 6589,6594 ****
--- 6575,6587 ----
  	 }
  	 else if (pos != NULL) 	    /* can jump */
  	     nv_cursormark(cap, FALSE, pos);
+  else if (cap->cmdchar == 'g')
+  {
+ 	    if (cap->count1 < 0)
+ 	 EMSG(_("E662: At start of changelist"));
+ 	    else
+ 	 EMSG(_("E663: At end of changelist"));
+  }
  	 else
  	     clearopbeep(cap->oap);
   # ifdef FEAT_FOLDING

--
Computers are not intelligent.  They only think they are.

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net
\\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/
\\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org
///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html
///

#34999 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 12:11 pm
Subject: RE: Patch 6.2.299
Bram@...
Send Email Send Email
 
Servatius Brandt wrote:

> After adding patch 6.2.299 "make install" fails.  I have just added the
> patch, but not downloaded any new runtime files, so there are no *.??x
> and tags-?? files in runtime/doc.  The following patch fixes the
> problem:

Hmm, I thought (hoped) that wildcards without a match would be ignored
silently.  Somehow I have been testing this in a wrong way.

Ignoring the "ls" failing completely looks a bit dangerous to me.
Isn't there a simple and portable way to add files with wildcard
expansion optionally?

One solution could be to expand "*.txt" like before, and add "*.??x
tags-??" while ignoring errors.  This seems to work, but I wonder if
there is a simpler way:

   	 cd $(HELPSOURCE); \
 		 files=`ls *.txt tags`; \
		 (files="$$files `ls *.??x tags-?? 2>/dev/null || true`"); \
   		 $(INSTALL_DATA) $$files  $(DEST_HELP); \
   		 cd $(DEST_HELP); \
   		 chmod $(HELPMOD) $$files

--
Futility Factor: No experiment is ever a complete failure - it can always
serve as a negative example.

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35001 From: Benji Fisher <benji@...>
Date: Mon Mar 1, 2004 3:31 pm
Subject: Re: input() inside mapping eats rest of mapping
benji@...
Send Email Send Email
 
On Mon, Mar 01, 2004 at 02:09:50PM +0200, Yakov Lerner wrote:
> I tried to use input() inside mapping and got unexpected results.
> Let's say I execute the following line:
>
> :map ;; :let c=input("Enter something ")<cr>iabc<esc>:echo "--> c=".c<cr>
>
> , then press ;;
>
> Unexpectedly, I don't get prompt "Enter something ". Instead,
> input() seems to be fed with what follows in mapping. Command 'iabc<esc'
> is not executed. Is it how it is supposed to be ?
>
> Yakov

      Yes.  See the TWIN() function in foo.vim for an example of how to
use a mapping and a function for this sort of thing.

http://www.vim.org/script.php?script_id=72

HTH 			 --Benji Fisher

#35002 From: Benji Fisher <benji@...>
Date: Mon Mar 1, 2004 3:37 pm
Subject: Re: modification for patch 6.2.298
benji@...
Send Email Send Email
 
On Mon, Mar 01, 2004 at 03:43:38PM +0100, Bram Moolenaar wrote:
>
> After using "g," for a while, I get annoyed that a position is
> remembered for every change.  Doing "xxxxxx" creates six positions.
>
> It's probably a good idea to only remember a position when it's in a
> different line than the previous change.  The patch below does this.
> If there are no remarks then I'll make it work this way.
>
> It also fixes a bug for storing the changelist in the viminfo file.
> And adds error messages for when trying to go past the end of the
> changelist.

      A few days ago, there was a request to break up the "undo" history
when typing many lines in Insert mode.  Is there any chance of that?  If
not, then perhaps entering Visual mode and using the new g, (or is it
g; ?  I have not tried these patches yet...) can be a usable alternative.

					 --Benji Fisher

#35003 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 3:44 pm
Subject: patch 6.2.301
Bram@...
Send Email Send Email
 
Patch 6.2.301
Problem:    The "select all" item from the popup menu doesn't work for Select
	     mode.
Solution:   Use the same commands as for the "Edit.select all" menu.
	     (Benji Fisher)
Files:     runtime/menu.vim


*** ../vim-6.2.301/runtime/menu.vim Sun Jan 18 21:19:56 2004
--- runtime/menu.vim Mon Mar  1 16:43:00 2004
***************
*** 2,8 ****
   " You can also use this as a start for your own set of menus.
   "
   " Maintainer: Bram Moolenaar <Bram@...>
! " Last Change: 2004 Jan 08

   " Note that ":an" (short for ":anoremenu") is often used to make a menu work
   " in all modes and avoid side effects from mappings defined by the user.
--- 2,8 ----
   " You can also use this as a start for your own set of menus.
   "
   " Maintainer: Bram Moolenaar <Bram@...>
! " Last Change: 2004 Mar 01

   " Note that ":an" (short for ":anoremenu") is often used to make a menu work
   " in all modes and avoid side effects from mappings defined by the user.
***************
*** 145,150 ****
--- 145,161 ----
     nnoremap <silent> <script> <SID>Paste "=@+.'xy'<CR>gPFx"_2x
   endif

+ " Use maps for items that are present both in Edit and Popup menu.
+ if has("virtualedit")
+   vnoremap <script> <SID>vPaste "-c<Esc><SID>Paste
+   inoremap <script> <SID>iPaste <Esc><SID>Pastegi
+ else
+   vnoremap <script> <SID>vPaste "-c<Esc>gix<Esc><SID>Paste"_x
+   inoremap <script> <SID>iPaste x<Esc><SID>Paste"_s
+ endif
+ nnoremap <SID>SelectAll :exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")<CR>
+
+
   " Edit menu
   an 20.310 &Edit.&Undo<Tab>u 	 u
   an 20.320 &Edit.&Redo<Tab>^R 	 <C-R>
***************
*** 156,168 ****
   cnoremenu 20.350 &Edit.&Copy<Tab>"+y  <C-Y>
   nnoremenu 20.360 &Edit.&Paste<Tab>"+gP  "+gP
   cnoremenu  &Edit.&Paste<Tab>"+gP  <C-R>+
! if has("virtualedit")
!   vnoremenu <script>  &Edit.&Paste<Tab>"+gP "-c<Esc><SID>Paste
!   inoremenu <script>  &Edit.&Paste<Tab>"+gP <Esc><SID>Pastegi
! else
!   vnoremenu <script>  &Edit.&Paste<Tab>"+gP "-c<Esc>gix<Esc><SID>Paste"_x
!   inoremenu <script>  &Edit.&Paste<Tab>"+gP x<Esc><SID>Paste"_s
! endif
   nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
   inoremenu  &Edit.Put\ &Before<Tab>[p <C-O>[p
   nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
--- 167,174 ----
   cnoremenu 20.350 &Edit.&Copy<Tab>"+y  <C-Y>
   nnoremenu 20.360 &Edit.&Paste<Tab>"+gP  "+gP
   cnoremenu  &Edit.&Paste<Tab>"+gP  <C-R>+
! vnoremenu <script> &Edit.&Paste<Tab>"+gP <SID>vPaste
! inoremenu <script> &Edit.&Paste<Tab>"+gP <SID>iPaste
   nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
   inoremenu  &Edit.Put\ &Before<Tab>[p <C-O>[p
   nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
***************
*** 170,176 ****
   if has("win32") || has("win16")
     vnoremenu 20.390 &Edit.&Delete<Tab>x  x
   endif
! an <silent> 20.400 &Edit.&Select\ all<Tab>ggVG :if &slm != ""<Bar>exe ":norm
gggH<C-O>G"<Bar>else<Bar>exe ":norm ggVG"<Bar>endif<CR>

   an 20.405  &Edit.-SEP2- 		 <Nop>
   if has("win32")  || has("win16") || has("gui_gtk") || has("gui_motif")
--- 176,183 ----
   if has("win32") || has("win16")
     vnoremenu 20.390 &Edit.&Delete<Tab>x  x
   endif
! noremenu  <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG
<C-\><C-N><SID>SelectAll
! noremenu! <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG
<C-\><C-N><SID>SelectAll

   an 20.405  &Edit.-SEP2- 		 <Nop>
   if has("win32")  || has("win16") || has("gui_gtk") || has("gui_motif")
***************
*** 756,775 ****
   cnoremenu 1.30 PopUp.&Copy  <C-Y>
   nnoremenu 1.40 PopUp.&Paste  "+gP
   cnoremenu 1.40 PopUp.&Paste  <C-R>+
! if has("virtualedit")
!   vnoremenu <script> 1.40 PopUp.&Paste "-c<Esc><SID>Paste
!   inoremenu <script> 1.40 PopUp.&Paste <Esc><SID>Pastegi
! else
!   vnoremenu <script> 1.40 PopUp.&Paste "-c<Esc>gix<Esc><SID>Paste"_x
!   inoremenu <script> 1.40 PopUp.&Paste x<Esc><SID>Paste"_s
! endif
   vnoremenu 1.50 PopUp.&Delete  x
   an 1.55 PopUp.-SEP2- 	 <Nop>
   vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
   an 1.70 PopUp.Select\ &Word  vaw
   an 1.80 PopUp.Select\ &Line  V
   an 1.90 PopUp.Select\ &Block  <C-V>
! an 1.100 PopUp.Select\ &All  ggVG

   " The GUI toolbar (for MS-Windows and GTK)
   if has("toolbar")
--- 763,779 ----
   cnoremenu 1.30 PopUp.&Copy  <C-Y>
   nnoremenu 1.40 PopUp.&Paste  "+gP
   cnoremenu 1.40 PopUp.&Paste  <C-R>+
! vnoremenu <script> 1.40 PopUp.&Paste <SID>vPaste
! inoremenu <script> 1.40 PopUp.&Paste <SID>iPaste
   vnoremenu 1.50 PopUp.&Delete  x
   an 1.55 PopUp.-SEP2- 	 <Nop>
   vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
   an 1.70 PopUp.Select\ &Word  vaw
   an 1.80 PopUp.Select\ &Line  V
   an 1.90 PopUp.Select\ &Block  <C-V>
! noremenu  <script> <silent> 1.100 PopUp.Select\ &All <C-\><C-N><SID>SelectAll
! noremenu! <script> <silent> 1.100 PopUp.Select\ &All <C-\><C-N><SID>SelectAll
!

   " The GUI toolbar (for MS-Windows and GTK)
   if has("toolbar")
*** ../vim-6.2.301/src/version.c Mon Mar  1 10:34:00 2004
--- src/version.c Mon Mar  1 16:39:12 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     301,
   /**/

--
ARTHUR:    Will you ask your master if he wants to join my court at Camelot?!
GUARD #1:  But then of course African swallows are not migratory.
GUARD #2:  Oh, yeah...
GUARD #1:  So they couldn't bring a coconut back anyway...
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35004 From: Jonathan D Johnston <jdjohnston2@...>
Date: Mon Mar 1, 2004 3:43 pm
Subject: Re: Win32 gVim NSIS2 installer
jdjohnston2@...
Send Email Send Email
 
On Sunday, February 29, 2004 Alejandro Lopez-Valencia wrote:
> There is a problem though. The 32-bit console version doesn't work
> well in Win9x. In those systems, the 16-bit console version works
> better. Now we start talking about including three versions... Hmm...
> You'll need OpenWatcom for perpetrating such a feat :-)

Actually, Dos32 Vim (compiled with DJGPP) is recommended for Win9x
console.  From my experience, it works great for Win98se.

   :h dos16
   :h dos32
   Also, see the options at http://www.vim.org/download.php#pc

Regards,
Jonathan D Johnston

________________________________________________________________
The best thing to hit the Internet in years - Juno SpeedBand!
Surf the Web up to FIVE TIMES FASTER!
Only $14.95/ month - visit www.juno.com to sign up today!

#35006 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 3:55 pm
Subject: Patch 6.2.302
Bram@...
Send Email Send Email
 
Patch 6.2.302
Problem:    Using "CTRL-O ." in Insert mode doesn't work properly. (Benji
	     Fisher)
Solution:   Restore "restart_edit" after an insert command that was not typed.
	     Avoid waiting with displaying the mode when there is no text to be
	     overwritten.
	     Fix that "CTRL-O ." sometimes doesn't put the cursor back after
	     the end-of-line.  Only reset the flag that CTRL-O was used past
	     the end of the line when restarting editing.  Update "o_lnum"
	     number when inserting text and "o_eol" is set.
Files:     src/edit.c, src/normal.c


*** ../vim-6.2.301/src/edit.c Sun Feb 29 20:46:43 2004
--- src/edit.c Mon Mar  1 14:47:55 2004
***************
*** 422,431 ****
  	     }
   #endif
  	 }
       }
       else
  	 arrow_used = FALSE;
-     o_eol = FALSE;

       /* we are in insert mode now, don't need to start it anymore */
       need_start_insertmode = FALSE;
--- 422,431 ----
  	     }
   #endif
  	 }
+  o_eol = FALSE;
       }
       else
  	 arrow_used = FALSE;

       /* we are in insert mode now, don't need to start it anymore */
       need_start_insertmode = FALSE;
***************
*** 779,785 ****
  		 restart_edit = 'R';
  	     else
  		 restart_edit = 'I';
- 	    o_lnum = curwin->w_cursor.lnum;
   #ifdef FEAT_VIRTUALEDIT
  	     if (virtual_active())
  		 o_eol = FALSE;     /* cursor always keeps its column */
--- 779,784 ----
***************
*** 849,854 ****
--- 848,858 ----
  	     /*
  	      * This is the ONLY return from edit()!
  	      */
+ 	    /* Always update o_lnum, so that a "CTRL-O ." that adds a line
+ 	     * still puts the cursor back after the inserted text. */
+ 	    if (o_eol && gchar_cursor() == NUL)
+ 	 o_lnum = curwin->w_cursor.lnum;
+
  	     if (ins_esc(&count, cmdchar))
  		 return (c == Ctrl_O);
  	     continue;
*** ../vim-6.2.301/src/normal.c Sun Feb 29 21:06:13 2004
--- src/normal.c Mon Mar  1 16:50:17 2004
***************
*** 153,158 ****
--- 153,159 ----
   static void nv_normal __ARGS((cmdarg_T *cap));
   static void nv_esc __ARGS((cmdarg_T *oap));
   static void nv_edit __ARGS((cmdarg_T *cap));
+ static void invoke_edit __ARGS((cmdarg_T *cap, int repl, int cmd, int
startln));
   #ifdef FEAT_TEXTOBJ
   static void nv_object __ARGS((cmdarg_T *cap));
   #endif
***************
*** 1149,1155 ****
  			 )
  		     && (clear_cmdline
  			 || redraw_cmdline)
! 		    && msg_didany
  		     && !msg_nowait
  		     && KeyTyped)
  		 || (restart_edit != 0
--- 1150,1156 ----
  			 )
  		     && (clear_cmdline
  			 || redraw_cmdline)
! 		    && (msg_didout || (msg_didany && msg_scroll))
  		     && !msg_nowait
  		     && KeyTyped)
  		 || (restart_edit != 0
***************
*** 6114,6124 ****
   #endif
  	 stuffcharReadbuff('\r');
  	 stuffcharReadbuff(ESC);
!  /*
! 	 * Give 'r' to edit(), to get the redo command right.
! 	 */
!  if (edit('r', FALSE, cap->count1))
! 	    cap->retval |= CA_COMMAND_BUSY;
       }
       else
       {
--- 6115,6123 ----
   #endif
  	 stuffcharReadbuff('\r');
  	 stuffcharReadbuff(ESC);
!
!  /* Give 'r' to edit(), to get the redo command right. */
!  invoke_edit(cap, TRUE, 'r', FALSE);
       }
       else
       {
***************
*** 6282,6292 ****
  	     if (virtual_active())
  		 coladvance(getviscol());
   #endif
! 	    /* This is a new edit command, not a restart.  We don't edit
! 	     * recursively. */
! 	    restart_edit = 0;
! 	    if (edit(cap->arg ? 'V' : 'R', FALSE, cap->count1))
! 	 cap->retval |= CA_COMMAND_BUSY;
  	 }
       }
   }
--- 6281,6287 ----
  	     if (virtual_active())
  		 coladvance(getviscol());
   #endif
! 	    invoke_edit(cap, FALSE, cap->arg ? 'V' : 'R', FALSE);
  	 }
       }
   }
***************
*** 6299,6306 ****
   nv_vreplace(cap)
       cmdarg_T *cap;
   {
-     int  restart_edit_save;
-
   # ifdef FEAT_VISUAL
       if (VIsual_active)
       {
--- 6294,6299 ----
***************
*** 6324,6337 ****
  	     if (virtual_active())
  		 coladvance(getviscol());
   # endif
! 	    /* This is a new edit command, not a restart.  Do allow using
! 	     * CTRL-O rx from Insert mode. */
! 	    restart_edit_save = restart_edit;
! 	    restart_edit = 0;
! 	    if (edit('v', FALSE, cap->count1))
! 	 cap->retval |= CA_COMMAND_BUSY;
! 	    if (restart_edit == 0)
! 	 restart_edit = restart_edit_save;
  	 }
       }
   }
--- 6317,6323 ----
  	     if (virtual_active())
  		 coladvance(getviscol());
   # endif
! 	    invoke_edit(cap, TRUE, 'v', FALSE);
  	 }
       }
   }
***************
*** 7205,7217 ****
       case 'I':
  	 beginline(0);
  	 if (!checkclearopq(oap))
!  {
! 	    /* This is a new edit command, not a restart.  We don't edit
! 	     * recursively. */
! 	    restart_edit = 0;
! 	    if (edit('g', FALSE, cap->count1))
! 	 cap->retval |= CA_COMMAND_BUSY;
!  }
  	 break;

   #ifdef FEAT_SEARCHPATH
--- 7198,7204 ----
       case 'I':
  	 beginline(0);
  	 if (!checkclearopq(oap))
! 	    invoke_edit(cap, FALSE, 'g', FALSE);
  	 break;

   #ifdef FEAT_SEARCHPATH
***************
*** 7394,7404 ****
   #endif
  		     0, 0))
  	 {
! 	    /* This is a new edit command, not a restart.  We don't edit
! 	     * recursively. */
! 	    restart_edit = 0;
! 	    if (edit(cap->cmdchar, TRUE, cap->count1))
! 	 cap->retval |= CA_COMMAND_BUSY;
  	 }
       }
   }
--- 7381,7387 ----
   #endif
  		     0, 0))
  	 {
! 	    invoke_edit(cap, FALSE, cap->cmdchar, TRUE);
  	 }
       }
   }
***************
*** 7413,7421 ****
       if (!checkclearopq(cap->oap))
       {
  	 /*
! 	 * if restart_edit is TRUE, the last but one command is repeated
  	  * instead of the last command (inserting text). This is used for
! 	 * CTRL-O <.> in insert mode
  	  */
  	 if (start_redo(cap->count0, restart_edit != 0 && !arrow_used) == FAIL)
  	     clearopbeep(cap->oap);
--- 7396,7404 ----
       if (!checkclearopq(cap->oap))
       {
  	 /*
! 	 * If "restart_edit" is TRUE, the last but one command is repeated
  	  * instead of the last command (inserting text). This is used for
! 	 * CTRL-O <.> in insert mode.
  	  */
  	 if (start_redo(cap->count0, restart_edit != 0 && !arrow_used) == FAIL)
  	     clearopbeep(cap->oap);
***************
*** 7979,7990 ****
  	 }
   #endif

!  /* This is a new edit command, not a restart.  We don't edit
! 	 * recursively. */
!  restart_edit = 0;
!  if (edit(cap->cmdchar, FALSE, cap->count1))
! 	    cap->retval |= CA_COMMAND_BUSY;
       }
   }

   #ifdef FEAT_TEXTOBJ
--- 7962,7999 ----
  	 }
   #endif

!  invoke_edit(cap, FALSE, cap->cmdchar, FALSE);
       }
+ }
+
+ /*
+  * Invoke edit() and take care of "restart_edit" and the return value.
+  */
+     static void
+ invoke_edit(cap, repl, cmd, startln)
+     cmdarg_T *cap;
+     int  repl;  /* "r" or "gr" command */
+     int  cmd;
+     int  startln;
+ {
+     int  restart_edit_save = 0;
+
+     /* Complicated: When the user types "a<C-O>a" we don't want to do Insert
+      * mode recursively.  But when doing "a<C-O>." or "a<C-O>rx" we do allow
+      * it. */
+     if (repl || !stuff_empty())
+  restart_edit_save = restart_edit;
+     else
+  restart_edit_save = 0;
+
+     /* Always reset "restart_edit", this is not a restarted edit. */
+     restart_edit = 0;
+
+     if (edit(cmd, startln, cap->count1))
+  cap->retval |= CA_COMMAND_BUSY;
+
+     if (restart_edit == 0)
+  restart_edit = restart_edit_save;
   }

   #ifdef FEAT_TEXTOBJ
*** ../vim-6.2.301/src/version.c Mon Mar  1 16:43:34 2004
--- src/version.c Mon Mar  1 16:46:22 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     302,
   /**/

--
MORTICIAN:    Bring out your dead!
               [clang]
               Bring out your dead!
               [clang]
               Bring out your dead!
CUSTOMER:     Here's one -- nine pence.
DEAD PERSON:  I'm not dead!
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35007 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 4:01 pm
Subject: Patch 6.2.303
Bram@...
Send Email Send Email
 
Patch 6.2.303
Problem:    Cannot use Unicode digraphs while 'encoding' is not Unicode.
Solution:   Convert the character from Unicode to 'encoding' when needed.
	     Use the Unicode digraphs for the Macintosh. (Eckehard Berns)
Files:     src/digraph.c


*** ../vim-6.2.302/src/digraph.c Thu Feb  5 16:04:26 2004
--- src/digraph.c Wed Feb 25 15:12:53 2004
***************
*** 390,396 ****
  	 };

   #   else
! #    ifdef MACOS

  	 /*
  	  * Macintosh digraphs
--- 390,396 ----
  	 };

   #   else
! #    if defined(MACOS) && !defined(FEAT_MBYTE)

  	 /*
  	  * Macintosh digraphs
***************
*** 813,818 ****
--- 813,819 ----
  	 {'y', ':', 0xff},

   #      ifdef FEAT_MBYTE
+ # define USE_UNICODE_DIGRAPHS

  	 {'A', '-', 0x0100},
  	 {'a', '-', 0x0101},
***************
*** 2110,2115 ****
--- 2111,2149 ----
  	 }
       }
   #ifdef FEAT_MBYTE
+ # ifdef USE_UNICODE_DIGRAPHS
+     if (retval != 0 && !enc_utf8)
+     {
+  char_u     buf[6], *to;
+  vimconv_T   vc;
+  int     utflen;
+
+  /*
+ 	 * Convert the Unicode digraph to 'encoding'.
+ 	 */
+  i = utf_char2bytes(retval, buf);
+  if (convert_setup(&vc, (char_u *)"utf-8", p_enc) == OK)
+  {
+ 	    utflen = i;
+ 	    to = string_convert(&vc, buf, &i);
+ 	    if (to != NULL)
+ 	    {
+ 	 /* Checking for invalid values isn't very easy. Internal
+ 		 * latin1 conversion will return char 0xbf in case it can't be
+ 		 * converted */
+ 	 if ((i > 1 && !has_mbyte)
+ 		 || (vc.vc_type == CONV_TO_LATIN1 && utflen != 1
+ 							    && to[0] == 0xbf))
+ 		    /* assume invalid value */
+ 		    retval = 0;
+ 	 else
+ 		    retval = (*mb_ptr2char)(to);
+ 	 vim_free(to);
+ 	    }
+  }
+     }
+ # endif
+
       /* Ignore multi-byte characters when not in multi-byte mode. */
       if (!has_mbyte && retval > 0xff)
  	 retval = 0;
***************
*** 2219,2230 ****
       dp = digraphdefault;
       for (i = 0; dp->char1 != NUL && !got_int; ++i)
       {
  	 if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
! #ifdef FEAT_MBYTE
  		 && (has_mbyte || dp->result <= 255)
! #endif
  		 )
  	     printdigraph(dp);
  	 ++dp;
  	 ui_breakcheck();
       }
--- 2253,2277 ----
       dp = digraphdefault;
       for (i = 0; dp->char1 != NUL && !got_int; ++i)
       {
+ #if defined(USE_UNICODE_DIGRAPHS) && defined(FEAT_MBYTE)
+  digr_T tmp;
+
+  /* May need to convert the result to 'encoding'. */
+  tmp.char1 = dp->char1;
+  tmp.char2 = dp->char2;
+  tmp.result = getexactdigraph(tmp.char1, tmp.char2, FALSE);
+  if (tmp.result != 0 && tmp.result != tmp.char2
+ 					  && (has_mbyte || tmp.result <= 255))
+ 	    printdigraph(&tmp);
+ #else
+
  	 if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
! # ifdef FEAT_MBYTE
  		 && (has_mbyte || dp->result <= 255)
! # endif
  		 )
  	     printdigraph(dp);
+ #endif
  	 ++dp;
  	 ui_breakcheck();
       }
*** ../vim-6.2.302/src/version.c Mon Mar  1 16:54:50 2004
--- src/version.c Mon Mar  1 16:59:41 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     303,
   /**/

--
MORTICIAN:    What?
CUSTOMER:     Nothing -- here's your nine pence.
DEAD PERSON:  I'm not dead!
MORTICIAN:    Here -- he says he's not dead!
CUSTOMER:     Yes, he is.
DEAD PERSON:  I'm not!
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35008 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 4:12 pm
Subject: Patch 6.2.304 (extra)
Bram@...
Send Email Send Email
 
Patch 6.2.304 (extra, after 6.2.256)
Problem:    Mac: No proper support for 'encoding'.  Conversion without iconv()
	     is not possible.
Solution:   Convert input from 'termencoding' to 'encoding'.  Add
	     mac_string_convert().  Convert text for the clipboard when needed.
	     (Eckehard Berns)
Files:     src/gui_mac.c, src/mbyte.c, src/structs.h, src/vim.h


*** ../vim-6.2.303/src/gui_mac.c Sat Feb 28 15:30:58 2004
--- src/gui_mac.c Thu Feb 26 22:24:26 2004
***************
*** 2081,2087 ****
   {
       /* TODO: add support for COMMAND KEY */
       long  menu;
!     unsigned char string[10];
       short  num, i;
       short  len = 0;
       KeySym  key_sym;
--- 2081,2087 ----
   {
       /* TODO: add support for COMMAND KEY */
       long  menu;
!     unsigned char string[20];
       short  num, i;
       short  len = 0;
       KeySym  key_sym;
***************
*** 2190,2196 ****
  	 }
  	 else
  	 {
! 	    string[ len++ ] = key_char;
  	 }

  	 if (len == 1 && string[0] == CSI)
--- 2190,2225 ----
  	 }
  	 else
  	 {
! #ifdef FEAT_MBYTE
! 	    if (input_conv.vc_type != CONV_NONE)
! 	    {
! 	 char_u from[2], *to;
! 	 int l;
!
! 	 from[0] = key_char;
! 	 from[1] = NUL;
! 	 l = 1;
! 	 to = string_convert(&input_conv, from, &l);
! 	 if (to != NULL)
! 	 {
! 		    for (i = 0; i < l && len < 19; i++)
! 		    {
! 		 if (to[i] == CSI)
! 		 {
! 			    string[len++] = KS_EXTRA;
! 			    string[len++] = KE_CSI;
! 		 }
! 		 else
! 			    string[len++] = to[i];
! 		    }
! 		    vim_free(to);
! 	 }
! 	 else
! 		    string[len++] = key_char;
! 	    }
! 	    else
! #endif
! 	 string[len++] = key_char;
  	 }

  	 if (len == 1 && string[0] == CSI)
***************
*** 3021,3026 ****
--- 3050,3059 ----
       }
   #endif

+ #ifdef FEAT_MBYTE
+     set_option_value((char_u *)"termencoding", 0L, (char_u *)"macroman", 0);
+ #endif
+
       /* TODO: Load bitmap if using TOOLBAR */
       return OK;
   }
***************
*** 3498,3509 ****
       int  len;
       int  flags;
   {

   #if defined(FEAT_GUI) && defined(MACOS_X)
       /*
        * On OS X, try using Quartz-style text antialiasing.
        */
!     SInt32 sys_version = 0;

       Gestalt(gestaltSystemVersion, &sys_version);
       if (sys_version >= 0x1020)
--- 3531,3555 ----
       int  len;
       int  flags;
   {
+ #if defined(FEAT_GUI) && defined(MACOS_X)
+     SInt32 sys_version;
+ #endif
+ #ifdef FEAT_MBYTE
+     char_u *tofree = NULL;
+
+     if (output_conv.vc_type != CONV_NONE)
+     {
+  tofree = string_convert(&output_conv, s, &len);
+  if (tofree != NULL)
+ 	    s = tofree;
+     }
+ #endif

   #if defined(FEAT_GUI) && defined(MACOS_X)
       /*
        * On OS X, try using Quartz-style text antialiasing.
        */
!     sys_version = 0;

       Gestalt(gestaltSystemVersion, &sys_version);
       if (sys_version >= 0x1020)
***************
*** 3578,3583 ****
--- 3624,3633 ----
  	     LineTo (FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
  	 }
       }
+
+ #ifdef FEAT_MBYTE
+     vim_free(tofree);
+ #endif
   }

   /*
***************
*** 3984,3990 ****
   #endif
       int  type;
       char *searchCR;
!     char *tempclip;


   #ifdef USE_CARBONIZED
--- 4034,4040 ----
   #endif
       int  type;
       char *searchCR;
!     char_u *tempclip;


   #ifdef USE_CARBONIZED
***************
*** 4012,4018 ****
   #ifdef USE_CARBONIZED
  	 /* In CARBON we don't need a Handle, a pointer is good */
  	 textOfClip = NewHandle (scrapSize);
!  /* tempclip = (char *)lalloc(scrapSize+1, TRUE); */
   #else
  	 textOfClip = NewHandle(0);
   #endif
--- 4062,4068 ----
   #ifdef USE_CARBONIZED
  	 /* In CARBON we don't need a Handle, a pointer is good */
  	 textOfClip = NewHandle (scrapSize);
!  /* tempclip = lalloc(scrapSize+1, TRUE); */
   #else
  	 textOfClip = NewHandle(0);
   #endif
***************
*** 4025,4035 ****

  	 type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;

!  tempclip = (char *)lalloc(scrapSize+1, TRUE);
  	 STRNCPY(tempclip, *textOfClip, scrapSize);
  	 tempclip[scrapSize] = 0;

!  searchCR = tempclip;
  	 while (searchCR != NULL)
  	 {
  	     searchCR = strchr(searchCR, '\r');
--- 4075,4085 ----

  	 type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;

!  tempclip = lalloc(scrapSize+1, TRUE);
  	 STRNCPY(tempclip, *textOfClip, scrapSize);
  	 tempclip[scrapSize] = 0;

!  searchCR = (char *)tempclip;
  	 while (searchCR != NULL)
  	 {
  	     searchCR = strchr(searchCR, '\r');
***************
*** 4039,4047 ****

  	 }

!  clip_yank_selection(type, (char_u *) tempclip, scrapSize, cbd);

!  free(tempclip);
  	 HUnlock(textOfClip);

  	 DisposeHandle(textOfClip);
--- 4089,4112 ----

  	 }

! #ifdef FEAT_MBYTE
!  if (input_conv.vc_type != CONV_NONE)
!  {
! 	    char_u *to;
! 	    int  l = scrapSize;
!
! 	    to = string_convert(&input_conv, tempclip, &l);
! 	    if (to != NULL)
! 	    {
! 	 vim_free(tempclip);
! 	 tempclip = to;
! 	 scrapSize = l;
! 	    }
!  }
! #endif
!  clip_yank_selection(type, tempclip, scrapSize, cbd);

!  vim_free(tempclip);
  	 HUnlock(textOfClip);

  	 DisposeHandle(textOfClip);
***************
*** 4094,4099 ****
--- 4159,4180 ----
       cbd->owned = FALSE;

       type = clip_convert_selection(&str, (long_u *) &scrapSize, cbd);
+
+ #ifdef FEAT_MBYTE
+     if (str != NULL && output_conv.vc_type != CONV_NONE)
+     {
+  char_u *to;
+  int l = scrapSize;
+
+  to = string_convert(&output_conv, str, &l);
+  if (to != NULL)
+  {
+ 	    vim_free(str);
+ 	    str = to;
+ 	    scrapSize = l;
+  }
+     }
+ #endif

       if (type >= 0)
       {
*** ../vim-6.2.303/src/mbyte.c Sun Feb 15 13:26:35 2004
--- src/mbyte.c Fri Feb 27 14:21:42 2004
***************
*** 217,223 ****
   #define IDX_CP1251 35
       {"cp1251",  ENC_8BIT,  1251},
   #define IDX_MACROMAN 36
!     {"macroman", ENC_8BIT,  0},
   #define IDX_COUNT 37
   };

--- 248,254 ----
   #define IDX_CP1251 35
       {"cp1251",  ENC_8BIT,  1251},
   #define IDX_MACROMAN 36
!     {"macroman", ENC_8BIT + ENC_MACROMAN, 0},
   #define IDX_COUNT 37
   };

***************
*** 5132,5137 ****
--- 5332,5356 ----
  	 vcp->vc_cpto = (to_prop & ENC_UNICODE) ? 0 : encname2codepage(to);
       }
   #endif
+ #ifdef MACOS_X
+     else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1))
+     {
+  vcp->vc_type = CONV_MAC_LATIN1;
+     }
+     else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_UNICODE))
+     {
+  vcp->vc_type = CONV_MAC_UTF8;
+  vcp->vc_factor = 2; /* up to twice as long */
+     }
+     else if ((from_prop & ENC_LATIN1) && (to_prop & ENC_MACROMAN))
+     {
+  vcp->vc_type = CONV_LATIN1_MAC;
+     }
+     else if ((from_prop & ENC_UNICODE) && (to_prop & ENC_MACROMAN))
+     {
+  vcp->vc_type = CONV_UTF8_MAC;
+     }
+ #endif
   # ifdef USE_ICONV
       else
       {
***************
*** 5177,5182 ****
--- 5396,5478 ----
       return dlen;
   }

+ #if defined(MACOS_X)
+ static char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp,
CFStringEncoding from, CFStringEncoding to));
+
+ /*
+  * A Mac version of string_convert() for special cases.
+  */
+     static char_u *
+ mac_string_convert(ptr, len, lenp, from, to)
+     char_u  *ptr;
+     int 	 len;
+     int 	 *lenp;
+     CFStringEncoding from;
+     CFStringEncoding to;
+ {
+     char_u  *retval, *d;
+     CFStringRef  cfstr;
+     int 	 buflen, in, out, l, i;
+
+     cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
+     if (cfstr == NULL)
+  return NULL;
+     if (to == kCFStringEncodingUTF8)
+  buflen = len * 6 + 1;
+     else
+  buflen = len + 1;
+     retval = alloc(buflen);
+     if (retval == NULL)
+     {
+  CFRelease(cfstr);
+  return NULL;
+     }
+     if (!CFStringGetCString(cfstr, retval, buflen, to))
+     {
+  CFRelease(cfstr);
+  /* conversion failed for the whole string, but maybe it will work
+ 	 * for each character */
+  for (d = retval, in = 0, out = 0; in < len && out < buflen - 1;)
+  {
+ 	    if (from == kCFStringEncodingUTF8)
+ 	 l = utf_ptr2len_check(ptr + in);
+ 	    else
+ 	 l = 1;
+ 	    cfstr = CFStringCreateWithBytes(NULL, ptr + in, l, from, 0);
+ 	    if (cfstr == NULL)
+ 	    {
+ 	 *d++ = '?';
+ 	 out++;
+ 	    }
+ 	    else
+ 	    {
+ 	 if (!CFStringGetCString(cfstr, d, buflen - out, to))
+ 	 {
+ 		    *d++ = '?';
+ 		    out++;
+ 	 }
+ 	 else
+ 	 {
+ 		    i = strlen(d);
+ 		    d += i;
+ 		    out += i;
+ 	 }
+ 	 CFRelease(cfstr);
+ 	    }
+ 	    in += l;
+  }
+  *d = NUL;
+  if (lenp != NULL)
+ 	    *lenp = out;
+  return retval;
+     }
+     CFRelease(cfstr);
+     if (lenp != NULL)
+  *lenp = strlen(retval);
+     return retval;
+ }
+ #endif
+
   /*
    * Convert text "ptr[*lenp]" according to "vcp".
    * Returns the result in allocated memory and sets "*lenp".
***************
*** 5256,5261 ****
--- 5552,5583 ----
  	     if (lenp != NULL)
  		 *lenp = (int)(d - retval);
  	     break;
+
+ # ifdef MACOS_X
+  case CONV_MAC_LATIN1:
+ 	    retval = mac_string_convert(ptr, len, lenp,
+ 				 kCFStringEncodingMacRoman,
+ 				 kCFStringEncodingISOLatin1);
+ 	    break;
+
+  case CONV_LATIN1_MAC:
+ 	    retval = mac_string_convert(ptr, len, lenp,
+ 				 kCFStringEncodingISOLatin1,
+ 				 kCFStringEncodingMacRoman);
+ 	    break;
+
+  case CONV_MAC_UTF8:
+ 	    retval = mac_string_convert(ptr, len, lenp,
+ 				 kCFStringEncodingMacRoman,
+ 				 kCFStringEncodingUTF8);
+ 	    break;
+
+  case CONV_UTF8_MAC:
+ 	    retval = mac_string_convert(ptr, len, lenp,
+ 				 kCFStringEncodingUTF8,
+ 				 kCFStringEncodingMacRoman);
+ 	    break;
+ # endif

   # ifdef USE_ICONV
  	 case CONV_ICONV: /* conversion with output_conv.vc_fd */
*** ../vim-6.2.303/src/structs.h Sun Feb 29 21:06:13 2004
--- src/structs.h Sun Feb 29 16:45:20 2004
***************
*** 832,837 ****
--- 832,843 ----
   #ifdef WIN3264
   # define CONV_CODEPAGE  4 /* codepage -> codepage */
   #endif
+ #ifdef MACOS_X
+ # define CONV_MAC_LATIN1 5
+ # define CONV_LATIN1_MAC 6
+ # define CONV_MAC_UTF8  7
+ # define CONV_UTF8_MAC  8
+ #endif

   /*
    * Structure used for mappings and abbreviations.
*** ../vim-6.2.303/src/vim.h Sun Feb 29 21:06:13 2004
--- src/vim.h Wed Feb 25 14:42:25 2004
***************
*** 1656,1661 ****
--- 1656,1662 ----
   # define ENC_2WORD 0x100     /* Unicode: UTF-16 */

   # define ENC_LATIN1 0x200     /* Latin1 */
+ # define ENC_MACROMAN 0x400     /* Mac Roman (not Macro Man! :-) */
   #endif

   #ifdef FEAT_MBYTE
*** ../vim-6.2.303/src/version.c Mon Mar  1 17:01:39 2004
--- src/version.c Mon Mar  1 17:03:01 2004
***************
*** 639,640 ****
--- 639,642 ----
   {   /* Add new patch number below this line */
+ /**/
+     304,
   /**/

--
Shit makes the flowers grow and that's beautiful

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35010 From: Bram Moolenaar <Bram@...>
Date: Mon Mar 1, 2004 4:48 pm
Subject: RE: modification for patch 6.2.298
Bram@...
Send Email Send Email
 
Benjamin Peterson wrote:

>   To me personally, it would be more useful to remember the change if
> either line or column is different.  This is because I often make
> changes to large data files that have very long lines (csv files), and
> there may be several unrelated changes far apart on the same line.

Problem is that quite often small changes to a short line do have a
different column.  For example "pppp" or "xxxx" at the end of the line.

Perhaps the difference in column must be 100 or so?  That is
sufficiently large to make it worth remembering the position.  Could use
'columns' to avoid using an arbitrary number (or adding yet another
option).

>   While I am asking for things, I would also like to suggest this:
>
>   Can we have some way to access the changes in the undo list freely, as
> well as just their locations?  For instance, often I come upon a word
> that needs changing and I know I have just made a similar change, but
> there is no way to automatically reapply the change at a new location,
> so I have to type cwNewWord<cr> again.  If the changes stored in the
> undo list could be pulled out and used at new locations, that would make
> editing much easier for many kinds of files.

The undo list stores whole lines, thus it would be difficult to extract
a word from it.

This sounds more like you want to get something from the redo buffer.
It only stores the last redo-able command though.  There have been
suggestions to remember more commands, but the UI to get to them isn't
that easy.

--
DEAD PERSON:  I don't want to go in the cart!
CUSTOMER:     Oh, don't be such a baby.
MORTICIAN:    I can't take him...
DEAD PERSON:  I feel fine!
CUSTOMER:     Oh, do us a favor...
MORTICIAN:    I can't.
                                   The Quest for the Holy Grail (Monty Python)

  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  \\\  Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///

#35011 From: "Alejandro Lopez-Valencia" <dradul@...>
Date: Mon Mar 1, 2004 5:03 pm
Subject: RE: Win32 gVim NSIS2 installer
dradul@...
Send Email Send Email
 
On Monday, March 01, 2004 10:44 AM, Jonathan D Johnston broke the
silence of shunyata and uttered:

> On Sunday, February 29, 2004 Alejandro Lopez-Valencia wrote:
>> There is a problem though. The 32-bit console version doesn't work
>> well in Win9x. In those systems, the 16-bit console version works
>> better. Now we start talking about including three versions... Hmm...
>> You'll need OpenWatcom for perpetrating such a feat :-)
>
> Actually, Dos32 Vim (compiled with DJGPP) is recommended for Win9x
> console.  From my experience, it works great for Win98se.
>
>   :h dos16
>   :h dos32
>   Also, see the options at http://www.vim.org/download.php#pc

Are you sure? I think you mean this:

"""
Dos16 version Can be used on any MS-DOS system, only uses up to 640
Kbyte of
		 memory.  Also runs on OS/2, Windows 95, and NT.  Excludes some
		 Vim-specific features (autocommands, syntax highlighting,
		 etc.).  Recommended for use on pre-386 machines.
							 *dos32*
Dos32 version Requires 386 processor and a |DPMI| driver, uses all
		 available memory.  Supports long file names and the Windows
		 clipboard, but NOT on Windows NT.  Recommended for MS-DOS,
		 Windows 3.1 and Windows 95.

There are also two versions that run under Windows:
Win32 version   Requires Windows 95 or Windows NT, uses all available
		 memory, supports long file names, etc.  Has some problems on
		 Windows 95.  Recommended for Windows NT.  See |os_win32.txt|
Win32 GUI Requirements like the Win32 version, but runs in its own
		 window, instead of a console.  Has scrollbars, menu, etc.
		 Recommended for Windows 95 and Windows NT.  See |gui-w32|.
"""

I am not particularly privy to using a DPMI driver is I can help it. It
has always being unstable for me.

Messages 34979 - 35011 of 70063   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

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