Subject: patch 5.4.43 (was: (Oops.) Problem with Patch 5.4.37 ??)
From: Bram Moolenaar <[email-masked]>
To: "Christian J. Robinson" <[email-masked]>
Cc: Vim Developers List <[email-masked]>

------------

Christian J. Robinson wrote:

> With this patch applied, I get the following errors when I exit vim:
> 
> viminfo: Illegal starting char in line: ^Ido^@
> viminfo: Illegal starting char in line: ^Itouch $i^@

Sorry, my fault.

> The interesting thing is, when vim first set this in the .viminfo file, it
> didn't complain.  It was only after I'd started vim again then exited that
> it complained.

It only happens when skipping over the lines to find the file marks.  This
means the lines aren't actually inspected, and the long lines are not ingored
as they should.

Patch 5.4.43 (depends on 5.4.37)
Problem:    Mixing long lines with multiple lines in a register causes errors
	    when writing the viminfo file. (Robinson)
Solution:   When reading the viminfo file to skip register contents, skip
	    lines that start with "<".
Files:	    src/ops.c

*** ../vim-5.4.42/src/ops.c	Fri Aug 20 11:21:13 1999
--- src/ops.c	Sat Aug 21 21:41:51 1999
***************
*** 3938,3944 ****
  	else
  	    y_current->y_type = MLINE;
      }
!     while (!(eof = vim_fgets(line, LSIZE, fp)) && line[0] == TAB)
      {
  	if (do_it)
  	{
--- 3938,3945 ----
  	else
  	    y_current->y_type = MLINE;
      }
!     while (!(eof = vim_fgets(line, LSIZE, fp))
! 					&& (line[0] == TAB || line[0] == '<'))
      {
  	if (do_it)
  	{
*** ../vim-5.4.42/src/version.h	Sat Aug 21 21:50:41 1999
--- src/version.h	Sat Aug 21 21:50:24 1999
***************
*** 19,26 ****
  #define VIM_VERSION_MINOR_STR		"4"
  #define VIM_VERSION_BUILD		 57
  #define VIM_VERSION_BUILD_STR		"57"
! #define VIM_VERSION_PATCHLEVEL		 42
! #define VIM_VERSION_PATCHLEVEL_STR	"42"
  
  /*
   * VIM_VERSION_NODOT is used for the runtime directory name.
--- 19,26 ----
  #define VIM_VERSION_MINOR_STR		"4"
  #define VIM_VERSION_BUILD		 57
  #define VIM_VERSION_BUILD_STR		"57"
! #define VIM_VERSION_PATCHLEVEL		 43
! #define VIM_VERSION_PATCHLEVEL_STR	"43"
  
  /*
   * VIM_VERSION_NODOT is used for the runtime directory name.
***************
*** 30,35 ****
   */
  #define VIM_VERSION_NODOT	"vim54"
  #define VIM_VERSION_SHORT	"5.4"
! #define VIM_VERSION_MEDIUM	"5.4.42"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.42 (1999 Aug 21)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.42 (1999 Aug 21, compiled "
--- 30,35 ----
   */
  #define VIM_VERSION_NODOT	"vim54"
  #define VIM_VERSION_SHORT	"5.4"
! #define VIM_VERSION_MEDIUM	"5.4.43"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.43 (1999 Aug 21)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.43 (1999 Aug 21, compiled "

--
hundred-and-one symptoms of being an internet addict:
180. You maintain more than six e-mail addresses.

--/-/---- Bram Moolenaar ---- [email-masked] ---- [email-masked] ---\-\--
  \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /