Commit Graph

3360 Commits

Author SHA1 Message Date
wiz
4cf0de9860 file system police. 2016-02-24 15:28:36 +00:00
christos
8b2383fc90 PR/46327: David Mandelberg: Fix exit codes of background jobs (from kre) 2016-02-24 14:57:12 +00:00
christos
59f04ac937 Simple script to create node names for debugging 2016-02-24 14:51:20 +00:00
christos
750aa9221b If we don't have shared address space vfork fail back to using fork since
we are depending on the shared address space feature (from kre)
2016-02-24 14:38:40 +00:00
christos
57f3725a64 Make sh.1 catch up with reality. Document -h (such as it is...)
and also added doc for some other stuff that was missing.

Take the opportunity to clean up the way the flags are set in the
man page, so every new flag doesn't have to be added 6 times!
(Some of the lists were different from others, in ordering, and
content, for no good reason at all.)

Make a few other cleanups ... Add text about AND-OR lists,
This can be also used to justify closing an open PR:
(that "sh -c 'command &&'" is not a syntax error...).

Add doc for -F, which should default to set if the shell somehow
gets compiled without DO_SHAREDVFORK defined, (to be committed
separately)

XXX: Consider disabling DO_SHAREDVFORK if SMALL is defined?

From kre
2016-02-24 14:35:51 +00:00
christos
95b061168f name the long option after the ksh name (trackall) to indicate the intended
posix behavior not the bash one.
2016-02-23 18:30:16 +00:00
christos
a9d1a1847c update that -n is implemented and add -h using the long name that bash
uses. (from kre, long name from me)
2016-02-23 16:22:43 +00:00
christos
aeba4f7b70 Fix quoting inside heredoc's. (from kre) 2016-02-23 14:51:25 +00:00
christos
9e6b737d5a PR/43255: Make -n apply to the -c string so sh -n -c 'commands' works
as it should. Also, other places where the shell parses strings of
commands are also now controlled by -n (traps, eval, ...)  (from kre)
2016-02-22 20:03:48 +00:00
christos
606614c83d PR bin/43469 - correctly handle quoting of the pattern part of ${var%pat}
type expansions. (from kre)
2016-02-22 20:02:00 +00:00
christos
863fff4621 Fix for PR bin/48631 - allow commands controlled
by case statements to be nothing more than redirects (from kre)
2016-02-22 19:42:46 +00:00
christos
b8f416fe8e Finish the fix for PR/48631 - that is, make the parser correctly
handle the token syntax it really should be handling (including
some that posix does not require, but is right anyway.) This is
quite similar to, and to some extent inspired by the way the FreeBSD
sh parser.c works, but the actual implementation is quite different.
(from kre)
2016-02-22 19:38:10 +00:00
christos
87624d803c KNF / whitespace fixes. No changes of substance. (from kre) 2016-02-22 19:25:26 +00:00
christos
2f573a20ed PR/50827: Richard Hansen: Fix default variable assignment with arithmetic,
from kre.
2016-02-19 13:50:37 +00:00
christos
ac40619997 PR/50747: David Binderman: check bounds before dereference.
While here add some continues before semicolons.
2016-02-03 05:26:16 +00:00
christos
ded9763f6b PR/50734: David Binderman: check bounds before dereferencing. 2016-02-01 17:34:00 +00:00
wiz
29ce88a214 Whitespace. 2016-01-06 00:22:21 +00:00
christos
30042120ad Document close-on-exec redirection behavior. 2016-01-05 18:16:20 +00:00
christos
0a9b959049 PR/50619: Fix reversed test. 2016-01-04 13:57:15 +00:00
christos
d18385a5a2 Don't leak redirected rescriptors to exec'ed processes. This is what ksh
does, but bash does not. For example:

    $ cat test1
    #!/bin/sh
    exec 6> out
    echo "test" >&6
    sh ./test2
    exec 6>&-
    $ cat test2
    echo "test2" >&6
    $ ./test1
    ./test2: 6: Bad file descriptor

This fixes by side effect the problem of the rc system leaking file descriptors
7 and 8 to all starting daemons:

    $ fstat -p 1359
    USER     CMD          PID   FD MOUNT       INUM MODE         SZ|DV R/W
    root     powerd      1359   wd /              2 drwxr-xr-x     512 r
    root     powerd      1359    0 /          63029 crw-rw-rw-    null rw
    root     powerd      1359    1 /          63029 crw-rw-rw-    null rw
    root     powerd      1359    2 /          63029 crw-rw-rw-    null rw
    root     powerd      1359    3* kqueue pending 0
    root     powerd      1359    4 /          64463 crw-r-----   power r
    root     powerd      1359    7 flags 0x80034<ISTTY,MPSAFE,LOCKSWORK,CLEAN>
    root     powerd      1359    8 flags 0x80034<ISTTY,MPSAFE,LOCKSWORK,CLEAN>
    root     powerd      1359    9* pipe 0xfffffe815d7bfdc0 -> 0x0 w

Note fd=7,8 pointing to the revoked pty from the parent rc process.
2016-01-04 03:00:24 +00:00
christos
b357ba3056 We don't have RLIMIT_SWAP 2015-12-30 22:26:26 +00:00
wiz
c78bed405e Remove trailing whitespace. 2015-12-19 18:48:41 +00:00
wiz
2c25669eb0 Use An in AUTHORS section. 2015-12-19 18:48:33 +00:00
christos
015658bfe0 Add the timestamp option to the pax front end. 2015-12-19 18:45:52 +00:00
christos
9158fb657d PR/50119: Thomas Klausner: Add --timestamp option to tar. 2015-12-19 18:28:54 +00:00
christos
3296beefcd PR/50422: Robert Elz: df -G prints the wrong value for fragsize (+FIX)
For df -G, print the block and fragment size instead of the iosize
and the blocksize. If we need to print the iosize, it should be done
in a different field. Nevertheless printing the blocksize in the fragment
size field is just wrong.
XXX: pullup-6, pullup-7
2015-11-12 17:59:21 +00:00
wiz
349f15a5e8 Use An in AUTHORS section. 2015-11-04 09:24:14 +00:00
pgoyette
4a0bba4840 By my count, [[[[[cc]yy]mm]dd]hh]mm[.ss] has seven fields, not six! 2015-11-03 03:01:35 +00:00
joerg
09dfb13f83 Be explicit about what is negated. 2015-08-28 11:29:48 +00:00
christos
19d6b8392c PR/50179: Timo Buhrmester: sh(1) variable expansion bug 2015-08-27 07:46:47 +00:00
christos
f95d5940cc report the signal that wait was interrupted by, which is not always SIGINT
anymore.
2015-08-22 12:12:47 +00:00
christos
c0195771da Process pending signals while waiting for a job:
$ cat << EOF > hup.sh
    #!/bin/sh
    trap 'echo SIGHUP; exit 1' 1
    sleep 10000 &
    wait
    EOF
    $ chmod +x ./hup.sh
    $ ./hup.sh &
    $ kill -HUP %1
2015-08-22 09:55:23 +00:00
sevan
bf748072f6 Drop the case '?' which is defined after case 'default'.
case 'default' statement introduced in the last commit to cat.c in the CSRG archive.
Obtained from OpenBSD bin/cat/cat.c r1.3.
2015-07-25 16:17:01 +00:00
wiz
dfb9651eda Add serial comma, use upper case for abbreviation, and remove apostrophe for plural. 2015-06-28 16:22:54 +00:00
christos
7da746ab02 remove \n from error messages 2015-06-16 22:31:08 +00:00
joerg
3eb04a3615 Use an explicit body for a "until not EINTR" loop. 2015-06-06 15:22:58 +00:00
christos
ac33f4ea5e Drop privileges when executed set{u,g}id unless -p is specified like other
shells do to avoid system() and popen() abuse.
2015-05-26 21:35:15 +00:00
joerg
66e60a49ac Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.
2015-05-10 20:30:54 +00:00
christos
9c27fd2a44 CID 1225078: check getrlimit return 2015-05-09 13:28:55 +00:00
christos
f49d3ada41 CID 1225088: check return of getrlimit 2015-05-09 13:26:06 +00:00
christos
4b6d6c838f CID 1225077: check getrlimit return 2015-05-09 13:22:37 +00:00
christos
78d721faf9 Simplify by splitting the "simple" mode setting and the "special" ones. 2015-05-01 17:01:08 +00:00
jmcneill
fa0ed62f53 document ulimit -r 2015-04-12 17:05:03 +00:00
wiz
5fe5275d9f Use An in AUTHORS section. 2015-04-11 16:22:07 +00:00
christos
23c362a5b1 Add -J/--xz to specifically decompress xz compressed files. We don't really
need this because -z autodetects the compression format; this is for syntax
compatibility with other tar implementations. From Joachim Henke
2015-04-11 15:41:33 +00:00
wiz
bb4a52d96c New sentence, new line. Fix typos. Bump date for previous. 2015-03-18 13:30:13 +00:00
manu
ea3c6ee530 Add iflag and oflag operands to dd(1)
Like GNU dd(1) similar operands, iflag and oflag allow specifying the
O_* flags given to open(2) for the input and the output file. The values
are comma-sepratated, lower-case, O_ prefix-stripped constants documented
in open(2).

Since iflag and oflag override default values, specifying oflag means
O_CREATE is not set by default and must be specified explicitely.

Some values do not make sense (e.g.: iflag=directory) but are still used
and will raise a warning. For oflag, values rdonly, rdwr and wronly are
filtered out with a warning (dd(1) attempts open(2) with O_RDWR and
then O_WRONLY on failure).

Specifying oflag=trunc along with (seek, oseek or conv=notrunc) is
contradictory and will raise an error.

iflag and oflag are disabled if building with -DMALLPROG
2015-03-18 13:23:49 +00:00
sevan
7c1a019ea3 From OpenBSD r1.49
Fix comment grammar
2015-03-09 23:38:08 +00:00
enami
80c6af722d Fix the name of failed function in warning message. 2015-03-03 00:20:38 +00:00
enami
c1e351a1b2 Don't truncate at microseconds while preserving timestamps.
One of motivation of this change is to make the behavior of test(1)
-nt/ot with preserved copy (like cp -p) closer to the NetBSD 6.
Of course whether full timestamps are kept or not depends also on
underlying file system.

The ifdef added in mv(1) since existing ifdefs was our local change
to compile it on solaris (though I couldn't test it):
http://mail-index.netbsd.org/tech-userlevel/2014/11/28/msg008831.html
2015-03-02 03:17:24 +00:00
joerg
14bd6a1392 Make cast warnings for clang non-fatal. 2015-01-29 20:46:31 +00:00
christos
334f5d77c6 Define an undocumented -F option to only use fork instead of vfork for
debugging purposes.
2015-01-02 19:56:20 +00:00
joerg
0bab8dfecf Use l_wmesg if the string is not empty. Don't bother checking l_name for
nullness.
2014-11-15 01:58:34 +00:00
christos
9e91d16823 simplify and eliminate TOCTOU. 2014-10-23 21:03:25 +00:00
jschauma
8e9bed0cec Remove the confusing reference to 'file sizes' in the short description of
the '-l' flag.  As explained in the Long Format section, the total is of
the blocks used by the files, and only applies to directories.
2014-10-18 01:49:01 +00:00
christos
a25724438f PR/48201: Miwa Susumu: Fix set -C (no clobber) for POSIX; from FreeBSD
Can't use O_EXCL because of device nodes; also truncate.
2014-10-15 14:54:25 +00:00
dholland
33586bcc4e Provide real error messages.
Inspired by PR 49169 from David H. Gutteridge, but a much broader patch :-)
2014-09-01 21:42:21 +00:00
christos
5cad352e4f remove unused assignment 2014-08-29 09:35:19 +00:00
christos
d03f4b6b66 Eat trailing backslash like bash and pdksh (not zsh). CBACK+CEOF = TEOF 2014-08-29 09:26:39 +00:00
christos
7de48e21c0 PR/49125: Havard Eidnes: /bin/sh does not support redirecting to or from FDs > 9
According to:
http://pubs.opengroup.org/onlinepubs/009604599/utilities/xcu_chap02.html#tag_02_07

Redirection support for fds > 9 is optional but allowed.
2014-08-19 12:36:58 +00:00
joerg
694cb36aee Fix RCS ID. 2014-08-08 14:48:55 +00:00
dholland
d54dab14a9 remove .if make(install) 2014-07-05 23:13:41 +00:00
dholland
076d336118 remove .if make(install)
these are seriously bad juju
2014-07-05 23:12:33 +00:00
dholland
dcc711d503 Reorg docs, part 2:
Rename the following reference documents to match their programs:
   shell -> sh
   viref -> vi

and rename the following to match their topic better:
   ipctut -> sockets
   ipc -> sockets-advanced

Also, the old "timed" and "timedop" docs are now ref5/timed and
ref8/timed respectively, as the first of these documented the
protocol.
2014-07-05 19:23:00 +00:00
dholland
b7b7574d3b Reorg docs, part 1:
Move all the reference manuals to subdirs of /usr/share/doc/reference.
We have subdirs ref1-ref9, corresponding to man page sections 1-9.

Everything that's the reference manual for a program (sections 1, 6,
8), C interface (sections 2, 3), driver or file system (section 4),
format or configuration (section 5), or kernel internal interface
(section 9) belongs in here.

Section 7 is a little less clear: some things that might go in section
7 if they were a man page aren't really reference manuals. So I'm only
putting things in reference section 7 that are (to me) clearly
reference material, rather than e.g. tutorials, guides, FAQs, etc.
This obviously leaves some room for debate, especially without first
editing the docs with this distinction in mind, but if people hate
what I've done things can always be moved again.

Note also that while roff macro man pages traditionally go in section
7, I have put all the roff documentation (macros, tools, etc.) in one
place in reference/ref1/roff. This will make it easier to find and
also easier to edit it into some kind of coherent form.
2014-07-05 19:22:41 +00:00
dholland
c3ab26950f Rework /usr/share/doc.
Update the <bsd.doc.mk> infrastructure, and update the docs to match
the new infrastructure.

- Build and install text, ps, pdf, and/or html, not roff sources.

- Don't wire the chapter numbers into the build system, or use them in
the installed pathnames. This didn't matter much when the docs were a
museum, but now that we're theoretically going to start maintaining
them again, we're going to add and remove documents periodically and
having the chapter numbers baked in creates a lot of thrashing for no
purpose.

- Specify the document name explicitly, rather than implicitly in a
path. Use this name (instead of other random strings) as the name
of the installed files.

- Specify the document section, which is the subdirectory of
/usr/share/doc to install into.

- Allow multiple subdocuments. (That is, multiple documents in one
output directory.)

- Enumerate the .png files groff emits along with html so they can be
installed.

- Remove assorted hand-rolled rules for running roff and roff widgetry
and add enough variable settings to make these unnecessary. This
includes support for
   - explicit use of soelim
   - refer
   - tbl
   - pic
   - eqn

- Forcibly apply at least minimal amounts of sanity to certain
autogenerated roff files.

- Don't exclude USD.doc, SMM.doc, and PSD.doc directories from the
build, as they now actually do stuff.

Note: currently we can't generate pdf. This turns out to be a
nontrivial problem with no immediate solution forthcoming. So for now,
as a workaround, install compressed .ps as the printable form.
2014-07-05 19:22:02 +00:00
dholland
f86ebf3938 Don't print junk errnos. Avoids:
% ps -tfoo
  ps: /dev/ttyfoo: Undefined error: 0
  Exit 1
2014-06-28 17:32:27 +00:00
christos
f032129312 Adjust to the new alias text libedit API. 2014-06-18 18:17:30 +00:00
wiz
a5aae24aeb Bump date for previous. 2014-06-15 07:27:22 +00:00
dbj
2b213458d4 update list of flags which are extensions to the specification 2014-06-15 07:00:24 +00:00
mrg
26f35dd6b6 remove the build support for GCC 4.1, and any hacks i found for it.
there could still be more -- i only looked for lines matching
both "HAVE_GCC" and "4" as words (grep -w.)
2014-06-13 01:17:45 +00:00
christos
2e317a68f7 PR/48843: Jarmo Jaakkola: Soften the language in the manual page,
making less promises about behavior not explicitly stated in the standard.
2014-06-01 17:46:06 +00:00
christos
01f35fcceb PR/48843: Jarmo Jaakkola: dot commands mess up scope nesting tracking
Evaluation of commands goes completely haywire if a file containing
a break/continue/return command outside its "intended" scope is sourced
using a dot command inside its "intended" scope.  The main symptom is
not exiting from the sourced file when supposed to, leading to evaluation
of commands that were not supposed to be evaluated.  A secondary symptom
is that these extra commands are not evaluated correctly, as some of them
are skipped.  Some examples are listed in the How-To-Repeat section.

According to the POSIX standard, this is how it should work:
    dot:
        The shell shall execute commands from the file in the current
        environment.
    break:
        The break utility shall exit from the smallest enclosing for, while,
        or until loop, [...]
    continue:
        The continue utility shall return to the top of the smallest
        enclosing for, while, or until loop, [...]
    return:
        The return utility shall cause the shell to stop executing
        the current function or dot script.  If the shell is not currently
        executing a function or dot script, the results are unspecified.

It is clear that return should return from a sourced file, which
it does not do.  Whether break and continue should work from the sourced
file might be debatable.  Because the dot command says "in the current
environment", I'd say yes.  In any case, it should not fail in weird
ways like it does now!

The problems occur with return (a) and break/continue (b) because:
    1)  dotcmd() does not record the function nesting level prior to
        sourcing the file nor does it touch the loopnest variable,
        leading to either
    2   a) returncmd() being unable to detect that it should not set
           evalskip to SKIPFUNC but SKIPFILE, or
        b) breakcmd() setting evalskip to SKIPCONT or SKIPBREAK,
        leading to
    3)  cmdloop() not detecting that it should skip the rest of
        the file, due to only checking for SKIPFILE.
The result is that cmdloop() keeps executing lines from the file
whilst evalskip is set, which is the main symptom.  Because
evalskip is checked in multiple places in eval.c, the secondary
symptom appears.
>How-To-Repeat:
Run the following script:

    printf "break\necho break1; echo break2" >break
    printf "continue\necho continue1; echo continue2" >continue
    printf "return\necho return1; echo return2" >return

    while true; do . ./break; done

    for i in 1 2; do . ./continue; done

    func() {
        . ./return
    }
    func

No output should be produced, but instead this is the result:
    break1
    continue1
    continue1
    return1

The main symptom is evident from the unexpected output and the secondary
one from the fact that there are no lines with '2' in them.
>Fix:
Here is patch to src/bin/sh to fix the above problems.  It keeps
track of the function nesting level at the beginning of a dot command
to enable the return command to work properly.

I also changed the undefined-by-standard functionality of the return
command when it's not in a dot command or function from (indirectly)
exiting the shell to being silently ignored.  This was done because
the previous way has at least one bug: the shell exits without asking
for confirmation when there are stopped jobs.

Because I read the standard to mean that break and continue should have
an effect outside the sourced file, that's how I implemented it.  For what
it's worth, this also seems to be what bash does.  Also laziness, because
this way required no changes to loopnesting tracking.  If this is not
wanted, it might make sense to move the nesting tracking to the inputfile
stack.

The patch also does some clean-up to reduce the amount of global
variables by moving the dotcmd() and the find_dot_file() functions from
main.c to eval.c and making in_function() a proper function.
2014-05-31 14:42:18 +00:00
martin
062900c4c2 PR bin/48798: fix format for ino_t.
Slightly modifed variant of the patch provided by Thomas Schmitt.
2014-05-10 09:39:18 +00:00
dholland
a468ec4988 Don't bother using variables whose value is never changed from the
initialization value.
2014-04-20 23:31:40 +00:00
dholland
4e3b1a0bd4 Use an enum type for PRINTMODE vs. WIDTHMODE. Compiler output diffs have
been checked.
2014-04-20 22:48:59 +00:00
christos
318c2b5cda PR/48729: Torbjörn Granlund: Avoid negative index in array ref. 2014-04-11 01:49:45 +00:00
wiz
b0b52b7f33 Wording improvement for previous.
From jmc@OpenBSD via Igor Sobrado.
2014-04-02 19:54:30 +00:00
wiz
ac632886e5 Apply diff from Igor Sobrado <isd@orion.ciencias.uniovi.es>:
We have written a diff to our ls(1) to recover the traditional behaviour
of -f implying -a.  This change does not only accommodates POSIX.1
but also matches traditional UNIX.

OpenBSD commit message:

CVSROOT:        /cvs
Module name:    src
Changes by:     sobrado@cvs.openbsd.org 2014/03/31 14:54:37

Modified files:
        bin/ls         : ls.1 ls.c

Log message:
restore the traditional behavior of -f implying -a; apparently Keith Bostic
forgot to restore it when the -f flag was put back on 2nd of September 1989,
after being removed on 16th of August as a consequence of issues getting it
working over NFS, so deviation from traditional UNIX behavior in all BSDs
looks like an historical accident; as a side effect, this change accommodates
behavior of this option to IEEE Std 1003.1-2008 (``POSIX.1'').

joint work with jmc@ (who found the inaccuracy in our implementation),
schwarze@ (who provided a detailed tracking of historical facts) and millert@

ok millert@, schwarze@
2014-04-02 10:55:47 +00:00
christos
e8c3f5b299 PR/48692: Henning Petersen: Missplaced paranthesis in bin/ed gbl.c and main.c 2014-03-31 12:55:46 +00:00
joerg
f18d1e6774 Use __printflike. 2014-03-25 17:23:37 +00:00
dholland
c4044741ea don't use sprintf 2014-03-23 05:07:59 +00:00
dholland
a3542600fb sprintf considered harmful 2014-03-23 05:06:42 +00:00
mlelstv
fa4d72b17c fix -w output 2014-02-22 13:11:42 +00:00
mlelstv
d85eb2bfe0 add u option to getopt again. 2014-02-22 13:08:13 +00:00
christos
c7dda21c10 Add -X (don't cross mount points when recursing) from tls@ 2014-02-21 02:42:41 +00:00
wiz
9a4a31623a Use .Nm for 'ls'. 2014-02-20 19:10:25 +00:00
christos
0c47a5c376 Add -O (only leaf files) and -P (print full path), from tls@ 2014-02-20 18:56:36 +00:00
dsl
dc210c7fbd Remove some pointless inclusions os sys/user.h 2014-02-19 20:42:14 +00:00
elric
b760f10513 Remove options added in 1.18, commitid: UhxHPgtT2Pzeg4Yw due to some
level of controversy about their inclusion.
2014-02-13 12:00:29 +00:00
christos
1468e9a310 explain why forks fail 2014-01-26 22:38:20 +00:00
roy
7969ec4d55 Add wctype(3) support to Shell Patterns.
Obtained from FreeBSD.
2014-01-20 14:05:51 +00:00
wiz
2161b7b1e3 Bump date for previous. 2014-01-15 09:24:31 +00:00
mlelstv
067314c61e Make ps -s use LTIME instead of TIME in the default output format. 2014-01-15 08:09:10 +00:00
mlelstv
b3dffa81d5 Add an LTIME column that prints lwp cputime. 2014-01-15 08:07:53 +00:00
christos
bc1be752a1 whitespace fixes 2014-01-01 19:50:44 +00:00
christos
316fbf0f9f There was a case where \n did not increase plinno 2014-01-01 19:06:45 +00:00
christos
87802d4338 clarify further. 2014-01-01 18:29:39 +00:00
christos
724ab0808b explain the previous fix. 2014-01-01 16:55:28 +00:00
christos
9bcdabb166 allow case statement without any patterns. 2013-12-31 22:53:57 +00:00
apb
81b1fb1df7 In all man pages that say:
The -H, -L and -P options are ignored unless the -R option is
    specified.  In addition, these options override each other and the
    command's actions are determined by the last one specified.

Add:

    The default is as if the -P option had been specified.
2013-12-17 09:54:08 +00:00
dholland
473e706d2d Remove entirely bogus /* NOTREACHED */ annotation. 2013-12-11 06:00:11 +00:00
spz
7ae9a70dc6 more complete fix for Coverity issue 976653 2013-12-08 08:32:13 +00:00
spz
78fc912d0b Coverity complaint fixes:
bin/cat/cat.c 976654 Argument cannot be negative
                     (missing check for fileno result, stdout)
bin/cat/cat.c 976653 Improper use of negative value
                     (missing check for fileno result, stdin)
2013-12-03 17:06:51 +00:00
wiz
8df34715d2 Stop hissing. 2013-11-14 07:45:05 +00:00
christos
e028f49d87 add --gnu for pax. 2013-11-14 04:00:48 +00:00
christos
5c83aa644a PR/48312: Dieter Roelands: According to TOG, unset should not return an error
for functions are variables that were not previously set:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
2013-11-01 16:49:02 +00:00
mrg
5a3d1851d6 #ifdef a variable decl/setting with it's use. 2013-10-30 08:38:40 +00:00
christos
3dd8ce9f5e Fixed unused warnings. 2013-10-18 19:53:34 +00:00
ast
83d9b54597 Fix PR bin/48202 [non-critical/low]:
sh +nounset and `for X; do` iteration fails if parameter set empty
by applying and testing FreeBSD's patch of Oct 24 2009 for this; see
  http://svnweb.freebsd.org/base/head/bin/sh/expand.c?r1=198453&r2=198454
Also created an ATF test in tests/bin/sh/t_expand.sh for this error and
corrected a space->tabs problem there as well.
2013-10-06 21:05:50 +00:00
christos
b258a62a64 add stdio.h 2013-10-02 21:48:55 +00:00
christos
ca8473e079 document LINENO
XXX: someone should fix all the .Ev stuff because some of them are just
shell variables .Va and are not really exported to the environment. See
the FreeBSD man page.
2013-10-02 20:42:56 +00:00
christos
018a6f7864 add crude $LINENO support for FreeBSD 2013-10-02 19:52:58 +00:00
christos
700d3ab22a - print the line discipline using the new ioctl
- print the queue size
2013-09-12 19:47:23 +00:00
christos
eca938ae97 CID 1060854: Wrong sizeof argument (SIZEOF_MISMATCH) 2013-08-06 05:42:43 +00:00
christos
e164b1463b PR/48095: NAKAJIMA Yoshihiro: remove casts from time_t to long 2013-07-29 17:46:36 +00:00
christos
248e8c4711 fix error handling. 2013-07-19 15:53:00 +00:00
wiz
29c72c8d8a Sort. 2013-07-19 11:19:23 +00:00
roy
579c771490 Add the following options
-A Display the FQDN of each address on all interfaces.
-a Display alias name(s) of the host.
-d Display the DNS domain.
-f Display the FQDN for the hostname.
-I Display each IP address on all interfaces.
-i Display the IP address(es) for the hostname.
2013-07-19 10:34:51 +00:00
christos
37a296c0b9 PR/48057: psi: skip and msgfmt cannot be used together. Looks like a pasto;
fixed.
2013-07-17 12:55:48 +00:00
christos
37e3924882 WARNS=6 [-Wconversion] 2013-07-16 17:47:43 +00:00
joerg
9e69720425 Fix violations of the sequence point rule. 2013-06-28 15:04:35 +00:00
yamt
44f7683783 fix descriptor leaks. PR/47805
this fix was taken from FreeBSD SVN rev 199953 (Jilles Tjoelker)
    ------------------------------------------------------------------------
    r199953 | jilles | 2009-11-30 07:33:59 +0900 (Mon, 30 Nov 2009) | 16 lines

    Fix some cases where file descriptors from redirections leak to programs.

    - Redirecting fds that were not open before kept two copies of the
      redirected file.
	sh -c '{ :; } 7>/dev/null; fstat -p $$; true'
	(both fd 7 and 10 remained open)
    - File descriptors used to restore things after redirection were not
      set close-on-exec, instead they were explicitly closed before executing
      a program normally and before executing a shell procedure. The latter
      must remain but the former is replaced by close-on-exec.
	sh -c 'exec 7</; { exec fstat -p $$; } 7>/dev/null; true'
	(fd 10 remained open)

    The examples above are simpler than the testsuite because I do not want to
    use fstat or procstat in the testsuite.
2013-06-27 23:22:04 +00:00
yamt
071e965c48 constify 2013-06-12 01:36:52 +00:00
simonb
3a5cb7b1be Document that a here-document can finish at an EOF as well as at the
delimiter.
2013-05-09 11:43:27 +00:00
uebayasi
02829a8ca7 test(1): Compare timestamp in nsec scale in -nt/-ot. 2013-05-04 06:26:44 +00:00
zafer
51b7448f79 remove whitespace from end of file.
introduced by erh in 1.49
2013-05-02 22:43:55 +00:00
dholland
7e346d08a4 Add const. 2013-04-28 17:01:28 +00:00
wiz
eb5604b032 Sort sections. 2013-04-26 19:34:34 +00:00
christos
aab67d5210 PR/47770: Eitan Adler: add x flag to rm to avoid cross mount points 2013-04-26 18:43:22 +00:00
christos
2227ba4bf1 Make shifting variables reflect their environment counterparts. Makes
"shift path" work as expected.
2013-04-03 17:32:24 +00:00
christos
2135348107 PR/47608: Robert Elz: ``var=value func-call'' does not export var in the
function (+FIX)
2013-03-02 22:02:32 +00:00
he
85e98624ed When using -ledit, also use -lterminfo, to allow static linking. 2013-01-25 19:07:14 +00:00
christos
0961e62ab9 Obey SMALLPROG and don't enable the editor 2013-01-25 14:20:57 +00:00
christos
54f7a5dbf7 Recognize extended attribute headers and warn about them since we are not
currently handling them.
2013-01-24 17:43:44 +00:00
christos
185136779b make history kind of work :-), turn libedit support on. 2013-01-23 16:39:03 +00:00
christos
9263138f08 fix compilation without -DEDIT 2013-01-22 22:40:31 +00:00
wiz
cefd6eea55 Bump date for previous. 2013-01-22 21:20:26 +00:00
christos
5e9a2dddf3 Add a little libedit front end. Could be used as someone's pet project to
learn how to program. It is not enabled in the Makefile, and it states why
there.
2013-01-22 20:35:29 +00:00
christos
cd0ed5aa5a Remove alloc builtin, it did not work anyway since most modern malloc
implementation use a combination of sbrk/mmap.
2013-01-22 19:28:00 +00:00
dsl
0e82f4eb77 include limits.h for CHAR_MIN 2013-01-02 22:28:42 +00:00
dsl
658a58d038 Add support for '%n' being a shorthand for 'fg %n'. 2012-12-31 14:10:15 +00:00
christos
55853dd5e1 sprinkle const, no functional change intended. 2012-12-27 21:19:20 +00:00
dsl
7d60739ae7 Fix the expansion of "$(foo-$bar}" so that IFS isn't applied when
expanding $bar.
Noted by Greg Troxel on tech-userlevel running some 'git' tests.
Should fix PR bin/47361
2012-12-22 20:15:22 +00:00
wiz
dbb168824f - Remove unneeded consecutive argument in `.Nm' macros;
- rename `GRAMMAR AMBIGUITY' section to `CAVEATS', and move it to
  correct location;
- bump date.

From Bug Hunting.
2012-12-16 17:57:49 +00:00
christos
6814c65d63 PR/47317: Henning Petersen: Replace index() with strchr() 2012-12-13 19:33:23 +00:00
apb
ee9a2498cf Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat.  This should fix PR 47188.
2012-12-02 12:55:27 +00:00
abs
6f08f9dbdd PR/47167
ls.1:
- Sort options in `SYNOPSIS', the option list, and texts within
  the man page;
- improve wording;
- improve macro usage;
- use more consistency regarding (locations for) information about
  which options override which;
- cross-reference `-d' and `-R';
- simplify description of `-k', removing redundant and unneeded
  information;
- sort entry type list (but leave `-a' and `-A' as they are, given
  their meaning);
- correct / augment description of `BLOCKSIZE' environment variable
  in `ENVIRONMENT' section;
- bump date.

ls.c:
- Sort options in `usage';
- augment comment about when to figure out block size.
2012-11-20 12:37:29 +00:00
christos
9638719987 only allocate if it would not fit in our buffer. 2012-11-19 19:41:31 +00:00
christos
c25982c7d1 fix bogus warning for zero-sized files. 2012-11-19 19:34:03 +00:00
wiz
baebe9d053 Sync usage with man page. 2012-11-10 18:42:22 +00:00
wiz
c6d7976845 Sort options (no-argument ones first, then argument-taking ones). 2012-11-10 18:41:10 +00:00
christos
0002c266f0 Add an option to read with a different buffer size, and document the
buffer size we use. This allows us to cat -B 10000000 /proc/<pid>/maps
for example which cannot handle seeking.
2012-11-10 16:18:41 +00:00
christos
c8bb8a7a53 fix argument parsing. 2012-10-22 18:00:46 +00:00
christos
bc8069542c add --reference=rfile 2012-10-22 17:47:06 +00:00
wiz
9ed3eb6e68 Use more markup. 2012-10-21 08:18:27 +00:00
jschauma
708ea1dcd8 clarify that BLOCKSIZE also influences the total in long output 2012-10-21 01:39:05 +00:00
njoly
bee4003ac7 Remove a few unneeded Pp macros. 2012-10-13 14:18:16 +00:00
wiz
f8c0e3497a - Correct macro usage;
- improve wording, including creating more consistency therein.

From Bug Hunting.
2012-10-03 19:37:36 +00:00
christos
4f5a673dad deal properly with empty lines in spec file 2012-09-27 00:44:59 +00:00
wiz
c650101e34 - improve punctuation;
- improve (create more consistency in) spelling;
- remove unnecessary (and in part ignored) macros, as well as an
  unnecessary argument to `.Bl' (fixes mandoc(1) warnings);
- improve wording;
- bump date.

Patch from Bug Hunting.
2012-08-26 14:30:38 +00:00
wiz
8630b9004f Improvements: wording, punctuation, macro usage.
From patch by Bug Hunting.
2012-08-12 17:27:04 +00:00
christos
6d8547fddc add missing include files 2012-08-09 11:05:59 +00:00
christos
d653d57c19 PR/46786: Simon Burge: After conversion to 64 bit time_t, tar/pax/cpio
erroneously think that negative time_t's never fit in 32 bits. Rework
conversion code to always use uintmax_t, and detect negative values.
XXX[1]: Perhaps we should do the same (use a signed conversion) for all
fields not just for time_t
XXX[2]: pullup for 6
2012-08-09 08:09:21 +00:00
dholland
2a71916f89 Use "e.g.", not "i.e.", to introduce an example. 2012-08-09 07:26:28 +00:00
christos
aa24bb3ca4 let the standard rules deal with librumpclient 2012-08-08 14:09:14 +00:00
yamt
46583bd0ea handle realloc failure 2012-06-29 12:51:38 +00:00
wiz
5ac3b50142 - sync SYNOPSIS' with dd.c's usage' line;
- correct spelling (prepositions).

From Bug Hunting.
2012-06-20 17:54:16 +00:00
wiz
18bcc29285 Remove another Pf. From Bug Hunting. 2012-06-20 14:19:39 +00:00
wiz
d1752d5db8 - remove trailing white space;
- sync `usage' with man page.

From patch by Bug Hunting.
2012-06-20 10:09:43 +00:00
wiz
9cbbbe6c0d - improve wording, and create more consistency within the text;
- correct `SYNOPSIS';
- improve macro usage;
- mention argument name for `-f' (and change list width for it);
- correct misplacement of periods (`.') and a parenthese (`(');
- fix typo;
- bump date.

From Bug Hunting.
2012-06-20 10:09:21 +00:00
wiz
123b56dc76 Initialize two variables for clang. 2012-06-17 20:48:27 +00:00
joerg
0adfd5e0b3 Make sure temp_path is always initialised, even if mklocal fails.
Make sure to restore localvars, even if possibly leaking memory.
Discussed with christos@
2012-06-14 18:56:54 +00:00
dholland
61f93db25f Rectify race condition in rm -P processing by checking that the file
we opened is the one we expected to get. Also use O_NOFOLLOW to help
avoid even opening devices, which sometimes produce side effects.

Reported by Radoslaw A. Zarzynski.
2012-06-13 07:35:37 +00:00
njoly
089201c2fd Allow thread limit queries by adding the new -r flag to ulimit. Add
the corresponding documentation in the man page.
2012-06-11 18:28:10 +00:00
christos
8af1ed165c support RLIMIT_NTHR 2012-06-09 02:50:43 +00:00
christos
426530cc5c support RLIMIT_NTHR. 2012-06-09 02:49:48 +00:00
joerg
1907ec3a61 Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to
depend on new devname_r(3) as heart. Add /dev/pts magic directly to
devname(3). While it can lead to returning non-existing paths, the
behavior is more consistent that way. Drop caching layer in devname(3),
it doesn't buy anything for the common case of having access to the
database. Teach devname(3) proper fallback behavior of scanning /dev.
Create both old-style and new-style database for now in /etc/rc.d/sysdb.
2012-06-03 21:42:44 +00:00
jdf
4197d2d493 Remove an unnecessary space in the manpage. Patch provided by Bug Hunting. 2012-05-09 22:29:06 +00:00
chs
e9b012a310 allocate a separate buffer in each call to sink().
reusing the buffer across recursive calls just doesn't work right.
2012-05-07 15:22:54 +00:00
joerg
763e57918f Push logic to convert a ttyname to a device number into its own
function. Improve dealing with ptyfs by explicitly handling missing
pts/%d entries, if the kernel supports the pts device (PR 40813).
2012-05-07 13:14:31 +00:00
wiz
d1cbb54293 Increase width of table column so it formats more nicely. 2012-04-15 21:20:16 +00:00
wiz
623d7ac414 Choose better argument name for `-U' (sync with man page).
From Bug Hunting in email.
2012-04-15 18:10:13 +00:00
wiz
463d14b148 - choose better argument name for `-U';
- add argument names for options in man page;
- improve wording, punctuation, capitalization.

From Bug Hunting in email.
2012-04-15 18:09:50 +00:00
wiz
a036920a7d Describe behaviour when no arguments are given.
Add comma.
Bump date.

From Bug Hunting.
2012-04-06 11:42:08 +00:00
wiz
c27272249b - fix timed(8) references;
- fix capitalization;
- add reference to environ(7) in `SEE ALSO' section, as it is
  mentioned in the text.

From patch by Bug Hunting.
2012-04-06 11:36:56 +00:00
joerg
b757af438b Disable new -Wstring-plus-int warning where needed for now.
Adjust various places that add GCC-only options to check for the active
compiler first.
2012-04-04 10:59:44 +00:00
christos
a080d61232 include <limits.h> for CHAR_MIN/CHAR_MAX 2012-03-28 20:11:25 +00:00
wiz
43a44d853f From patch by Bug Hunting:
- bump the manpage's date (because of the next change);
- note that cp(1) does not preserve hard links (even with `-R'),
  and refer to pax(1) there as well as in the `SEE ALSO' section
  for such functionality (this change is based upon a similar note
  in FreeBSD's version of the manpage);
- change a wording, for more overall consistency.
2012-03-25 22:37:08 +00:00
christos
1cd38287c6 PR/43597: Don't break from parsing word tokens in we are in double quotes.
Fixes: sh -c 'echo "${foo:="first-word"} second-word"'
2012-03-25 18:49:13 +00:00
christos
bc5ad24935 PR/6764: Charles M. Hannum: `trap 0' does not work in ksh subshells. When
subshells exit normally, use unwind(LEXIT) instead of unwind(LLEAVE) so that
traps get executed.
2012-03-25 17:23:48 +00:00
wiz
3957bea1ef Fix whitespace nits. Suggested by Bug Hunting. 2012-03-22 07:58:16 +00:00
matt
d8695ce615 Default to WARNS=5 2012-03-21 05:47:53 +00:00
matt
da4f7877a7 Use C89 function definitions 2012-03-20 18:42:28 +00:00
njoly
25dede0e9d Adjust for mandoc output. 2012-03-19 10:48:20 +00:00
christos
0e2492e23b fix signed blksize_t lossage. 2012-03-17 23:35:28 +00:00
wiz
ca57fd067f Use Lk. 2012-03-17 11:09:29 +00:00
wiz
7fd6e7037d Remove trailing whitespace. 2012-03-15 15:49:59 +00:00
christos
21ae83057a Fix obsolete example (that referred to letters in process state that are
not set anymore), and clarify their meaning.
2012-03-15 15:43:43 +00:00
joerg
66dd2755f5 Add __printflike attribution to use vprintf and friends with an argument
as format string.
2012-03-15 02:02:20 +00:00