Subject: Re: misc/23278: fixes for sh(1) - wrong sections and man pages referred
To: NetBSD GNATS submissions and followups <>
From: Igor Sobrado <>
List: netbsd-bugs
Date: 10/28/2003 10:03:53
In message <>, you wrote:
> [ On Monday, October 27, 2003 at 13:34:02 (+0100), Igor Sobrado wrote: ]
> > How curious,
> > sh(1) was originally written by Stephen Bourne (the former ACM president)
> > and used in AT&T Unix.  csh(1) was developed for the BSD operating
> > systems.  ;-)
> Well, actually the history of csh is a little more complicated than that.
> Bourne independently wrote a new shell for the Seventh Edition, and it's
> the root of all things "sh" in modern systems, though of course the
> implementation we use in NetBSD is not based on any more than the syntax
> implemented by Bourne's interpreter.

The Bourne shell used in NetBSD has those improvements that are really
useful for end users, like the ability to recover the history and edit
a line to fix things.  I like a lot both vi and emacs modes.

> Besides, "sh" is a POSIX thing; and "csh" is a nothing.  :-)

You are absolutely right.  "sh" is a POSIX fully compliant interpreter.
One of the best things in all the BSDs is the compliance with standards,
and that is good for interoperability.  Now I am running a lot of Unices
on my machines (Solaris, in both x86 and SPARC, HP-UX, NetBSD, IRIX, and
SINIX-P).  At our University, we are running a lot of GNU/Linux
workstations and servers too.  Not so bad, but I have a lot of problems
using both telnet and ssh with the GNU/Linux systems from other machines
(even with TERM set to low-end DEC VT terminals).  We have a lot of
issues running a NFS server on a GNU/Linux server, it does not implements
locks as expected and a lot of software fails when using remote

I see that all BSDs have a clean design and follow standards (even if
the operating systems themselves are not certified, but it is another

> Also, I'm not really a fan of any BSD technology per se (I am a great
> fan of BSD politics), though I do very much acknowledge some of the
> important contributions the CSRG folks made to unix, such as sockets for
> network programming, filesystem enhancements, virtual memory, etc.

I like both the BSD license (that offers good oportunities both for
non-profit organizations and commercial vendors), the compliance
with standards (BSDs are as compatible as possible without breaking
the BSD-style), and the high quality of software provided.

My department (well, I am not in the staff of our University, I am only
a Ph. D. candidate in computer sciences) is building a wireless network
using a Windows 2003 Advanced Server machine, I doubt it will work.
On the other hand, I am building a WLAN as a collaboration between
my old department (I am a physics graduate), the maths department,
and the geological sciences one.  This WLAN will cover all the campus,
and all we are using is a small DHCP/RADIUS/DNS server running on
OpenBSD.  It supports hundreds of users.  A clean design that works.

> A miriade of examples are not usually needed or wanted in a reference
> manual page -- they often just get in the way of the important details
> that a reference should make clear.
> Examples, and guides to how to use commands, belong in a "User's Guide",
> though unfortunately there is not yet any equivalent in NetBSD
> documentation to the old "An Introduction to the UNIX Shell" paper by
> Bourne that was included in the original V7 manual volume 2.

Well, my english is not so good (that is a problem that will probably
make difficult for me going to a serious research center in the
United States).  I was speaking about a description of how alias
works on Bourne shell.  As syntax differs between both Bourne and C
shells, a description of how an alias is created in C shell is not
really useful for Bourne shell users.  I was not speaking about
examples about "how making `ll' an alias to `ls -lA'".  But a
description of the syntax used is useful.  I believe that people need
to read another information sources to know why the alias syntax
described in alias(1) does not works.

> Well there are still two separate Troff macro packages in use for NetBSD
> manual pages -- one compatible with UNIX(tm) man macros, and the other
> is based on the new (and much better) BSD mdoc macros.

If mdoc is the package used with ls(1) and so on, I like it a lot.
Very clean...  is there a possibility for using that macro package
with the man pages of the software provided in the base system.

It will provide a more coherent documentation for NetBSD, and sometimes
a better layout (when entries are indented, the gcc(1) layout is not

Please, do not hesitate in asking me for some help on this issue.
I will do my best working on patches, or helping in other way.

> (True GNU documentation is always in "texinfo" format :-)

Indeed... a VMS-like documentation system.  Not a good alternative
on Unix (and Unix-like) systems.

> The hyphens appearing as spaces problem is caused by a bug in the way
> the X11 manual pages are generated.
> What was done in previous releases in the old /usr/xsrc/xc, was to use
> "-Tascii" instead of "-Tlatin1", and then normal ASCII '-' characters
> were used as hyphens and all was well.  Perhaps we should just revert to
> using ASCII for the default English manual pages since that's the lowest
> common denominator between all the ISO-8859-* character sets and forcing
> non-Latin-1 users to explicitly use Latin-1 when viewing manual pages is
> perhaps a bit much to expect.

ASCII (7-bit) characters is all required for XFree86 man pages.
I doubt those man pages will use 8-bit characters (except if written
in German, French, or Spanish...)

Yes, I think that using 7-bit characters is the best answer to this
problem.  There is not need for making the hyphen an 8-bit character,
and not all people needs the ISO-8859-1 (Latin1) western european
characters set or ISO-8859-15 (the new character set that supports
the Euro symbol).

Man pages should be plain ASCII... at least, IMHO.


Igor Sobrado, UK34436 -