ed: Limitations
8 Limitations
*************
If the terminal hangs up, 'ed' attempts to write the buffer to the file
'ed.hup' or, if this fails, to '$HOME/ed.hup'.
'ed' processes FILE arguments for backslash escapes, i.e., in a
filename, any character preceded by a backslash ('\') is interpreted
literally. For example, 'ed 'hello\tworld'' will edit the file
'hellotworld'.
If a text (non-binary) file is not terminated by a newline character,
then 'ed' appends one on reading/writing it. In the case of a binary file,
'ed' does not append a newline on reading/writing. A binary file is one
containing at least one ASCII NUL character. If the last line has been
modified, reading an empty file, for example /dev/null, prior to writing
prevents appending a newline to a binary file.
In order to keep track of the text lines in the buffer, 'ed' uses a
doubly linked list of structures containing the position and size of each
line. This results in a per line overhead of 2 'pointer's, 1 'long int',
and 1 'int'. The maximum line length is INT_MAX - 1 bytes. The maximum
number of lines is INT_MAX - 2 lines.