afc@shibaya.lonestar.org (Augustine Cano) (01/08/91)
First of all, many thanks to all those who responded to my original posting,
either in a followup or by e-mail; especially to those that sent or posted
code.
I now have 6 versions of pushd/popd and some auxiliary functions, including
the one I typed in that doesn't work.  Surprisingly the only differences
between my non-working version and another from the same source are minor
typographical differences (to fit the page layout of the book? NOT typos,
I checked more than once, very carefully) and function "to_tilde" which
is inline in the working version.
Before I received any code, I saw Thad's posting about the newer KSH from
the STORE, so the first thing I did was to upgrade.  Per the instructions,
which said to add "> $HISTFILE" to truncate the history file on login,
I added /etc/localprofile  (instead of adding that line to /etc/profile.)
This should not make any difference since /etc/localprofile is run from
/etc/profile, as shown below:
...
if [ -x /etc/localprofile ]
then
	. /etc/localprofile
fi
...
These are /etc/profile and /etc/localprofile:
-rw-r--r--  1 root    sys        3817 Nov 25 14:28 /etc/profile 
-rwxr-xr-x  1 root    sys          51 Dec 30 20:21 /etc/localprofile*
And this is /etc/localprofile:
# /etc/localprofile
# created by afc@shibaya.lonestar.org
> $HISTFILE
The problem is that the history file is not truncated at login time.  The
actual history file has these permissions: (just like ksh created it)
-rw-------  1 afc     users        52 Jan  7 22:17 /u/afc/.ksh.hist 
BTW, just typing ". /etc/localprofile" at the prompt has the
expected result.  What am I missing?
Back to pushd/popd:  Since I upgraded to the newer ksh before I tried any
of the code sent, I can't confirm that any of it works on the old version.
However, at least one sender said that his/her version works with V1.2.
As expected, most versions do the same thing.  Everything  I was sent works.
Here's a quick rundown: (in no particular order)
version #1: From: darren@bacchus.BACCHUS.ORG (Darren Friedlein)
The most compact of the bunch.  A grand total of 16 lines!  Including dirs,
pushd and popd.
I'm tempted to just include them below, but then this is not supposed to be
a source distribution.  If there is interest, I can forward everything I
received to Lenny for archiving at OSU.  How about starting a collection of
neat ksh functions?
version #2:  From: jwalz@rsg1.er.usgs.gov (Janet Walz)
According to her: "I grabbed these off the net a long time ago, and made
a couple minor tweaks (probably the sed lines that have similar-looking
things commented out)."
The original author of these is Ray Lubinsky, rwl@uvacs.cs.virginia.edu
This package contains pushd, popd, chdir (cd is aliased to chdir), dirs
and roll (this one is unique to this package, it does the obvious: roll
the stack).
version #3: From: quest!ssb@cs.umn.edu (Scott Sheldon Bertilson)
This package was written by Fletcher Mattox, sally!fletcher and claims to
emulate the csh dirs/pushd/popd exactly.  Some internal details are
different.
version #4: From: "Kris A. Kugel" <uunet!tsdiag.ocpt.ccur.com!hico2!kak>
This one came indirectly from none other than...  David Korn!  Very similar
to the one in the book, before the typesetters got to it, I suppose.
version #5: From: bruce@balilly.UUCP (Bruce Lilly)
If I recall correctly, this set was posted.  This is what Bruce said:
# In addition to Thad's comments, I can offer the following which ``sort
# of'' work (seems to be a minor problem after su'ing).  These are the
# ``dirs'', ``cd'', and ``mcd'' functions described in the same section as
# ``pushd'' and ``popd''.  The push and pop stuff is in-line.  I hope this
# helps.  I've also included a function ``su'' which allows one to run a
# shell as another user in a new window (using windy) -- with this, I only
# run a single login window, as I can then run a new window (e.g. as root)
# to do other things.
Well, here you have it, folks!  Any interest in having a sub-archive of
ksh functions?
Unrelated query:  is some major unix-pc hub down lately?  I haven't received
any unix-pc news in a couple of days.  Other groups are just fine.
-- 
Augustine Cano		INTERNET: afc@shibaya.lonestar.org
			UUCP:     ...!{ernest,egsner}!shibaya!afc