Ah --- sorted!

The 1 is being returned because an error is occurring further up the file,
which is being hidden in amongst the other output. These lines:

g/:w/s/^\(...\).*/#define C_\1(w) CC_opcst(op_\1, w)\
#define C_\1_narg() CC_opnarg(op_\1)/

...worked in 1.10, but not in 1.14; you can't replace with a literal
newline like this any more and 1.14 is producing an 'invalid newline
substitution' error. So the 1 status code was actually ed trying to be
helpful and telling me that something was wrong.

So I believe that's all WAI.

On a related note --- any ideas how to adjust the script to work on modern
eds? Line splitting inside a g is explicitly forbidden by both Posix and
the GNU ed manual for reasons of ambiguity.

On Tue, 22 May 2018 at 21:32 David Given <d...@cowlark.com> wrote:

> It's worth mentioning that the ed these scripts were written for didn't
> have the buffer-modified warning at all --- the scripts are full of
> fragments like this:
>
> ed - $em_table <<'A' > X
> 1,/^$/g/ /s// /gp
> A
>
> (from
> https://github.com/davidgiven/ack/blob/4d24666432a4a01a67ed9b993c912f44b4cfe0a8/modules/src/em_data/new_table,
> written in 1985.)
>
> I believe this worked fine on 1.10.
>
>
> On Tue, 22 May 2018 at 20:41 Ori Avtalion <o...@avtalion.name> wrote:
>
>> The non-zero exit status only appears with 1.14.2, and not with 1.13.
>> Executing the H command reveals that the ? warning is "buffer modified".
>>
>> The relevant change is likely:
>> >The modified status is no longer cleared after writing the buffer to the
>> >standard input of a shell command. (Reported by Jérôme Frgacic).
>>
>> Reported at
>> https://lists.gnu.org/archive/html/bug-ed/2016-08/msg00000.html
>>
>> When the Q command is issued on a modified buffer, I don't understand
>> why ed exits with exit status 1 instead of 0. No error has occurred.
>>
>
_______________________________________________
bug-ed mailing list
bug-ed@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-ed

Reply via email to