Files
cdesktop/cde/programs/dtksh
Chase 0f3bcae232 dtksh: Turn dtksh aliases into builtins and discard BLT_SPC flag
Upstream ksh has removed it's builtin aliases, favoring instead to make them
all builtin commands, this would also allow us to skip having to manually
merge another file, it was explained best in this email:

"Default aliases are an ugly hack that you are better off without.
Disadvantages include:
- 'unalias -a' becomes basically unusable as it gets rid of commands you
probably want;
- shell functions by those names are ignored (unless you quote their
names upon invocation);
- something like 'cmdname=foo; "$cmdname" bar baz' doesn't work if
$cmdname is an alias.

I strongly recommend removing the BLT_SPC flag from all of
your extra dtksh builtins. Making builtins "special builtins" is of no
real benefit at all, while introducing a pointless restriction: shell
functions by those names cannot be defined, which causes a risk of
incompatibility with scripts written for other shells. The BLT_SPC flag
is for a very few historic builtins that must have certain weird
corner-case behaviour of "special" builtins for POSIX compliance and
Bourne shell compatibility reasons."
2020-07-19 19:15:57 -06:00
..
2018-06-24 16:22:37 -06:00
2019-12-15 14:07:52 -07:00
2018-04-28 12:30:20 -06:00
2019-12-15 14:07:52 -07:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2018-06-24 16:22:37 -06:00
2018-04-28 12:30:20 -06:00
2019-12-15 14:07:52 -07:00
2019-10-10 19:59:40 +02:00
2014-09-23 17:57:50 -06:00
2018-04-28 12:30:20 -06:00
2018-09-30 17:27:04 -06:00
2018-04-28 12:30:20 -06:00
2018-06-27 22:20:34 -06:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2019-10-10 19:59:40 +02:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2018-04-28 12:30:20 -06:00
2018-06-27 22:20:34 -06:00
2018-04-28 12:30:20 -06:00
2018-06-27 22:20:34 -06:00
2018-04-28 12:30:20 -06:00

/* $XConsortium: README.building /main/2 1996/07/15 14:12:43 drk $ */
Since dtksh does not use anything like a normal build environment,
here are some hints.

- Make a Makefile in cdesrc/cde1/dtksh as if it were a normal
  component

- make includes; make all

  dtksh will build initially fine.

Now, if you change anything, you'll find that just typing "make"
doesn't do anything.  What you have to do is go to
cdesrc/cde1/dtksh/ksh93/ship.  Under there you'll find a distorted
version of the directory structure under ksh93.  Find the directory
that corresponds to the directory that contains your change and
remove the file "BUILT".  Now cd back up to dtksh and make, and
dtksh should remake itself.  Of course, it will recompile many
more files than you actually built, since dtksh does not use
make in any recognizable way.

In fact, it appears the best thing to do is go to cde1/dtksh
and run "ksh MakeClean" which will blow away many files and force
a clean make.

Be extremely careful: Just because you get a dtksh built at
the end does *not* mean the build was successful.  There
are several auxiliary binaries in ksh93/bin that must be built.
Make sure that ksh93/bin looks like this at the end:

urth 1331$ pwd
/scde/SunOS_sparc/opt/stable/build/cde1/dtksh/ksh93/bin
urth 1332$ ls
feature*    ksh*        proto*      silent*
ignore*     pax*        shcomp*     suid_exec*

If any of these are missing, search carefully back through
the make log looking for errors.