summaryrefslogtreecommitdiffstats
path: root/bin/ed
AgeCommit message (Collapse)AuthorFilesLines
2021-03-08Add some references, most of these were removed when we stopped buildingjsg1-2/+12
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.bluhm4-4/+3
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.bluhm19-1/+53
Adapt ed test.
2020-01-09Rev 1.42 of main.c allows zero address for i command.bluhm3-0/+3
Adapt ed test.
2019-07-30In addresses, consistently use "+" rather than ".+1".schwarze1-6/+6
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 ourschwarze1-21/+27
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 afterschwarze1-6/+11
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:schwarze1-5/+9
* 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;jmc1-2/+4
thread started by mazocomp; diff from ropers, shortened by me; ok martijn schwarze
2019-06-28fputc returns EOFderaadt1-2/+2
2019-06-28When system calls indicate an error they return -1, not some arbitraryderaadt2-11/+10
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)florian1-3/+3
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.martijn1-3/+27
2018-06-18Remove the parse_char_class and let regcomp determine if our bracketsmartijn1-27/+3
are balanced. OK millert@ and tb@
2018-06-15Remove references to BACKWARDS.martijn2-6/+2
OK tb@
2018-06-15Make sure we always return more than a single '!' in get_shell_command.martijn1-5/+5
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 currentmartijn1-22/+1
behaviour. OK tb@
2018-06-04Remove the extra pager code when compiled without the BACKWARDS flag.martijn1-13/+1
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.martijn2-15/+2
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 themartijn1-52/+26
code and removes a few BACKWARDS flags. OK otto@
2018-04-26Make ed's 'l' command end lines with a '$' and make sure that literalmartijn2-21/+6
'$' 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 andmartijn1-2/+2
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.bluhm2-2/+2
2017-07-05nits about trailing punctuation found with mandoc -Tlintschwarze1-3/+3
2017-04-26silence clang warnings: add an extra pair of parentheses and stopnaddy3-22/+27
passing empty format strings to printf-family functions; ok millert@
2017-01-03Allow the omission of one address in (.,.) and (.;.) address rangestb1-2/+3
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.martijn1-2/+2
Found because of a hint by and OK schwarze@.
2016-10-10Remove infinite loop detection from the s-command.martijn1-9/+11
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--jmc1-8/+2
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 thenatano1-2/+2
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.martijn1-22/+25
nit fix and OK schwarze@
2016-03-27actually remove unnecessary includesmmcc1-7/+1
from Edgar Pettijohn, ok and with input from tb@
2016-03-22header cleanupmmcc7-10/+56
from Edgar Pettijohn, correction from deraadt@
2015-11-20honestly i think you should just zap that paragraph - it doesn;t maketb1-12/+1
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 turnedtb2-6/+5
off and then on again with 'P'. ok daniel@
2015-10-25POSIX says that you can't capture the return value of sigsetjmp().guenther1-2/+3
Fortunately, we don't need it as we only pass siglongjmp() a single value. ok deraadt@
2015-10-21Style fixes; from Ilya Kalimanmillert1-2/+2
2015-10-09The variable errmsg can be static in main.c if code in re.c uses an owntobias3-6/+7
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.tobias6-55/+56
ok millert@
2015-10-09Mark static globals that are only used in their respective .c files.millert7-41/+41
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).deraadt1-3/+3
2015-10-07tame "stdio rpath wpath cpath proc exec tty". proc and exec because edderaadt1-1/+5
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 somillert5-20/+18
just use regex_t directly.
2015-10-04Remove #ifdefs for non-POSIX systems. Also remove #ifdef formillert2-23/+4
SIGWINCH, it is not POSIX but it is a defacto standard. OK deraadt@
2015-09-14Avoid .Ns right after .Pf, it's pointless.schwarze1-5/+5
In some cases, do additional cleanup in the immediate vicinity.
2015-07-28remove gratuitous castsderaadt3-6/+6
2015-07-14use atomic operations on sig_atomic_t variables inside the signal handlers,deraadt2-18/+27
rather than sharing one variable unsafely. ok millert
2015-07-11XXX annotate another signal racederaadt1-2/+2
2015-06-22theo buehler points out that posix specifies a prompt defined using -pjmc1-2/+14
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;
2015-01-16Replace <sys/param.h> with <limits.h> and other less dirty headers wherederaadt3-14/+13
possible. Annotate <sys/param.h> lines with their current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution. These are the files confirmed through binary verification. ok guenther, millert, doug (helped with the verification protocol)