summaryrefslogtreecommitdiffstats
path: root/usr.bin/sed
Commit message (Collapse)AuthorAgeFilesLines
* Fixed .Nm element, updated HISTORY section, added AUTHORS section.dds2003-07-221-2/+6
| | | | | Reviewed by: schweikh (mentor) MFC after: 2 weeks
* Test 8.16 in sed.test tests the ability of a sed to handle an emptydds2003-07-221-11/+19
| | | | | | | | | | | | | | | | | regular expression as the first argument to a substitute command. If used to test a sed which (erroneously) evaluates this at translation time rather than at execution time, the bugged sed is put into an infinite loop. This mode of failure seems excessive. Such a failing sed is the Free Software Foundation's sed 3.02. The specific test was also not being executed for the BSD sed. Both problems are now fixed. PR: misc/25585 Submitted by: Walter Briscoe <w.briscoe@ponl.com> Approved by: schweikh (mentor) MFC after: 2 weeks
* Do not dribble zero bytes into the output, by replacing an obfuscated iffanf2003-06-051-4/+1
| | | | | | | | whose true and false clauses were equivalent with a check that we are not about to stumble off the end of the line. Reported by: peter Pointy hat to: fanf
* Fix substitution when the regex matches the zero-length string.fanf2003-06-041-5/+6
| | | | | | | | | There are two bugs: in the s///g case, the substitution didn't occur at the end of the line; in the s///N case, the code didn't count forwards along the line properly. See the sg, s3, s4, and s5 tests in src/tools/regression/usr.bin/sed/. Reviewed by: tjr
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,schweikh2003-01-011-1/+1
| | | | especially in troff files.
* mdoc(7) police: markup polishing.ru2002-11-261-6/+3
| | | | Approved by: re
* Initialize a variable in order to fix when faced with picky compilers.eric2002-09-201-0/+2
| | | | Sponsored by: Apple
* Correct boundary condition error in `D' and `P' commands when the lasttjr2002-08-111-6/+3
| | | | | | | | line of the pattern space is empty. Don't emit spurious newline when EOF is reached with the `N' command. Pointed out by: Oleg Osyka MFC after: 1 week
* Fix some bugs in in-place editing:fanf2002-07-301-28/+26
| | | | | | | | (1) errors from freopen were not reported correctly (2) large files were not handled correctly (3) read-only files broke things MFC after: 1 week
* Ignore leading semicolons on commands; required by SUSv3.tjr2002-07-301-2/+8
| | | | Obtained from: NetBSD (kleink, Aymeric Vincent)
* s/inline/__inline/markm2002-07-191-4/+4
|
* Make cspace()'s second argument const. Make `escapes' in lputs() const.tjr2002-07-082-3/+4
|
* Silence WARNS=4 by passing a non-const buffer to regerror(). Since ittjr2002-07-081-1/+1
| | | | doesn't actually use the buffer when errbuf_size == 0, pass NULL.
* Update another mention of <CR><CR> I missed the first time around (rev 1.2)tjr2002-07-041-1/+1
|
* Note that two carriage returns aren't required after entering thetjr2002-07-031-2/+3
| | | | | | initial setup anymore (since process.c rev. 1.25). Add $FreeBSD$. MFC after: 2 weeks
* Avoid checking whether each line is the last line of the file when we don'ttjr2002-07-033-25/+29
| | | | | | | | | need to know. Instead, check when we are trying to match a "$" address. This does not change the way sed processes regular files, but makes it behave more sensibly when used interactively. PR: 40101 MFC after: 2 weeks
* Don't let the pattern space become null if the `x' command is used when thetjr2002-07-031-0/+2
| | | | | | hold space is null; some functions assume it's never null. MFC after: 3 days
* Sort sections, and refer to sed as a utility, not a function.tjr2002-06-251-6/+6
|
* Fix off by one in `y' (transliterate) command which caused the last charactertjr2002-06-241-1/+1
| | | | | | of the pattern space not to be examined. Noticed by: Motoyuki Konno <motoyuki@bsdclub.org>
* Now that the pattern space contains no trailing newline, modify the `l'tjr2002-06-221-1/+5
| | | | command's output so it's the same as what SUSv3 specifies.
* Don't store newlines at the end of each line in the hold/pattern spaces,tjr2002-06-222-11/+12
| | | | | | | | instead add the newline when the pattern space is printed. Make the `G' and `H' commands add a newline to the space before the data, remove bogus addition of newline from `x' command. PR: 29790, 38195
* Kill superfluous blank line.sobomax2002-06-171-1/+0
|
* Correct the handling of (for example) the N command by only zeroing thetjr2002-06-161-1/+2
| | | | input space in mf_fgets() if we reach the end of all input files.
* Exit with non-zero status if an input file can not be opened. This wastjr2002-06-141-0/+1
| | | | broken by rev. 1.22.
* Fix one serious bug and one potential problem with in-place editing code:sobomax2002-06-141-70/+60
| | | | | | | | | | | | | - original version of code worked incorrectly when more than one input files were specified - it was moving the last line from the 1st file to be the first line of the 2nd, last line of the 2nd to be the first line of the 3rd and so on; - use mmap()->write() to create temporary file instead of malloc()->read()->write(), which was not only slower, but also did not bother to free allocated memory once backup file was created, potentially leading to memory exhausting when regex is applied to a big file or a large number of small ones.
* Refer to environ(7) for description of COLUMNS instead of describing ittjr2002-06-101-10/+9
| | | | in-line. Document effects of locale environment variables in the same way.
* The 10 occurrence limit for the `s' command documented here has not existedtjr2002-06-101-3/+4
| | | | for a very long time (or never did exist).
* Newlines are not escaped anymore.tjr2002-06-101-2/+0
|
* Don't write escape newlines with `l' command (SUSv3)tjr2002-06-101-3/+3
|
* Correctly handle global substitutions where the pattern is only "$", thetjr2002-06-101-0/+3
| | | | | EOL anchor, when the last input line does not end in a newline character. Picked up by the GNU sed test suite.
* Wrap lines correctly for the `l' command.tjr2002-06-041-1/+1
|
* Document the fact that the `l' command uses the COLUMNS environmenttjr2002-06-041-0/+13
| | | | variable (SUSv3)
* Ignore COLUMNS environment variable if it is empty (SUSv3)tjr2002-06-041-1/+1
|
* Fix a bug in sed(1)'s "s" command wherein if an escape ("\" character)green2002-06-011-4/+24
| | | | | | | was initiated at the last character of the line buffer, the Wrong Thing was done and sed barfed by interpreting the following NUL byte as a digit. Instead, pull up the next buffer and record that the "\" was last seen.
* mdoc(7) police: typo in .Dd.ru2002-05-301-1/+1
|
* If a file argument cannot be processed, process the remaining onestjr2002-05-241-6/+14
| | | | and exit non-zero (SUSv3)
* More consistancy. file system > filesystemtrhodes2002-05-161-1/+1
|
* o Clean up tmp file usage a little by using mkstemp(3) instead ofgreen2002-05-141-5/+6
| | | | | | | mktemp(3). It would be amazingly unlikely, but the former method could result in a symlink attack. A better solution would use ${TMPDIR}, though. o Make sed not overwrite old backup files with no warning.
* Oops, update usage() to have -i.jmallett2002-05-071-2/+2
|
* Add handling for any nil-length string passed to -i for the backup extension.jmallett2002-05-072-2/+21
| | | | Add a note that this is kinda-sorta dangerous to the manual page.
* Un-shadow the `fname' variable.jmallett2002-05-071-9/+9
|
* Add a -i option to sed(1) to do inplace editing, to give us an alternative tojmallett2002-05-072-3/+77
| | | | | | | | | | | | | | | | | | Perl for such things. The key difference to Perl is that a backup extension *MUST* be specified, because on one hand it isn't recommended to have options which optionally take a parameter, and on the other hand, it'd be slightly unpleasent to implement proper handling for that. The difference between this and the version posted to developers@ is that it does handle multiple files in argv after the getopt(3) handling "correctly", in that the inplace editing-specific code has been moved out to a function, and that function is used beyond the first file in our linked list. This option has been documented as FreeBSD-specific in the manpage. Reviewed by: developers@ (got feedback from: des, fanf, sobomax, roberto, obrien) MFC after: 1 week
* Remove duplicated text.keramida2002-04-211-2/+1
| | | | | | PR: docs/37287 Submitted by: Tony Finch <dot@dotat.at> MFC after: 3 days
* Fix an ages-old bug in sed(1), which resulted in the absolutely validsobomax2002-04-121-1/+1
| | | | | | | | substitution expressions in the form `s,[fooexp],[barexp],;...' treated as invalid when the third `,' is (_POSIX2_LINE_MAX * N)-th character in the line. MFC after: 2 weeks
* Fix sed(1) in the case where a last line is specified and hold space is notjmallett2002-04-071-3/+5
| | | | | | | | | | | | | | | | | specified, and then the first part of the pattern space is deleted, when there are two or more input lines, as this results in subtraction of one from an unsigned integral value of '0'. That bogus value is used in one case for a loop (that will run far too many times in this case) and a function to search for a value within a specified range of memory, however now the range of memory is obscenely large and a segmentation fault will occur. This is fixed by checking for and appropriately handling a nil pattern space as if the specified search in memory failed, as indeed it obviously will with nil pattern space. Submitted by: Tim J. Robbins <tim@robbins.dropbear.id.au> PR: bin/34813 Reviewed by: mike MFC after: 1 day
* Fix sed(1) behaviour for 'G' when given null holdspace by making sure itjmallett2002-04-051-0/+2
| | | | | | | | | | contains a \n. PR: misc/26153 Submitted by: ashp Reviewed by: mike Obtained from: NetBSD MFC after: 2 days
* remove __Pimp2002-03-224-30/+30
|
* Remove NO_WERRORs and WARNS=n's. To be revisited after GCC3.markm2002-02-081-1/+0
|
* WARNS=2 partial fix; use NO_WERROR to protect against some hard-to-fix warnings.markm2001-12-126-43/+42
| | | | Use __FBSDID(), kill register keyword.
* Don't allocate a zero byte segment.mikeh2001-11-081-1/+4
| | | | | PR: bin/11900 MFC after: 2 weeks
OpenPOWER on IntegriCloud