Blob Blame History Raw
2017-02-22  Antonio Diaz Diaz  <>

	* Version 1.14.2 released.
	* main.c (show_strerror) Revert to using '!scripted' instead of
	  'verbose' to suppress diagnostics.

2017-01-10  Antonio Diaz Diaz  <>

	* Version 1.14.1 released.
	* Print counts, messages, '?' and '!' to stdout instead of stderr.
	* buffer.c (append_lines): Fixed current address after empty 'i'.
	* regex.c (set_subst_regex): Treat missing delimiters consistently.
	  (extract_replacement): Don't replace 'a' with '%' in 's/a/%'.
	  Fixed infinite loop with EOF in the middle of a replacement.
	  Don't accept newlines in replacement in a global command.
	  Last delimiter can't be omitted if not last in command list.
	  (search_and_replace): Set current address to last line modified.
	* main_loop.c (extract_addresses): Fixed address offsets;
	  '3 ---- 2' was calculated as -2 instead of 1.
	  Accept ranges with the first address omitted.
	  (exec_command): Fixed current address after empty replacement
	  text in 'c' command.
	  Don't clear the modified status after writing the buffer to a
	  shell command. (Reported by Jérôme Frgacic).
	  (get_command_suffix): Don't allow repeated print suffixes.
	  (command_s): Accept suffixes in any order.
	  Don't allow multiple count suffixes.
	  'sp' now toggles all print suffixes.
	  (main_loop): Make EOF on stdin behave as a 'q' command.
	* ed.texi: Fixed the description of commands 'acegijkmqrsuw'.
	  Documented that ed allows any combination of print suffixes.
	* testsuite: Improved most tests. Simplified bug reporting.
	* configure: Avoid warning on some shells when testing for gcc.
	* Detect the existence of install-info.

2016-01-24  Antonio Diaz Diaz  <>

	* Version 1.13 released.
	* buffer.c (put_sbuf_line): Fixed a memory leak.
	* io.c (read_file, write_file): Close file on error.
	  (Both issues reported by Cédric Picard).

2015-07-04  Antonio Diaz Diaz  <>

	* Version 1.12 released.
	* ed.texi: Removed extra spaces from some commands.

2015-03-30  Antonio Diaz Diaz  <>

	* Version 1.11 released.
	* main_loop.c (exec_command): Fixed 'z' command.
	  (zN printed N + 1 lines).
	* ed.texi: Documented the window size used by the 'z' command.
	* Added new targets 'install*-compress'.
	* Restored original copyright notices in the code. I assigned to
	  the FSF the copyright on changes made to the part of ed already
	  copyrighted by the FSF, which seems to be just the manual.

2014-01-22  Antonio Diaz Diaz  <>

	* Version 1.10 released.
	* ed.texinfo: Renamed to ed.texi.

2013-06-18  Antonio Diaz Diaz  <>

	* Version 1.9 released.
	* Don't feed shell scripts to ed.
	* configure: Options now accept a separate argument.

2013-04-23  Antonio Diaz Diaz  <>

	* Version 1.8 released.
	* io.c (get_tty_line): Removed "double EOF" behavior.

2012-10-09  Antonio Diaz Diaz  <>

	* Version 1.7 released.
	* main.c (main): Set invocation_name before calling show_error.
	* Changed quote characters in messages as advised by GNU Standards.
	* ed.texinfo: Fixed description of address offsets.
	* ed.texinfo: Fixed a link to the Bash manual.
	* configure: 'datadir' renamed to 'datarootdir'.
	* Added new target 'install-bin'.

2012-01-01  Antonio Diaz Diaz  <>

	* Version 1.6 released.
	* io.c (put_tty_line): Null characters where incorrectly
	  shown by the 'l' command. (Reported by Martin Guy).
	* io.c (read_stream): Corrected the condition deciding when to
	  show the message "Newline appended".
	* main_loop.c (exec_command): The 'modified' flag is now set
	  when reading a non-empty file into an empty buffer.
	* regex.c (translit_text): Fixed typo that prevented using NUL
	  characters in regular expressions.
	* main_loop.c (exec_command): Return ERR if 'system' can't
	  create a shell process.
	* main_loop.c (main_loop): Flush stdout/stderr before reading a
	  new command.
	* buffer.c (put_sbuf_line): Added size parameter.
	* ed.1: Man page is now generated with 'help2man'.
	* ed.1: All command-line options are now documented in the man page.
	* Restored copyright notices of Andrew L. Moore. It seems Andrew
	  granted some permissions but never assigned copyright to the FSF.

2010-08-30  Antonio Diaz Diaz  <>

	* Version 1.5 released.
	* buffer.c (append_lines): Fixed 'a', 'c' and 'i' commands.
	  (When used in a global command list, the commands following
	  them in the list were ignored).
	* main_loop.c (exec_command): Fixed 'e' command.
	  (It quitted when invoked a second time with a modified buffer).
	* main.c: Added new option '--restricted'.
	* 'red' has been converted to a script invoking 'ed --restricted'.
	* Description of ed in the manual has been changed.
	* testsuite: Modified some tests and removed obsolete posix tests.
	* main_loop.c: 'ibufp' variable made local to main_loop.
	* Defined type bool to make clear which functions and variables
	  are Boolean.
	* Added 'const' to all pointer declarations accepting it.
	* regex.c (replace_matching_text): Make se_max an enum.
	* signal.c: Include termios.h
	* Converted C99 style comments '//' to C89 style comments '/* */'.
	* ed.texinfo: Fixed an erratum.
	* Changed copyright holder from Andrew, Antonio to the FSF.

2009-07-10  Antonio Diaz Diaz  <>

	* Version 1.4 released.
	* buffer.c, main_loop.c: Undo now restores the modified status.
	* regex.c (search_and_replace): Fixed a race condition with user
	* signal.c: Added functions resize_line_buffer and
	  resize_undo_buffer to definitively fix the aliasing warnings.
	* Some minor corrections have been made to the manual.

2009-05-24  Antonio Diaz Diaz  <>

	* Version 1.3 released.
	* carg_parser.c (ap_resize_buffer): An aliasing related segfault
	  that only occurs when overoptimizing with GCC on some
	  architectures (alpha, sparc) has been (hopefully) fixed.
	* signal.c (resize_buffer): Likewise.

2009-01-31  Antonio Diaz Diaz  <>

	* Version 1.2 released.
	* configure: Locale has been fixed to 'C'.
	* Man page is now installed by default.
	* 'make install-info' should now work on Debian and OS X.
	* ed.texinfo: License updated to GFDL version 1.3 or later.

2008-10-14  Antonio Diaz Diaz  <>

	* Version 1.1 released.
	* configure: Quote arguments stored in config.status.

2008-08-21  Antonio Diaz Diaz  <>

	* Version 1.0 released.
	* configure: Added option '--program-prefix'.
	* signal.c (strip_escapes): Buffer overflow fixed.
	* signal.c (resize_buffer): Pointer aliasing warning fixed.

2008-02-24  Antonio Diaz Diaz  <>

	* Version 0.9 released.
	* signal.c (sighup_handler): Return 0 if no error.
	* Arg_parser updated to 1.1.

2007-08-18  Antonio Diaz Diaz  <>

	* Version 0.8 released.
	* Testsuite exits unsuccesfully in case of error.
	* ed.1: Fixed some minor problems in the manual page.
	* ed.texinfo: Added 21kB of legalese (fdl.texinfo).

2007-07-18  Antonio Diaz Diaz  <>

	* Version 0.7 released.
	* buffer.c (dec_addr): Now returns correct address when wrapping.

2007-06-29  Antonio Diaz Diaz  <>

	* Version 0.6 released.
	* License updated to GPL version 3 or later.
	* signal.c (sigwinch_handler, set_signal):
	  Fixed two minor compatibility problems.
	* main_loop.c (main_loop):
	  Fixed an infinite loop when reading an empty script.

2007-03-09  Antonio Diaz Diaz  <>

	* Version 0.5 released.
	* main_loop.c (next_addr): '%' reimplemented as it was in ed 0.2.

2007-01-15  Antonio Diaz Diaz  <>

	* Version 0.4 released.
	* Fixed some minor problems in the testsuite.

2006-11-11  Antonio Diaz Diaz  <>

	* Version 0.3 released.
	* buffer.c (open_sbuf): Fixed symlink vulnerability using 'tmpfile'.
	* signal.c: Fixed signal handling for SIGINT.
	* main_loop.c (exec_command): Fixed 'c' and 'i' commands with
	  address 0.
	* The pause mode has been removed.
	* main.c: Added new options '--loose-exit-status' and '--verbose'.
	* carg_parser.c: New argument parser that replaces 'getopt_long'.
	* 'configure' and '' have been replaced.
	* Removed recursive make for testsuite.
	* Created directory 'doc'.
	* Removed all pre ISO C89 code.
	* Removed all global variables.
	* ed.texinfo: Added the changes from Andrew and some mine.

Sun Jun 26 22:21:59 1994 Andrew Moore  <>

	* GNU ed 0.2 release.

	* main.c (yank_lines): Added yank buffer.
	  A range of lines may be cut ('d') to or yanked ('y') from
	  a yank buffer.  Lines in the buffer may be put ('x')
	  after the addressed line (. by default).

	* main.c (display_lines): Page output of listed ('l') lines
	  if isatty(0).

	* main.c (main): Replaced isatty(0) with is_regular_file().
	  Errors in piped scripts, as opposed to regular scripts or
	  here documents, do not force ed to exit.

        * Capitilize error messages per the standard.

Wed Jun 22 01:06:11 1994 Andrew Moore  <>

	* ed.h: Generic definition of INT_MAX <>

	* signal.c: Added #ifndef SIG_ERR <>

Tue Apr 19 10:52:51 1994 Andrew Moore  <>

	* Version 0.1.  Initial release for GNU.

	* main.c (exec_command): Add comment command '#'.

Mon Mar 21 21:58:11 PST 1994 Andrew Moore  <>

	*  Use umask 077 to open buffer file.

Sat Mar 19 14:06:52 PST 1994 Andrew Moore  <>

	* Removed problematic DES and insque support.

Wed Jan 19 20:42:50 PST 1994 Andrew Moore  <>

	* Added reliable signal(2) for SysV.

Dec 1993  François Pinard  <pinard@icule>

	* GNUified ed.

Copyright (C) 1993 François Pinard
Copyright (C) 1994 Andrew Moore
Copyright (C) 2006-2017 Antonio Diaz Diaz.

This file is a collection of facts, and thus it is not copyrightable,
but just in case, you have unlimited permission to copy, distribute and
modify it.