delorie.com/archives/browse.cgi | search |
Date: | Sat, 08 Sep 2001 13:20:15 +0300 |
From: | "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il> |
Sender: | halo1 AT zahav DOT net DOT il |
To: | pavenis AT lanet DOT lv |
Message-Id: | <7263-Sat08Sep2001132012+0300-eliz@is.elta.co.il> |
X-Mailer: | Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.9 |
CC: | ST001906 AT HRZ1 DOT HRZ DOT TU-Darmstadt DOT De, djgpp-workers AT delorie DOT com |
In-reply-to: | <Pine.A41.4.05.10109081013060.53626-100000@ieva06> (message from |
Andris Pavenis on Sat, 8 Sep 2001 10:21:26 +0300 (WET)) | |
Subject: | Re: Problem with sed3028b.zip |
References: | <Pine DOT A41 DOT 4 DOT 05 DOT 10109081013060 DOT 53626-100000 AT ieva06> |
Reply-To: | djgpp-workers AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp-workers AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
> Date: Sat, 8 Sep 2001 10:21:26 +0300 (WET) > From: Andris Pavenis <pavenis AT lanet DOT lv> > /* I added some substitution which is never done: no 'b' in input file */ > system ("sed -e 's:b:a:g' <sedtest.in >sedtest.out"); You don't need this with GNU Sed: you could use "sed -e ''" instead. > Testing result ...^M > sedtest.in sedtest.out differ: char 8193, line 2731^M It was a bug, allright; thanks for a simple test case. I think the patch below fixes it; please try it. --- sed/execute.c~1 Sat Jan 1 12:09:08 2000 +++ sed/execute.c Sat Sep 8 13:03:40 2001 @@ -273,7 +273,11 @@ line_undosify(lbuf, from, ch) size_t lbuf_len = lbuf->length; /* Remove character CH from the end of the line starting at offset FROM. */ - if (lbuf_len > from && lbuf->text[lbuf_len-1] == ch) + if ((lbuf_len > from + /* This is for the case where CR was read in the previous call, + but its LF buddy was only read now. */ + || (lbuf_len == from && ch == '\r')) + && lbuf->text[lbuf_len-1] == ch) lbuf->length--; #endif }
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |