Home | History | Annotate | only in /src/bin/echo
History log of /src/bin/echo
RevisionDateAuthorComments
 1.9 10-Oct-2021  rillig echo: clean up, increase WARNS to 6

Lint can handle __COPYRIGHT and __RCSID, so there is no need to hide
them anymore.

Use proper type 'bool' for nflag, ensure correct types via lint's strict
bool mode.

Remove unnecessary call to exit(0); returning from main is equivalent
since C99.

No functional change.
 1.8 20-Jul-1997  christos branches: 1.8.112;
Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.
 1.7 20-Jul-1997  thorpej Build with WARNS
 1.6 21-Mar-1995  cgd convert to new RCS id conventions.
 1.5 22-Sep-1994  mycroft Merge 4.4-Lite version.
 1.4 01-Aug-1993  mycroft Add RCS identifiers.
 1.3 23-Mar-1993  cgd changed "Id" to "Header" for rcsids
 1.2 22-Mar-1993  cgd added rcs ids to all files
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 22-Sep-1994  mycroft Import original 4.4-Lite version.
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.8.112.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.112.1 21-Apr-2020  martin Sync with HEAD
 1.20 14-May-2024  gutteridge echo.1: borrow advice about printf(1) from the OpenBSD man page
 1.19 26-Feb-2020  wiz Add some commas.
 1.18 26-Feb-2020  gutteridge echo.1: add a note about other echo implementations

The other BSDs all have a note reminding that many shells have their
own internal echo implementations which may vary from this utility, so
add one. (Much of the wording is borrowed from FreeBSD's man page.)

(The other BSDs also have notes about the -n option not really being
portable, and printf[1] being preferable, we might want to add
something about that, too.)
 1.17 04-Jul-2017  wiz branches: 1.17.6;
Use Ex.
 1.16 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.15 14-Aug-2016  sevan While the v2 source and man pages are incomplete, TUHS has a scanned copy of the
printed version of the 2nd edition manual. echo is featured in this copy.
http://www.tuhs.org/Archive/PDP-11/Distributions/research/1972_stuff/unix_2nd_edition_manual.pdf
Ammend HISTORY and bump date.
 1.14 11-Aug-2016  sevan Document the version echo first appeared.
Bump date.
 1.13 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22249, verified by myself.
 1.12 08-Feb-2002  ross Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
 1.11 04-Sep-2000  kleink For commands and utilities, use EXIT STATUS rather than RETURN VALUES as
appropriate (and documented in mdoc(7)).
 1.10 28-Aug-2000  hubertf Add 'RETURN VALUE' section header.
 1.9 25-Jan-2000  enami branches: 1.9.4;
Use .Ar macro for argument.
 1.8 20-Oct-1997  enami Fix .Nm usage.
 1.7 21-Mar-1995  cgd convert to new RCS id conventions.
 1.6 22-Sep-1994  mycroft Merge 4.4-Lite version.
 1.5 28-Aug-1993  jtc Document the fact that echo is POSIX.2 compliant.
 1.4 01-Aug-1993  mycroft Add RCS indentifiers.
 1.3 23-Mar-1993  cgd changed "Id" to "Header" for rcsids
 1.2 22-Mar-1993  cgd added rcs ids to all files
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 22-Sep-1994  mycroft Import original 4.4-Lite version.
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.9.4.1 28-Aug-2000  hubertf Pull up to netbsd-1-5 branch, OK'd by thorpej:

Log Message:
> Add 'RETURN VALUE' section header.

Files & Revisionis:
> cvs rdiff -r1.19 -r1.20 basesrc/bin/cat/cat.1
> cvs rdiff -r1.12 -r1.13 basesrc/bin/chmod/chmod.1
> cvs rdiff -r1.14 -r1.15 basesrc/bin/cp/cp.1
> cvs rdiff -r1.8 -r1.9 basesrc/bin/dd/dd.1
> cvs rdiff -r1.9 -r1.10 basesrc/bin/echo/echo.1
> cvs rdiff -r1.11 -r1.12 basesrc/bin/expr/expr.1
> cvs rdiff -r1.25 -r1.26 basesrc/bin/ls/ls.1
> cvs rdiff -r1.10 -r1.11 basesrc/bin/mkdir/mkdir.1
> cvs rdiff -r1.23 -r1.24 basesrc/bin/mt/mt.1
> cvs rdiff -r1.12 -r1.13 basesrc/bin/mv/mv.1
> cvs rdiff -r1.16 -r1.17 basesrc/bin/pwd/pwd.1
> cvs rdiff -r1.9 -r1.10 basesrc/bin/rm/rm.1
> cvs rdiff -r1.11 -r1.12 basesrc/bin/rmdir/rmdir.1
> cvs rdiff -r1.35 -r1.36 basesrc/bin/sh/sh.1
> cvs rdiff -r1.11 -r1.12 basesrc/bin/sleep/sleep.1
> cvs rdiff -r1.20 -r1.21 basesrc/bin/stty/stty.1
 1.17.6.3 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.17.6.2 21-Apr-2020  martin Sync with HEAD
 1.17.6.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.23 16-Nov-2021  rillig echo: fix lint error due to strict bool mode

No functional change.
 1.22 10-Nov-2021  kre With -Wall compiling this was giving:

echo.c: In function 'main':
echo.c:74:1: warning: control reaches end of non-void function

This raises 2 issues.

First, why with WARNS set to 6, which should include just about
everything, was this not causing problems with everyday builds?
Surely falling off the end of a non-void function without returning
a specific value is one of the more basic errors that should be fixed.
(Whatever the name of the function). Is there a missing -Wxxx option?

And second, does C99 really promise:
Remove unnecessary call to exit(0); returning from main is equivalent
since C99.
in the sense that simply falling out of main() is exit(0)? Or is it
simply saying that the return value of main() is the exit status (which
has been true for much longer than since c99)?
 1.21 10-Oct-2021  rillig echo: clean up, increase WARNS to 6

Lint can handle __COPYRIGHT and __RCSID, so there is no need to hide
them anymore.

Use proper type 'bool' for nflag, ensure correct types via lint's strict
bool mode.

Remove unnecessary call to exit(0); returning from main is equivalent
since C99.

No functional change.
 1.20 19-May-2021  kre Catch up with /bin/sh built-in echo ... if a write error occurs,
don't just exit(1), write an error message to stderr as well
(required for POSIX conformance).
 1.19 05-Sep-2016  sevan branches: 1.19.14; 1.19.20;
Drop main() prototype.
 1.18 18-Sep-2008  dholland Check ferror(stdout) and exit(1) if there's been a problem.
Fixes PR bin/39574 from Ed Ravin, but with a simpler patch.
 1.17 20-Jul-2008  lukem Remove the \n and tabs from the __COPYRIGHT() strings.
 1.16 26-May-2008  christos PR/38755: murray armfield: /bin posix programs missing setprogname and/or
setlocale
 1.15 25-Nov-2003  simonb branches: 1.15.16; 1.15.30; 1.15.32;
Put a few headers back so this compiles again.
Compile problems noticed by Dan Carosone.
 1.14 24-Nov-2003  jschauma Also remove headers that are no longer needed. Also pointed out by Mike
Small.
 1.13 24-Nov-2003  jschauma Remove unused variable stdout_ok, which was left over from my changes
in September. Pointed out by Mike Small in a private email.
 1.12 14-Sep-2003  jschauma Following private discussion with kleink@ and hubertf@ and public discussion
on tech-userlevel@, back out printescaped() functionality.
kleink: ``We sell rope.''
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22249, verified by myself.
 1.10 04-Aug-2003  jschauma As discusses a little while back on tech-userlevel:

If stdout is a tty, use vis(3) to print any filenames to prevent garbage
from being printed if the filename contains control- or other non-printable
characters.

While here, sprinkle some EXIT_FAILURE and NOTREACHED where appropriate.
 1.9 29-Jul-2001  wiz ANSIfy, KNF. Parts from #13590 by Petri Koistinen.
 1.8 05-Nov-1997  cgd lint
 1.7 20-Jul-1997  thorpej __RCSID()/__COPYRIGHT()/prototype police.
 1.6 21-Mar-1995  cgd convert to new RCS id conventions.
 1.5 22-Sep-1994  mycroft Merge 4.4-Lite version.
 1.4 01-Aug-1993  mycroft Add RCS identifiers.
 1.3 23-Mar-1993  cgd changed "Id" to "Header" for rcsids
 1.2 22-Mar-1993  cgd added rcs ids to all files
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 22-Sep-1994  mycroft Import original 4.4-Lite version.
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.32.3 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.15.32.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.15.32.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.15.30.1 04-Jun-2008  yamt sync with head
 1.15.16.1 18-Nov-2008  bouyer Pull up following revision(s) (requested by dholland in ticket #1232):
bin/echo/echo.c: revision 1.18
bin/sh/bltin/bltin.h: revision 1.13
bin/sh/bltin/echo.c: revision 1.14
bin/sh/output.c: revision 1.30
bin/sh/output.h: revision 1.19
Check ferror(stdout) and exit(1) if there's been a problem.
Fixes PR bin/39574 from Ed Ravin, but with a simpler patch.
output.c output.h: expose OUTPUT_ERR (flag for an exposed flags variable)
bltin.h: support ferror()
echo.c: use ferror() to fail on output write errors
Another piece of PR bin/39574.
 1.19.20.1 31-May-2021  cjep sync with head
 1.19.14.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.19.14.1 21-Apr-2020  martin Sync with HEAD

RSS XML Feed