Hi again Editing an empty file and reading something into it doesn't set the "changed" flag. For example
$ true > foo $ echo "word" > bar $ ed foo 0 r bar 5 q $ since the default file is still "foo", and the buffer now has different contents from the disk file, this should probably refuse to quit. The fix seems to be in the main_loop command 'r' clause: --- ed-1.5.orig/main_loop.c 2011-03-27 08:08:57.930673137 +0200 +++ ed-1.5/main_loop.c 2011-03-27 08:09:25.202673149 +0200 @@ -544,7 +544,7 @@ { set_error_msg( "No current filename" ); return ERR; } addr = read_file( fnp[0] ? fnp : def_filename, second_addr ); if( addr < 0 ) return ERR; - if( addr && addr != last_addr() ) set_modified( true ); + if( addr ) set_modified( true ); break; case 's': if( !command_s( ibufpp, &gflags, addr_cnt, isglobal ) ) return ERR; Sorry about all this mail - I'm reimplementing "ed" in another language, so am involved in a lot of code inspection. Cheers M _______________________________________________ bug-ed mailing list bug-ed@gnu.org http://lists.gnu.org/mailman/listinfo/bug-ed