Age | Commit message (Collapse) | Author |
|
with a NUL character, which might occur after using the D command.
From Mohamed Akram
|
|
Use warn()/err() instead of sed's homegrown warning()/error() for
things other than parser problems. The warning()/error() functions
display the file and line number in addition to the error message.
This also removes of the COMPILE/FATAL argument to error() since
now all calls to error() are for compilation/parsing issues.
OK op@ espie@
|
|
Previously, sed would fail silently if it was unable to move the
temporary file into place. Also allow "sed -i" on symbolic link--the
link will be broken but this matches GNU sed behavior. From espie@
OK op@
|
|
These functions now use getline(), not fgets(). From espie@
|
|
|
|
|
|
amendments to his diff are noted on tech
|
|
getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.
Prompted by dlg@. With help from dlg@ and millert@.
Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2
ok naddy@ millert@ dlg@
|
|
or equal to the first;
diff from luka krmpotic
ok kn
|
|
it did not start in the PWB group
"The talk said that tools like grep and sed came from PWB,
but that's not true. They were original"
"The flow from PWB back to the main research line was a trickle at best.
We had bad NIH in 1127."
Rob Pike
https://minnie.tuhs.org/pipermail/tuhs/2020-February/020329.html
The 4.4BSD version was written by Diomidis Spinellis
credited in csrg/admin/admin/contrib
"In 1992, as a bored PhD student, I reimplemented sed(1) and contributed
it the unencumbered BSD version that was then being put together"
https://www.spinellis.gr/blog/FreeBSD.html
with and ok schwarze@
|
|
This allows us to enable the commandl1 and commandl2 regress tests.
Original analysis from seL4 <at> disroot <dot> org
OK millert@
|
|
and installing USD/SMM/PSD docs.
jmc@ agrees with the direction, ok millert@ on an earlier diff
|
|
Partly from Johann Oskarsson for Illumos/FreeBSD.
ok millert@
|
|
|
|
Original diff by and OK naddy@
|
|
and move it in part to the DESCRIPTION, in part to STANDARDS;
triggered by a loosely related bug report from Lars dot Nooden at gmail dot com;
OK jmc@, and no opposition when shown on bugs@
|
|
because it changes the behaviour for empty input files;
revert requested by naddy@ and sthen@
|
|
the "b" and "t" commands with a label, and for compatibility with
GNU sed, also accept ";" followed by another command after "b"
and "t" commands without a label: branch to the end of the script
instead of erroring out. Parsing is unchanged.
Missing feature reported by Lars dot Nooden at gmail dot com on bugs@.
OK martijn@ millert@
|
|
Simplify the code by allowing usage of stdin with the -i flag by pushing
the result to stdout, so filters and in place editing can be combined.
OK millert@
|
|
- Reset the hold-space in between files
- quit the editor as soon as a 'q' command is found
- Make sure the temp-file is written back to the original file if we quit
the editor
temp-file not written back issue found by Time Chase.
Lots of feedback from millert@ and schwarze@
OK millert@
|
|
When the opening square bracket ('[') is abused as the delimiter, the regular
expression contains a bracket expression, and the bracket expression contains
another opening square bracket (sick! - i mean, sic!), then do not require
escaping that innermost bracket and treat a preceding backslash as a literal
backslash character, in accordance with POSIX:
$ printf 'x[x\\x\n' | sed 's[\[[][R[g'
xRx\x
$ printf 'x[x\\x\n' | sed 's[\[\[][R[g'
xRxRx
While here, also make the implementation more readable and insert
some comments.
Joint work with martijn@ (started during g2k18) and OK martijn@.
|
|
We now output $COLUMNS - 8 characters of the string and a newline.
This is similar to the behaviour in ed(1).
Discussed with and OK schwarze@
|
|
Cover more cases with less wording.
Joint work with schwarze@
OK millert@
|
|
and "s/// command" sections and clarify what an escaped delimiter
does inside regular expressions and inside character classes.
Joint work with martijn@, no objection from jmc@.
|
|
and then including '[' in the regular expression by prepending a backslash
to it, remove the backslash before feeding the RE to the RE engine, just
like we already do it for other special characters like .^$*+?{(|.
This makes sed 's[\[xy][...[' treat the xy thingy as a char class.
Joint work with martijn@, OK guenther@ martijn@
|
|
The example itself was taken directly from the POSIX specification by jmc@,
who doesn't remember adding it. This example isn't very clear about what
it actually does, so just remove it.
If someone can come up with one or more examples that give a more clear
introduction to the workings of sed feel free to send them in.
Prompted by a diff by kshe59 <at> zoho <dot> eu
OK jmc@
|
|
|
|
|
|
|
|
Pointed out by kshe59 <at> zoho <dot> eu
OK millert@
|
|
- When 'n' is used as a delimiter escaping 'n' will remain a newline
instead of becoming a 'n' character. This is how POSIX specifies how this
should work. Other implementations tested also do this wrong.
- '[' and maybe other characters are not special during the parsing of the
y command and don't need to be matched or treated special in any way.
- POSIX specifies that a backslash followed by anything other than the
delimiter, 'n', and another backslash, as well as repeating characters in
string1 are unspecified. Since the various implementations handle these
situations in opposing ways choose to error out on them to prevent people
falling into the pitfall of expecting identical behaviour on various
implementations.
Inspired by the sed.1 patch by kshe59 <at> zoho <dot> eu
Feedback and OK millert@
Manpage bits OK jmc@
|
|
do for several years.
While here make corresponding error message for missing read and write file
consistent between commands/flag, and shrink the the code of the w flag of
the s command by making it use the same code as the w command.
Prompted by a larger diff by kshe59 <at> zoho <dot> eu
OK millert@
|
|
s/with/width type-O fix while here.
From kshe59 <at> zoho <dot> eu
OK jmc@
|
|
the 'w' and 'r' functions and the 'w' flag to the 's' function.
If non of the above is used and input is being read from stdin, we drop
all the way down to stdio!
Original inspiration by benno@.
OK millert@
|
|
|
|
From Daniel Cegielka - thanks
ok jca@
|
|
rectification.
|
|
appease gcc.
ok procter@ deraadt@
|
|
more than one digit but cannot start with zero;
feedback and OK jmc@, OK jca@, OK millert@ on an earlier version
|
|
By pfg@ from FreeBSD
OK millert@ and otto@
|
|
it allows chown(2) call to change the user or group on a file.
- usr.bin/compress : aka gzip
- usr.bin/mg : open a file for writing
- usr.bin/sed : inplace editing
- usr.bin/sort : if outfile equals one of the input files
ok deraadt@ tb@
(and a reminder from Remi Locherer)
warning: in order to use it, you must have a recent kernel with the new
promise.
|
|
of word mismatch as reported by jsg@.
Discussed with otto@ and others early on, earlier version tested in ports build
by aja@
OK millert@
Few readability tweaks and OK schwarze@
|
|
Previously behaviors were all over the map. This changes them to
use COLUMNS first, and either terminal width or a hardcoded value
(typically 80) as appropriate.
ok deraadt@; man bits ok jmc@
|
|
From Michael Reed, thanks!
ok deraadt@
|
|
|
|
ok tobias@
|
|
ok tobias@
|
|
Discussed with jca@.
|
|
ok deraadt
|
|
which i have put in that order). this is not important, but helps look
for outliers which might be strange. it hints that "ioctl" should be
reassessed in a few places, to see if "tty" is better; that "unix" may
be used in some places where "route" could now work.
|