Commit Graph

3304 Commits

Author SHA1 Message Date
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
dholland cc236b866a The 'lstart' column uses strftime %c, not %C. Noted by mrg. 2012-02-23 21:54:28 +00:00
joerg a401c50446 Don't use a for-loop with empty body. 2012-02-23 18:23:33 +00:00
matt 3ee36a48b5 Fix a very old bug. When allocating the buffer and doing just a bs= transfer,
hen we only need a single buffer equal to that blocksize in length.
2012-02-21 01:49:01 +00:00
wiz 6b6a89aacb Remove unused variable.
From cppcheck via Henning Petersen in PR 46002.
2012-02-13 12:55:28 +00:00
dholland 145f9b8221 Minor English improvements for -w, partly from Snader_LB. 2012-01-27 05:59:17 +00:00
christos 1897181a72 From tnozaki@: make fpos_t a complex object that keeps track of the parse
state of the stream. Change argument of the seek function to funopen() from
fpos_t to off_t. Make f{g,s}etpos() use the new fpos_t struct, while providing
backwards compatible entry points. Approved by releng@
2012-01-22 18:36:14 +00:00
christos df65f3e2c9 Siginfo support from Daniel Loffgren 2012-01-21 16:38:41 +00:00
christos 09838d02ff PR/45856: Bernhard "Burnhard" Riedel: Infinite loop on &nbsp; input. Sending
char 160 in the input to csh, lead it to an infinite loop, because tcsh tables
counted this as a space character, but the word logic switch does not. Change
that character tables, so that this does not count as a spacing character
anymore, by syncing the table with the one from tcsh.
2012-01-19 02:42:53 +00:00
christos de523f0873 use strspct. 2012-01-07 18:45:13 +00:00
christos eb8f42a53b Add siginfo support from Daniel Loffgren. 2012-01-04 15:58:37 +00:00
christos 1847bab548 PR/45613: Aleksey Cheusov: /bin/sh: 'set -e' + 'if eval false' problem
Fixed from: http://www.freebsd.org/cgi/query-pr.cgi?pr=134881&cat=
2011-11-14 18:24:45 +00:00
christos c4753f0f6f sync with /usr/bin/time, use CLOCK_MONOTONIC 2011-11-09 19:16:00 +00:00
jym 331bd1b067 As suggested by Enami, rework the msgfmt logic a bit:
- error out when an unknown specifier is used. Do this in f_msgfmt(),
before dd(1) starts operation.
- allow buffer_write() to flush the internal buffer even when NULL is
passed as parameter.

Some whitespace fixes too.
2011-11-07 22:24:23 +00:00
jym 234ccf064a Add a new command to dd(1): msgfmt. The command modifies the
output of the information summary returned by dd(1). This can be used
to specify messages in a more usable (or parseable) format like
human-readable values.

My intent is to re-use this for building image files and quick I/O
benchmarking.

Reviewed by tsutsui@ on tech-userlevel. See also
http://mail-index.netbsd.org/tech-userlevel/2010/12/03/msg004179.html

Some examples:

 $ dd if=/dev/zero of=/dev/null bs=1m count=1 msgfmt=human
1+0 records in
1+0 records out
1048576 bytes (1,0 MB) transferred in 0.001 secs (1048576000 bytes/sec - 1,0 GB/sec)

 $ dd if=/dev/zero of=/dev/null count=1 msgfmt='
 > <speed>%E</speed>
 > <time>%s</time>
 > <bytes>%b</bytes>
 > '
<speed>500 KB/sec</speed>
<time>0.001</time>
<bytes>512</bytes>
2011-11-06 21:22:23 +00:00
christos ce978720e5 Accept -X - 2011-11-03 21:59:45 +00:00
yamt 77975fd4f2 note what "other ln implementations" is. 2011-10-24 16:15:46 +00:00
reed 7c8c54b731 Fix typo.
From Snader_LB on IRC.
2011-10-18 12:36:31 +00:00
joerg a2567f3beb Don't use non-literal format strings. 2011-10-16 17:12:11 +00:00
reed f67ef85d6d Typo in comment fix from Snader_LB via IRC. 2011-10-16 00:32:25 +00:00
christos 13d04b5999 print the flag too next to the units like bash does. 2011-10-11 15:27:11 +00:00
christos 790e94dff8 Merge duplicate information. 2011-10-05 13:15:30 +00:00
apb b0bdcb0f27 .Dq Dv \&: 2011-10-04 18:11:27 +00:00
christos 113ec67ab4 Mention what happens when we don't include :. It would be nice to use
.Dv :
but it produces ``'':
2011-10-04 18:07:39 +00:00
christos 03561a047f csh has no business using TTYHOG 2011-09-24 14:44:11 +00:00
joerg 6b5273200c Use __dead for the small build too 2011-09-16 16:06:23 +00:00
dholland d88c027e8a A feature that wasn't implemented for 4.4alpha and still isn't implemented
is just plain not implemented.
2011-09-11 06:02:20 +00:00
plunky 9f61b80465 NULL does not need a cast 2011-08-31 16:24:54 +00:00
gson 52d3b7aa35 Use the same column spacing for the -h output as with the normal output,
as the same header line format is used in both cases and it can't line
up correctly with both of them otherwise.
2011-08-29 17:30:28 +00:00
joerg 5bb1ddccc2 Use __dead 2011-08-29 14:51:17 +00:00
joerg 490b73bf85 Mark yyerror as static and __dead. 2011-08-29 14:50:27 +00:00
joerg 074c0c6e91 static + __dead 2011-08-29 14:47:47 +00:00
joerg 7aae24bc7d static + __dead 2011-08-29 14:45:28 +00:00
joerg 44db7ee6ac Move usage and mark it static+dead 2011-08-29 14:44:21 +00:00
joerg 30176a91ba static + __dead 2011-08-29 14:38:30 +00:00
enami 8bc2f3136d No need to print internal state once debug is done. 2011-08-29 00:36:20 +00:00
christos bc6c0498a1 - static/__dead
- use strpct from libutil
- fix off by one in format
2011-08-28 08:20:58 +00:00
christos bc4c3c5734 use strpct(3) from libutil. 2011-08-28 07:49:16 +00:00
joerg aa6d7bb577 Annotate dead functions 2011-08-27 12:55:09 +00:00
joerg 0bb547d3b0 Uses non-literal format strings in err.c 2011-08-25 15:44:51 +00:00
joerg 370cd318b5 Mark yyerror as dead. 2011-08-25 01:11:47 +00:00
christos 0404783632 document another non-literal format string 2011-08-23 10:47:06 +00:00
christos 69a4e2ee5b PR/45269: Andreas Gustafsson: Instead of falling off the edge when eating trailing newlines
if the block has moved, arrange so that trailing newlines are never placed in the string
in the first place, by accumulating them and adding them only after we've encountered a
non-newline character. This allows also for more efficient appending since we know how much
we need beforehand. From FreeBSD.
2011-08-23 10:04:39 +00:00
christos d452d7e758 - add pid to the trace file so that we don't keep overwriting ourselves
- use va_copy to print the trace arguments so that we don't deplete it for the real printf
2011-08-23 10:01:32 +00:00
christos 819193d44d add more gcc printf format attributes 2011-08-23 09:59:20 +00:00
dholland 0a54ac30f5 Requires stdint.h. 2011-08-21 21:24:34 +00:00
christos 8151f99568 use const char [] for format. 2011-08-21 08:40:31 +00:00
manu e3a6fc043c Remove warning about system extended attributes that cannot be copied, since
it will always be displayed when an unprivilegied user moves files across
filesystems (mv(1) uses cp -p in that case). After all, there is no warning
that we loose a setuid bit during a move or copy, so this makes sense.

Fixes bin/45259
2011-08-18 08:11:58 +00:00
wiz 00d8bbccfa Improve wording.
From Snader_LB.
2011-08-15 14:45:36 +00:00
christos fe8677c354 Document non-literal formats 2011-08-14 10:53:16 +00:00
christos 5adf1dc258 eliminate dup code and non literal format strings 2011-08-14 10:49:58 +00:00
christos 0fa1334129 kill gcc-4.5 hack. 2011-08-14 10:40:25 +00:00
christos 850af422f9 eliminate non-literal format string. 2011-08-14 09:38:05 +00:00
dholland 7f03f2cad6 Adjust wording of previous and fix a couple grammar slipups/typos. 2011-08-03 15:44:15 +00:00
wiz 279244c214 New sentence, new line. Remove trailing whitespace. Bump date for previous. 2011-08-03 14:02:59 +00:00
manu a9ed0e9824 iExplain what happens to extended attriutes when -p is used. 2011-08-03 12:55:03 +00:00
manu 32c00d6291 Make cp -p and mv preverve extended attributes, and complain if they cannot.
Also introduce library functions for copying extended attributes from one
file to another:
- extattr_copy_file, extattr_copy_fd, extattr_copy_link, with FreeBSD style,
  where a namespace is to be supplied
- cpxattr, fcpxattr, lcpxattr, with Linux style, where all namespaces
  accessible to the caller are copied, and the others are silently ignored.
2011-08-03 04:11:15 +00:00