summaryrefslogtreecommitdiff
path: root/bin/ed
AgeCommit message (Collapse)Author
2022-01-22Flush all stdio streams before running a shell command.Todd C. Miller
Otherwise, if ed's output is not line buffered (e.g. if it is redirected to a file or pipe) the shell command output may be displayed before data buffered by ed itself is written. From Soeren Tempel. OK deraadt@
2021-03-08Add some references, most of these were removed when we stopped buildingJonathan Gray
and installing USD/SMM/PSD docs. jmc@ agrees with the direction, ok millert@ on an earlier diff
2020-01-09Rev 1.17 of sub.c removed infinite loop detection from s command.Alexander Bluhm
Adapt substitute test to new ed(1) behavior. Note that substitute result from sed(1) is still different.
2020-01-09Rev 1.59 of main.c allows omission of addresses in a range.Alexander Bluhm
Adapt ed test.
2020-01-09Rev 1.42 of main.c allows zero address for i command.Alexander Bluhm
Adapt ed test.
2019-07-30In addresses, consistently use "+" rather than ".+1".Ingo Schwarze
Both have the same meaning, but the former is explicitly defined in this manual page as "the next line" whereas the latter requires combining various pieces of information for understanding. Unification suggested and patch OK'ed by martijn@.
2019-07-201. Correct the description of the g command to match POSIX and ourIngo Schwarze
implementation; it was oversimplified and arguably incorrect. 2. Explicitely compare the behaviour of empty command lists for g, empty command lists for G, and empty commands because these subtle differences are quite confusing. 3. Say more precisely what the v and V commands do, avoiding the fuzzy wording "similar". All these issues were first pointed out by martijn@. Feedback and OK martijn@; "diff reads ok" jmc@ on an earlier version.
2019-07-15Explain in which circumstances trailing slashes can be omitted afterIngo Schwarze
the g and G commands, and polish the wording a bit explaining empty command lists. Closing a gap in the manual reported by <mazocomp at disroot dot org>. OK jmc@ martijn@
2019-07-12Minor polishing:Ingo Schwarze
* Delete a stray blank from the command line synopsis and add the missing .Ar markup to it. * Do not mention the terminating newline for the empty command since it isn't mentioned for any other command either. * Make the description of the empty command easier to understand. Joint work with martijn@ and jmc@.
2019-07-10document the dropping of the second / and ? in line address REs;Jason McIntyre
thread started by mazocomp; diff from ropers, shortened by me; ok martijn schwarze
2019-06-28fputc returns EOFTheo de Raadt
2019-06-28When system calls indicate an error they return -1, not some arbitraryTheo de Raadt
value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
2019-06-27Be precise in checking for errors. pclose(3) returns -1 and fclose(3)Florian Obser
EOF in case of errors, not any negative number. EOF corner case spotted while reviewing a much bigger diff by deraadt OK deraadt, millert
2018-06-19Revert previous, there were some unintended beviour changes.Martijn van Duren
2018-06-18Remove the parse_char_class and let regcomp determine if our bracketsMartijn van Duren
are balanced. OK millert@ and tb@
2018-06-15Remove references to BACKWARDS.Martijn van Duren
OK tb@
2018-06-15Make sure we always return more than a single '!' in get_shell_command.Martijn van Duren
This is similar to what vi/ex does and removes the final BACKWARDS flag. Behaviour requested by and OK tb@
2018-06-15Remove the non-BACKWARDS option for GET_THIRD_ADDR. No change to currentMartijn van Duren
behaviour. OK tb@
2018-06-04Remove the extra pager code when compiled without the BACKWARDS flag.Martijn van Duren
Most terminals have scrollback options, or can be achieved via tmux, so it's not needed. OK millert@
2018-06-04Definitively choose the existing semantics for the scroll and null command.Martijn van Duren
POSIX states: "An empty command list shall be equivalent to the p command", so changing the behaviour of a null-command in any other case is a violation of POSIX. OK millert@
2018-05-24Fail earlier if we don't have a current filename. This simlifies theMartijn van Duren
code and removes a few BACKWARDS flags. OK otto@
2018-04-26Make ed's 'l' command end lines with a '$' and make sure that literalMartijn van Duren
'$' characters are escaped, so that we are POSIX compliant. The omission of trailing '$' was originally hidden behind a BACKWARDS flag. This flag was most likely introduced to be compatible with 4.4BSD. Thanks to naddy@ for pointing me to the 4.4BSD ed implementation. I tried to trace the origin and enabling of the BACKWARDS flag, since both FreeBSD and NetBSD have the flag, but only FreeBSD doesn't have it enabled. Both projects had an alm@ working on ed during 1993-1995 during which he added this flag to both projects and only enabled it on NetBSD, but I wasn't able to reach him on any known address. Thanks to Ed Schouten (ed@freebsd), and Michael W. Lucas of the ed Mastery book for helping me trying to locate Andrew Moore. Problem originally prodded by garzon.lucero@gmail.com and later independently re-requested by n.reusse@hxgn.net. OK tb@, guenther@, and mwl@mwl.io
2018-02-26Make ed(1) warn about modifications if 'r'ead in an empty file andMartijn van Duren
trying to quit. Diff from Tim Chase OK tb@ and millert@
2018-01-09Rename test file =.err to eq.err for simpler make file scripts.Alexander Bluhm
2017-07-05nits about trailing punctuation found with mandoc -TlintIngo Schwarze
2017-04-26silence clang warnings: add an extra pair of parentheses and stopChristian Weisgerber
passing empty format strings to printf-family functions; ok millert@
2017-01-03Allow the omission of one address in (.,.) and (.;.) address rangesTheo Buehler
as per POSIX. With this patch, ",n" is an abbreviation for "1,n", ";n" abbreviates ".;n". The "n," and "n;" variants mean "n,n" and "n;n", respectively. Patch from Jerome FRGAGIC; ok stefan, deraadt
2016-10-11Reimplement g flag for s commands. Got lost in previous commit.Martijn van Duren
Found because of a hint by and OK schwarze@.
2016-10-10Remove infinite loop detection from the s-command.Martijn van Duren
If a zero-length match is found do the replacement and increment the start point for the next search by one. This allows for commands like s/^/- / This brings the behaviour closer to the way sed and vi work. OK schwarze@
2016-09-23remove the note about the list command (l) displaying a --More--Jason McIntyre
prompt for huge lines (according to otto this happens only when BACKWARDS is not defined); ok otto
2016-08-16Piping to a shell command does not count as a save, so don't reset theMartin Natano
modified flag. from Jerome Frgacic (jerome.frgacic (at) yahoo.fr) ok tb
2016-08-02Fix the begin of word bug in s-command, similar to sed.Martijn van Duren
nit fix and OK schwarze@
2016-03-27actually remove unnecessary includesMichael McConville
from Edgar Pettijohn, ok and with input from tb@
2016-03-22header cleanupmmcc
from Edgar Pettijohn, correction from deraadt@
2015-11-20honestly i think you should just zap that paragraph - it doesn;t maketb
sense to document that posix more or less says something should happen, and that it does. jmc
2015-11-20make ed restore the user defined prompt (specified with -p) when it was turnedtb
off and then on again with 'P'. ok daniel@
2015-10-25POSIX says that you can't capture the return value of sigsetjmp().Philip Guenther
Fortunately, we don't need it as we only pass siglongjmp() a single value. ok deraadt@
2015-10-21Style fixes; from Ilya KalimanTodd C. Miller
2015-10-09The variable errmsg can be static in main.c if code in re.c uses an ownTobias Stoeckmann
buffer to construct error messages. with input by and ok millert@
2015-10-09Define functions as static when they are not used outside their own c-files.Tobias Stoeckmann
ok millert@
2015-10-09Mark static globals that are only used in their respective .c files.Todd C. Miller
Also make stdin unbuffered since that is the same as using a single-byte buffer. OK tobias@
2015-10-09Change all tame callers to namechange to pledge(2).Theo de Raadt
2015-10-07tame "stdio rpath wpath cpath proc exec tty". proc and exec because edTheo de Raadt
it is a shell (it has a !command). tty because it uses TIOCGWINSZ in a SIGWINCH handler.
2015-10-04Remove useless pattern_t typedef, POSIX regex is here to stay soTodd C. Miller
just use regex_t directly.
2015-10-04Remove #ifdefs for non-POSIX systems. Also remove #ifdef forTodd C. Miller
SIGWINCH, it is not POSIX but it is a defacto standard. OK deraadt@
2015-09-14Avoid .Ns right after .Pf, it's pointless.Ingo Schwarze
In some cases, do additional cleanup in the immediate vicinity.
2015-07-28remove gratuitous castsTheo de Raadt
2015-07-14use atomic operations on sig_atomic_t variables inside the signal handlers,Theo de Raadt
rather than sharing one variable unsafely. ok millert
2015-07-11XXX annotate another signal raceTheo de Raadt
2015-06-22theo buehler points out that posix specifies a prompt defined using -pJason McIntyre
be reinstated when toggled off then on again; this seems to make sense, but posix is not explicit. we know that gnu ed and freebsd do reinstate the user defined prompt, but we do not. no one has yet stepped up to change this, so i'm adding a note to this effect until such a time as we do/ i have not tweaked the text for -p or "P" to allow for an easy back out if behaviour does change;