summaryrefslogtreecommitdiff
path: root/bin/ksh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ksh')
-rw-r--r--bin/ksh/BUG-REPORTS1398
-rw-r--r--bin/ksh/ChangeLog1600
-rw-r--r--bin/ksh/ChangeLog.03589
-rw-r--r--bin/ksh/IAFA-PACKAGE18
-rw-r--r--bin/ksh/NEWS662
5 files changed, 0 insertions, 7267 deletions
diff --git a/bin/ksh/BUG-REPORTS b/bin/ksh/BUG-REPORTS
deleted file mode 100644
index 8fcd5883bc5..00000000000
--- a/bin/ksh/BUG-REPORTS
+++ /dev/null
@@ -1,1398 +0,0 @@
-$OpenBSD: BUG-REPORTS,v 1.19 2013/11/28 10:33:37 sobrado Exp $
-
-List of reported problems (problems reported and fixed before 5.0.4 not
-included). Unresolved problems (may or may not still exist) marked by *,
-problems believed to be fixed marked by x.
-
-* pdksh 5.0.3, MIPS RISC/os 5.0 (bsd universe) (noted by Michael Rendell):
- for interactive, job controlled shells, the kernel's tty state gets twisted
- in such a way that all output is lost (eg, if ttyXX is wedged then
- "echo hi > /dev/ttyXX" from a separate login appears to succeed but produces
- no output on ttyXX).
- Work around is to run a program and hit ^C.
-
-* pdksh 5.0.1, NetBSD 0.9a? (reported by Simon J. Gerraty): problem with
- job control not finding tty
- [from Mail.1:71]:
- Also, I have noticed (with 5.0.1 anyway) that if as root I su to a
- user I get:
- root:511$ su foobar
- warning: won't have full job control
- [1] + Stopped (tty output) stty erase ^?
- foobar:1$
-
-* pdksh 5.0.8, - (reported by Sean Hogan): attempting file name completion
- on a word with a single backquote causes a "no closing quote" error and
- loses the partially entered command (vi mode).
- [see Mail.2:48]
- [partly fixed in 5.2.14: backquote ok, but happens for the likes of ${.]
-
-* pdksh 5.0.10, - (reported by Andrew Moore): no overflow checking is done
- in integer parsing code.
- [see Mail.3:78]
-
-* pdksh 5.0.6+5.1.2, BSD43/MachTen (reported by Dan Menchaca): ksh freezes up
- terminal after a while after printing process exit message. 5.1.2 causes
- system to hang after executing two commands.
- [see Mail.3:96,5:42]
-
-* pdksh 5.1.3, - (reported by Brad Warkentin & others): if the last command of
- a pipeline is a shell builtin, it is not executed in the parent shell,
- so "echo a b | read foo bar" does not set foo and bar in the parent
- shell (at&t ksh will).
- [see Mail.7:32,Mail.9:65]
-
-* pdksh 5.1.3, - (reported by Gabor Zahemszky): emacs/vi doesn't have \ as quote
- character.
- [see Mail.7:87]
-
-* pdksh 5.1.3, - (reported by Gabor Zahemszky): emacs default bindings doesn't
- have vt52 arrow keys or vt100 alternate keypad mode bindings.
- [see Mail.7:87]
-
-* pdksh 5.1.3, SCO 3.2.2 (reported by Gabor Zahemszky): shell hangs
- waiting for finished process to finish.
- [see Mail.7:87]
-
-* pdksh 5.2.0, - (reported by Gabor Zahemszky): ^V in vi leaves cursor at
- start of the line.
- [see Mail.8:43]
-
-* enhancements that haven't been merged yet
- - Mail.6:36-39,78,84 recursive function diffs (add hard limit on
- depeth of recursion)
-
-* pdksh 5.2.3, - (reported by David Gast(? gast@twinsun.com)): history (fc,
- et al) don't work in shell scripts.
- [see Mail.10:49]
-
-* pdksh 5.2.4, - (reported by Gabor Zahemszky): emacs: ^P steps through
- multiline commands - should go to start of command.
- [see Mail.XXX:XXX]
-
-* pdksh 5.2.7, - (reported by Adrian Marsh): typeset -L20u xxx is ok is ksh88
- but not in pdksh.
- [see Mail.XXX:XXX]
-
-* pdksh 5.2.7, - (reported by Gabor Zahemszky): TMOUT doesn't effect
- select and read operations.
- [see Mail.XXX:XXX]
-
-* pdksh 5.2.10, - (reported by Simon J. Gerraty): in emacs, <ESC><ESC> applied
- to a word with a macro does not complete the word (only expands the macro).
- [see Mail.XXX]
-
-* pdksh 5.2.12, - (reported by Han Holl <jeholl@euronet.nl>): pdksh does not
- parse the whole script before executing, so some syntax errors are not
- detected (if the shell exits before reading the whole file).
- [see Mail.XXX]
-
-* pdksh 5.2.12, (reported by Michael Staats): emacs: file completion does
- not complete as much as possible when file is ~/something (will list
- possible completions but won't fill in to the first difference).
- Happens since code doesn't distinguish between globbing and ~ (needs
- special case to strip & replace a leading ~ during the completion
- process).
-
-* pdksh 5.2.13, (reported by Martin Dalecki): shell dumps core when set -x
- is used on some scripts
- [awaiting more info...]
-
-* pdksh 5.2.13, (reported by Arthor Pool): interactive shells can't be
- interrupted when processing ${foo#bar} expressions.
- [same goes for globbing - fixing this means checking for interrupts in
- the `tight' loops - could slow things down quite a bit]
-
---------------------- put fixed problems below this line ---------------------
-
-x pdksh 5.0.3, NetBSD 0.9a (reported by Simon J. Gerraty): pipelines
- occasionally hang.
- [from Mail.1:71]:
- Yes, I just built 5.0.3 on zen (NetBSD) and the menu stuff worked fine.
- However I've just done:
-
- sjg:910$ diff -cb /etc/profile profile | more
-
- And it has been sitting there ever since.
- [... gdb output indicating process groups set up ok - presumed problem is
- with tty process group]
- [Fixed in 5.0.4 - do tcsetpgrp() in both parent and child for first process]
-
-x pdksh 5.0.2, ISC unix 3.01 (reported by Sean Hogan): set +o monitor (in
- interactive shell?) closes tty
- [from Mail.1:64]:
- I'm having two problems with the job control code, which I believe might
- be related. The first one is that "set +o monitor" closes the tty,
- which causes the shell to exit since its input is gone. According to
- the code, that would imply that FTALKING has mysteriously been turned
- off (jobs.c:343). But my understanding of the code is that FTALKING
- would only be clear for background processes, and set would be done by
- the shell. Do you have any insights here? It's not a big deal of course;
- I don't need to turn off monitor anyway.
- [fixed in 5.0.5 - problem was tty process group was being restored so
- shell could no longer read from tty]
-
-x pdksh 5.0.4, - (reported by Simon J. Gerraty and Sean Hogan):
- test "" -a x would fail.
- [fixed in 5.0.5 - t_wp being unnecessarily decremented in primary()]
-
-x pdksh 5.0.4, -: test -p foo would always fail.
- [fixed in 5.0.5 - spell S_ISFIFO correctly]
-
-x pdksh 5.0.4, -: test ! ! foo would generate error (unexpected !)
- [fixed in 5.0.5 - nexpr() always calls nexpr(), changes to posix code]
-
-x pdksh 5.0.4, -: set -i would generate an internal error.
- [fixed in 5.0.5 - use OF_SET in creating set_opts]
-
-x pdksh 5.0.4, -: let 0>22 would evaluate to true (and 0<22 false)
- [fixed in 5.0.5 - reversed order of O_LT and O_GT in enum]
-
-x pdksh 5.0.4, - (reported by Sean Hogan): echo does not process escape
- characters (ie, echo "foo\c" doesn't to the sysV thing)
- [see Mail.1:98]
- [fixed in 5.0.5 - echo now behaves like sysv echo]
-
-x pdksh 5.0.4, - (reported by Sean Hogan): tty process groups not restored
- properly (vi, :sh, exit causes vi to received SIGTTOU).
- [see Mail.1:98]
- [fixed in 5.0.5 - restore tty process group in j_exit]
-
-x pdksh 5.0.4, - (reported by Sean Hogan): the exit command does not do the
- stopped jobs check.
- [see Mail.1:94,95,98]
- [fixed in 5.0.5 - added LSHELL, hack c_exitreturn to use it]
-
-x pdksh 5.0.3, ISC unix 3.01 (reported by Sean Hogan): if notify is set,
- running cat & produces "[1] + Stopped (tty input) cat", but jobs, fg,
- etc. don't know about the job.
- [from Mail.1:76]
- I get [1] + Stopped (tty input) cat. Interestingly, "jobs" reports
- nothing, and "fg" doesn't see it either. But it's definitely there in
- the ps output. It only responds to kill -9, nothing else. I guess this
- is a side track?
- [see also Mail.1:97,Mail.2:2,3]
- [fixed in 5.0.6 - don't remove stopped jobs in the notify code of check_job()]
-
-x pdksh 5.0.5, - (reported by Sean Hogan): repeated history commands were being
- echoed after the command was executed.
- [see Mail.2:5,6]
- [fixed in 5.0.6 - call shf_flush() in case SHIST: of yylex()]
-
-x pdksh 5.0.5, -: wait with no arguments would hang forever.
- [fixed in 5.0.6 - only wait for running jobs in waitfor()]
-
-x pdksh 5.0.2, HP-UX 9.01 (reported by Sean Hogan): scripts occasionally get
- stopped with SIGTTIN
- [from Mail.1:68]:
- I noticed another small problem today, which is that occasionally
- (on an HP 9000/715, HP-UX 9.01, cc from the ANSI C developer set)
- a background process which is definitely not reading from its input
- stops with SIGTTIN. I first noticed this with a nohup'ed process, but
- it periodically happens without as well. The process is a perl script,
- if that makes any difference. Have you seen this on your HP(s)?
- [hasn't been seen in 5.0.3: Mail.1:73,76]
- [not a shell bug, see Mail.2:14,15]
-
-x pdksh 5.0.6, - (reported by Gordan Larson, Ed Ferguson): shell does not
- compile when VI isn't defined.
- [see Mail.2:22,40]
- [fixed in 5.0.7 - fixed up lex.c]
-
-x pdksh 5.0.6, - (reported by Gordan Larson): ksh.1 font typo.
- [see Mail.2:23]
- [fixed in 5.0.7]
-
-x pdksh 5.0.6, FreeBSd 1.1.5 (reported by Thomas Gellekum): CLK_TCK is defined
- to wrong value on FreeBSD; no depend target in Makefile; update /etc/shells
- in install target.
- [see Mail.2:28]
- [fixed in 5.0.7 - include <limits.h> in sh.h to get the right value; added
- depend target; print warning if ksh not in /etc/shells]
-
-x pdksh 5.0.6, - (reported by Michael Haardt): shell does not compile if JOBS
- not defined.
- [see Mail.2:32]
- [fixed in 5.0.7 - added ifdefs to jobs.c(check_job)]
-
-x pdksh 5.0.6, - (reported by Nick Holloway): exit status of command
- substitution is lost (known problem).
- [from Mail.2:33]:
- This is a variation on a theme of bug number 10 (and is one reason why
- currently ksh can not be used for Linux's MAKEDEV).
-
- The exit status from command substitution is not available when used with
- variable assignment.
-
- x=`false` && echo "Non-zero exit status lost".
- [fixed in 5.0.7 - instead of faking :, set rv to subst_exstat]
-
-x pdksh 5.0.7 - (reported by Sean Hogan): CMASK redefined in emacs.c
- [see Mail.2:44]
- [fixed in 5.0.8 changed CMASK to CHARMASK]
-
-x pdksh 5.0.7 - (reported by Sean Hogan): "r" (fc -e -) doesn't work.
- [see Mail.2:45]
- [fixed in 5.0.8 - increment wp, change strcmp() test]
-
-x pdksh 5.0.7 - (reported by Thomas Gellekum): make install typeo.
- [see Mail.2:46]
- [fixed in 5.0.8 - added missing $]
-
-x pdksh 5.0.8 - (reported by Sean Hogan): "FOO=bar exec blah" does not
- put FOO in environment.
- [see Mail.2:50]
- [fixed in 5.0.9 - re-arranged exec/command/builtin code in comexec()]
-
-x pdksh 5.0.8, QNX 4.2 (reported by Brian Campbell): "exec > /dev/null"
- generates an error.
- [see Mail.2:51]
- [see Mail.2.58 - caused by ambitious compiler using same label for c_exec()
- and c_builtin()]
- [fixed in 5.0.9 - c_exec() no longer an empty function.]
-
-x pdksh 5.0.8, - (reported by Brian Campbell): "echo a{b," prints a "Missing }"
- error - at&t ksh does not. at&t ksh always has brace-expansion on (unless
- set -o nogolob).
- [see Mail.2:51]
- [fixed in 5.0.9 - brace expansion now compatible with at&t ksh]
-
-x pdksh 5.0.8, - (reported by Sean Hogan): ulimit output garbled; syntax error
- in c_ulimit.c; no configure check for HAVE_SETRLIMIT.
- [see Mail.2:64]
- [fixed in 5.0.9 - use shprintf instead of shellf to print values; add
- setrlimit() check to configure]
-
-x pdksh 5.0.7, - (reported by Jan Djarv): `echo > /foo/bar' causes a script to
- exit - POSIX says it shouldn't.
- [see Mail.2:60]
- [fixed in 5.0.9 - iosetup returns error code, error messages cleaned up, etc]
-
-x pdksh 5.0.8, - : `more /etc/passwd &' followed by fg messes up tty settings.
- [fixed in 5.0.9 - only save new tty settings if job originally started in fg]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): a blank line causes $? to be
- set to zero, newline after a here-document marker isn't read.
- [see Mail.3:5,6]
- [fixed in 5.0.10 - don't execute null trees, read the newline]
-
-x pdksh 5.0.9, - (reported by Michael Sullivan): mail checking reports you
- have mail, when there is only old mail.
- [fixed in 5.0.10 - use atime/mtime instead of size]
-
-x pdksh 5.0.9, - (reported by Chris Oates): if RANDOM is in ksh's environ
- when it starts, the shell dumps core.
- [see Mail.3:7,8]
- [fixed in 5.0.10 - var.c(typeset): free t->val.s instead of
- t->val.s + t->type]
-
-x pdksh 5.0.9, - (reported by Seah Hogan): ISC 3.01's make is confused by
- a backslash followed by a blank line.
- [see Mail.3:9,13]
- [fixed in 5.0.10 - changed make depend target to change blank lines to sh.h]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): commands without a newline cause
- syntax errors - sh/ksh execute the commands.
- [see Mail.3:15]
- [fixed in 5.0.10 - have yyparse() accept newline and EOF]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): empty arithmetic expressions not
- accepted.
- [see Mail.3:15,17]
- [fixed in 5.0.10 - v_evaluate(): if first token is END, changed to literal 0]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): nulls in input are not ignored.
- [see Mail.3:15]
- [fixed in 5.0.10 - added strip_nuls() function and calls to it]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): \241 (M-!) not passed through
- command substitutions.
- [see Mail.3:15]
- [fixed in 5.0.10 - evaluate(): cast c to a char before comparing to MAGIC]
-
-x pdksh 5.0.9, - (reported by Andrew Moore): newlines after here-documents
- are read twice; shell reports an error if newline is missing.
- [see Mail.3:25]
- [fixed in 5.0.10 - fixed up readhere()]
-
-x pdksh 5.0.9, - (reported with fix by Mike Jetzer): 'r r' repeats the r
- command forever.
- [see Mail.3:38]
- [fixed in 5.0.10 - start the search from the previous command]
-
-x pdksh 5.0.9, - (reported by Mike Jetzer): edit of multi-line commands
- does not result in single history entry.
- [see Mail.3:38]
- [fixed in 5.0.10 - use hist_append() to add second+ lines]
-
-x pdksh 5.0.9, - (reported by Dale DePriest): ksh_times.h uses BROKEN_TIMES
- [see Mail.3:43]
- [fixed in 5.0.10 - changed ksh_times.h]
-
-x pdksh 5.0.9, - (reported by J. T. Conklin): using [ instead of test is slow.
- [see Mail.3:46]
- [fixed in 5.0.10 - put in kludgy check for [ in eval.c(glob)]
-
-x pdksh 5.0.9, - (reported by Michael Haardt): signals do not interrupt
- read commands.
- [see Mail.3:20]
- [fixed in 5.0.10 - changed c_read() to check for fatal signals after EINTR]
-
-x pdksh 5.0.10, BSDI (reported by David Tamkin): use of _POSIX_VDISABLE in
- tty.h causes compiler error.
- [see Mail.3:67]
- [fixed in 5.0.10.1 - new variable vdisable_c set/used in edit.c]
-
-x pdksh 5.0.8, - (reported by Donald Craig): on systems with both union wait
- and waitpid(), waitpid() is passed a union wait pointer instead of an int
- pointer.
- [see Mail.2:54]
- [fixed in 5.1 - added ksh_waitpid() define; cast status arg as needed.]
-
-x pdksh 5.0.10, - (reported by David Tamkin): space in vi command mode does
- nothing.
- [see Mail.3:76]
- [fixed in 5.1 - vi.c(classify[]) table got changed by accident.]
-
-x pdksh 5.0.10, - (reported by Danial Quinlan): forward-word and
- delete-word-forward functions in emacs don't go to the right place.
- [see Mail.3:79]
- [Fixed in 5.1 - changed order of loops in emacs.c(x_fword())]
-
-x pdksh 5.0.10, - (reported by David Tamkin): eof in multiline command
- causes shell to exit, even if ignoreeof is set.
- [see Mail.3:76]
- [Fixed in 5.1 - reset eof after longjmp() in main.c(shell)]
-
-x pdksh 5.0.9, Ultrix 4.2 (reported by Matthew Nethook): type-ahead while
- shell is waiting for a command to finish is temporarily lost until a
- program that reads from stdin or goes a stty/gtty is run.
- [see Mail.3:61,62]
- [Fixed in 5.1 - changed aclocal.m4 to not define HAVE_TERMIOS_H on ultrix]
-
-x pdksh 5.0.10, - (reported by David Tamkin): if INT is trapped, ^C in
- vi/emacs won't flush buffer/re-issue new prompt.
- [see Mail.3:5,76]
- [Fixed in 5.1 - use unwind() in vi/emacs to get back to shell()]
-
-x pdksh 5.0.10, - (reported by Dale DePriest): in emacs mode, file completions
- resulting in long names (>256) cause core dumps
- [see Mail.3:72]
- [Fixed in 5.1 - use dynamically sized buffers in emacs code]
-
-x pdksh 5.0.10, - (reported by Dale DePriest): in emacs mode, command
- completions (^[=) resulting in multiple hits caused internal memory error.
- [see Mail.4:8]
- [Fixed in 5.1 - don't call list_stash() twice in compl_command]
-
-x pdksh 5.0.10, - (reported by Dave Hatton): autoloading functions fail
- on the first attempt, then work.
- [see Mail.4:10]
- [Fixed in 5.1 - in findcom(), check for include() returning non-0 (was 0)]
-
-x pdksh 5.0.10, - (reported by Art Pina via Dale DePriest): when SECONDS
- parameter is assigned, it always acts as if 0 were assigned.
- [see Mail.4:12]
- [Fixed in 5.1 - set internal seconds variable to time - assigned value]
-
-x pdksh 5.1.0 - (reported by Larry Bouzane): for/select loops don't allow
- {..} to be used instead of do...done.
- [see Mail.4:16]
- [Fixed in 5.1.1 - changed syn.c(dogroup) to allow {/} instead of do/done]
-
-x pdksh 5.1.0 - (reported by Andrew Moore and Larry Bouzane): a command ending
- in ; or & that is not followed by a newline causes a syntax error.
- [see Mail.4:126,128]
- [Fixed in 5.1.1 - don't call syntaxerr() in get_command() if EOF is read]
-
-x pdksh 5.1.0, - (reported by Simon J. Gerraty): ksh died reading history
- file (complex history, in hist_skip_backup()).
- [see Mail.4:24]
- [Fixed in 5.1.1 - hist_skip_back(): don't start past the end of the buffer]
-
-x pdksh 5.1.0 BSDI 1.1 (reported by Karl Denninger): after receipt of SIGHUP,
- shell waits for foreground process to complete.
- [see Mail.4:50,57]
- [Fixed in 5.1.1 - added fatal_trap flag, check in jobs.c(j_waitj)]
-
-x pdksh 5.1.0 - (reported by Bob Manson): a leading non-white-space IFS
- character does cause a field to be delimited.
- [see Mail.4:68]
- [Fixed in 5.1.2 - changed expand() to do the right thing.]
-
-x pdksh 5.1.2, -: ^c during $ENV or .profile kills shell; should just go
- to prompt.
- [see Mail.5:14]
- [fixed in 5.2.4 - added intr_ok flag to main.c(include)]
-
-x pdksh 5.1.2, - (reported by Dan Quinlan): when shell prints out
- execution trees (typeset -f), if botches elif statements.
- [see Mail.5:17]
- [fixed in 5.1.3 - changed tree.c(ptree) to deal with elif.]
-
-x pdksh 5.1.2, - (reported by Dale DePriest): fc -l -- -40 fails if there
- are fewer than 40 commands.
- [see Mail.5:19]
- [fixed in 5.1.3 - changed history.c(histget) to allow out of range numbers]
-
-x pdksh 5.1.2, - (reported by Art Mills): file completion in command mode
- doesn't work on a single character.
- [see Mail.5:13]
- [fixed in 5.1.3 - in vi.c(vi_cmd) call complete_word() with 1 not 0]
-
-x pdksh 5.1.2, - (reported by Dan Quinlan): an error in a let statement
- causes shell to exit function/script. at&t ksh just prints error and
- returns from let.
- [see Mail.5:17]
- [fixed in 5.2.3 - added error_ok arg to evaluate() and v_evaluate()]
-
-x pdksh 5.1.2, - (reported by Art Mills): if markdirs option is set, file
- completion in vi adds two slashes to directories.
- [see Mail.5:35]
- [fixed in 5.1.3 - vi.c(complete_word), don't add / if file ends in one]
-
-x pdksh 5.1.2, - (reported by Dale DePriest): history read from history file
- have negative numbers and can't be accessed (fc thinks neg numbers are
- relative).
- [see Mail.5:39]
- [fixed in 5.1.3 - EASY_HISTORY/hist_init: increment line for each line]
-
-x pdksh 5.1.2, - (reported by David Tamkin): FPATH isn't searched if PATH
- search can't find command (undocumented at&t ksh feature).
- [see Mail.5:45]
- [fixed in 5.1.3 - exec.c(findcom) search FPATH if PATH search fails]
-
-x pdksh 5.1.2, - (reported by Dan Quinlan): output typeset -f isn't
- very pretty (no indenting done).
- [see Mail.5:17]
- [fixed in 5.1.3 - indenting added to ptree routines]
-
-x pdksh 5.0.9, ISC 3.2 (reported by cobra@guarany.cpd.unb.br): Running the
- following script with pdksh crashes the machine:
- cat > /tmp/foobar
- The same command in an interactive pdksh does not cause a crash.
- [see Mail.3:21,Mail.5:62]
- [Fixed by Interactive - it is caused by an OS bug for which there is a patch]
-
-x pdksh 5.1.3, linux - (reported by Dan Quinlan): doesn't compile under new
- linux due to declaration conflict between basename() in unistd.h and
- pdksh'd basename.
- [see Mail.5:90]
- [fixed in 5.2.0 - changed basename() to arrayname()]
-
-x pdksh 5.1.3, - (reported by William Hudacek): very long prompts cause
- vi command line editor grief.
- [see Mail.6:2]
- [fixed in 5.2.0 - initial part of prompt is stripped if its too long]
-
-x pdksh 5.1.3, - (reported by Roberto Zacheo): when set -u, variable trimming
- with always causes an error.
- [see Mail.6:21]
- [fixed in 5.2.0 - fixed varsub() to test if variable is null]
-
-x pdksh 5.1.3, - (reported by David Tamkin): when a function is autoloaded,
- ksh complains the definition file didn't define the function, even if it did.
- [see Mail.6:52]
- [fixed in 5.2.0 - exec.c(comexec): when checking if defined, use cp,
-
-x pdksh 5.1.3, ICS unix 3.2 (reported by Robert Clark): auto configuration
- test for memmove doesn't work
- [see Mail.6:65]
- [fixed in 5.2.0 - special cases added for memmove, bcopy, memset]
-
-x pdksh 5.1.3, Unixware (Intel-SVR4.2) (reported by Thanh Ma): auto
- configuration test for memset doesn't work; same for rlimit type.
- [see Mail.6:67]
- [fixed in 5.2.0 - special cases added for memmove, bcopy, memset; rlim_t
- configuration stuff re-arranged]
-
-x pdksh 5.1.3, - (reported by Mike Jetzer + fix): . in vi doesn't work
- after history motion or after one command is completed and another is being
- edited.
- [see Mail.6:85]
- [fixed in 5.2.0 - fix up classify table, special case for empty initial
- insert]
-
-x pdksh 5.1.3, - Janjaap van Velthooven: ^v (version) missing in vi mode.
- [see Mail.6:98]
- [fixed in 5.2.0 - added]
-
-x pdksh 5.1.3, - : y% on or before right bracket/paren/brace doesn't yank the
- brackets - just what is in the brackets...
- [fixed in 5.2.0 - changes to vi.c(domove,vi_cmd)]
-
-x pdksh 5.1.3, - (reported by Rob Mayoff): [[ ]] command doesn't do lazy
- evaluation.
- [see Mail.7:2]
- [fixed in 5.2.1 - test routines re-arranged to deal with this]
-
-x pdksh 5.1.3, - (reported by Will Renkel): "r | more" doesn't work (nothing
- is sent to more).
- [see Mail.7:13]
- [fixed in 5.2.0 - history commands now done in c_fc, not pushed onto input
- stack]
-
-x pdksh 5.1.3, - (reported by Rod Byrne, John Rochester): if a program leaves
- the non-blocking (O_NONBLOCK) flag set after it exists, the shell
- exits (multiple eofs).
- [see Mail.7:15,16,51]
- [fixed in 5.2.0: O_NONBLOCK is reset if read fails with EAGAIN,EWOULDBLOCK]
-
-x pdksh 5.1.3, - (reported by Dale DePriest + fix): emacs: can't delete chars
- from pattern in incremental search mode.
- [see Mail.7:17]
- [fixed in 5.2.0 - handle it]
-
-x pdksh 5.1.3, Linux 1.2.2 (reported by Fritz Heinrichmeyer + fix): siglist.sh
- doesn't work due to bug in bash 1.4.3 (trap is called incorrectly in
- subshell causing temp file to be removed prematurely).
- [see Mail.7:21]
- [fixed in 5.2.0 - clear all traps in subshell so file isn't removed]
-
-x pdksh 5.1.3, - (reported by Dale DePriest + fix): emacs: can't prefix
- commands with more than single digit; many commands don't use nnumber
- prefix.
- [see Mail.7:26,40]
- [fixed in 5.2.0 - x_set_arg reads sequence of numbers, other commands
- changed to use x_arg]
-
-x pdksh 5.1.3, - (reported by Dale DePriest): fc command line parsing
- (and its interaction with history alias) doesn't act like at&t ksh:
- history -40 gives bad option 4 error.
- [see Mail.7:41,49]
- [fixed in 5.2.1 - kludge parsing of -40 (numbers are option letters)]
-
-x pdksh 5.1.3, - (reported by Dale DePriest): if PS1 contains paramaters that
- get expanded, and if those parameters contain any ! characters, the !'s get
- changed to history numbers.
- [see Mail.7:44]
- [fixed in 5.2.0 - substitution done after ! and !! substitution]
-
-x pdksh 5.1.3, - (reported by Steve Wallis): set -a (set -o allexport) has
- no effect.
- [see Mail.7:47]
- [fixed in 5.2.0 - changes to c_read, c_getopts, and comexec]
-
-x pdksh 5.1.3, - (reported by Alexander S. Jones): (sleep 10000&) waits for
- the sleep to complete.
- [see Mail.7:54]
- [fixed in 5.2.0 - execute() case TASYNC clears EXEC flag in call to execute]
-
-x pdksh 5.1.3, - (reported by Will Renkel): positional parameters can't be
- accessed within temporary variable assignments (eg, "FOO=$1 blah" doesn't
- set FOO to $1.
- [see Mail.7:57]
- [fixed in 5.2.0 - var.c(newblock) - copy argc/argv from previous environment]
-
-x pdksh 5.1.3, SCO unix ? (reported by Sean Hogan): job control stuff doesn't
- work as sco doesn't do job control operations on /dev/tty.
- [see Mail.7:30,43,69,70,74]
- [fixed in 5.2.0 - don't try opening /dev/tty if on SCO]
-
-x pdksh 5.1.3, - (reported with fix by Mike Jetzer): vi globing tacks
- * at the end of files even if there are globing chars in last component
- of filename (at&t ksh does not).
- [see Mail.7:71]
- [fixed in 5.2.0 - don't append * if there are unescaped globing chars]
-
-x pdksh 5.1.3, - (reported with fix by Gabor Zahemszky): typoes in acconfig.h,
- sh.h uses SVR3_PGRP insteda of SYSV_PGRP.
- [see Mail.7:87]
- [fixed in 5.2.0]
-
-x pdksh 5.1.3, - (reported by Gabor Zahemszky): emacs doesn't have ^[^].
- [see Mail.7:87]
- [fixed in 5.2.0 - added search-char-backward]
-
-x pdksh 5.2.0, - (reported by David Tamkin): pwd -P doesn't strip .. and .
- properly.
- [see Mail.7:98]
- [fixed in 5.2.0 - include ksh_stat.h in c_ksh.c]
-
-x pdksh 5.2.0, - (reported by Dale DePriest): unistd.h config test
- doesn't include sys/types before dirent.h.
- [see Mail.8:2]
- [fixed in 5.2.0]
-
-x pdksh 5.2.0, - (reported by Robert Gallant): emacs file/command completion
- code can clobber memory.
- [see Mail.8:11]
- [fixed in 5.2.1 - wrong variable being checked in buffer growing in
- emacs.c(compl_file,compl_command)]
-
-x pdksh 5.2.0, - (reported by David Tamkin): when CDPATH set and cd'ing to a
- directory that doesn't exist, the error message contains the last element
- of the CDPATH.
- [see Mail.8:8]
- [fixed in 5.2.0 - fixed error message]
-
-x pdksh 5.2.0, - (reported by David Tamkin): if PS1 has an error in it
- (eg, parameter expansion error), the shell loops forever printing
- the error.
- [see Mail.8:32]
- [fixed in 5.2.3 - create error handling environment while expanding PS1]
-
-x pdksh 5.2.0, Coherent machines (reported by Gabor Zahemszky): insert after
- movement in emacs mode replaces all chars with first char on line.
- System's bcopy doesn't handle overlapping src/dst.
- [see Mail.8:38,43]
- [fixed in 5.2.1 - check for broken memmove/bcopy in aclocal.m4]
-
-x pdksh 5.2.0, - (reported by Gabor Zahemszky): ^[= in vi prints empty
- strings for directory matches if markdirs is set.
- [see Mail.8:48]
- [fixed in 5.2.1 - skip trailing /'s before looking for last /]
-
-x pdksh 5.2.0, - (reported by Gabor Zahemszky): <ESC>^H bound to del-back-char
- not del-back-word
- [see Mail.8:50-52]
- [fixed in 5.2.1 - fixed x_emacs_keys]
-
-x pdksh 5.2.1, - (reported by David Tamkin): compile fails due to lack
- of c_test.h
- [see Mail.8:58]
- [fixed in 5.2.2 - fixed put c_test.h in distribution]
-
-x pdksh 5.2.2, - (reported by Simon J. Gerraty): hist_source not being
- initialized in complex history.
- [see Mail.8:64]
- [fixed in 5.2.3 - set it in second hist_init()]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): set -A does not reset
- the array contents.
- [see Mail.8:65]
- [fixed in 5.2.3 - changed var.c(unset) to unset whole array if appropriate]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): getopts stops after an error;
- at&t ksh carries on with next option.
- [see Mail.8:65]
- [fixed in 5.2.3 - remove GI_DONE flag from ksh_getopt()]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): getopts prints shell name
- twice in error messages.
- [see Mail.8:65]
- [fixed in 5.2.3 - added GI_NONAME flag]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): pdksh's test doesn't know about
- /dev/fd/n.
- [see Mail.8:65]
- [fixed in 5.2.3 - added test_stat() and test_eaccess()]
-
-x pdksh 5.2.2, - (reported by Thomas Gellekum): config test for memmove/bcopy
- missing semi-colon
- [see Mail.8:67]
- [fixed in 5.2.3]
-
-x pdksh 5.2.2, - (reported by Donald Craig): fc string doesn't find string
- if it is the most recent command.
- [see Mail.8:76]
- [fixed in 5.2.3 - fixed off by one error in history.c(hist_get)]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): pdksh doesn't do the
- "You have running jobs" when user attempts to log out.
- [see Mail.8:74]
- [fixed in 5.2.3 - added set -o nohup option with supporting code]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): configure test for
- broken memmove/bcopy doesn't work.
- [see Mail.8:93]
- [fixed in 5.2.3 - fixed test to copy overlapping buffers]
-
-x pdksh 5.1.3, - (reported by <wendt@sv5.mch.sni.de>): doesn't compile on
- solaris 5.x with COMPLEX_HISTORY defined.
- [see Mail.8:98]
- [fixed in 5.2.3 - undef COMPLEX_HISTORY if flock not available]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): tilde expansion not preformed
- in word part of ${foo[-+=?} substitution.
- [see Mail.9:7]
- [fixed in 5.2.3 - allow ~foo to end in a close brace]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): "fc 30" edits from 30 to
- most recent history (should be just 30).
- [see Mail.9:7]
- [fixed in 5.2.3 - if !-l and no last given, use first]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): [many problems with man page]
- [see Mail.9:12]
- [fixed in 5.2.3 - fixed problems]
-
-x pdksh 5.2.2, - (reported by Gabor Zahemszky): #else followed by non-comment
- in sigact.c.
- [see Mail.9:13]
- [fixed in 5.2.3 - turn it into a comment]
-
-x pdksh 5.2.2, - (reported with fix by Gabor Zahemszky): two argument form of
- cd doesn't work.
- [see Mail.9:14]
- [fixed in 5.2.3 - in c_cd(), use current_wd not path]
-
-x pdksh 5.2.2, - (reported with fix by Gabor Zahemszky): command -V doesn't
- report reserved words.
- [see Mail.9:30]
- [fixed in 5.2.3 - in c_whence(), look for reserved words if vflag set]
-
-x pdksh 5.2.3, - (reported by Dale DePriest): at&t's tbl wants space
- between font specification and end of table descrption (ie, fB . not
- fB.).
- [see Mail.9:41]
- [fixed in 5.2.4 - put spaces in]
-
-x pdksh 5.2.3, - (reported by David Tamkin & Claus L{gel Rasmussen): PS1
- isn't imported from environment anymore.
- [see Mail.9:43,76]
- [fixed in 5.2.4 - main: don't set PS1 if it is already set]
-
-x pdksh 5.2.3, - (reported by Gary Rafe): If PS1 contains newlines, vi
- editing mode dones't redraw lines properly.
- [see Mail.9:63]
- [fixed in 5.2.4 - added prompt_skip stuff to vi/emacs]
-
-x pdksh 5.2.3, - (reported & fixed by Mike Jetzer): cd: error message if
- directory didn't exist was wrong.
- [see Mail.9:66]
- [fixed in 5.2.4 - print correct string in error message]
-
-x pdksh 5.2.3, - (reported & fixed by Mike Jetzer): vi: <ESC>* shouldn't append
- a * if word contains a $.
- [see Mail.9:66]
- [fixed in 5.2.4 - vi.c(glob_word): check for $ in word, check for null
- expansion]
-
-x pdksh 5.2.3, - (reported & fixed by Mike Jetzer): vi: <ESC>= doesn't
- list expansions in column form.
- [see Mail.9:66]
- [fixed in 5.2.4 - use pr_menu to print things nicely]
-
-x pdksh 5.2.3, - (reported Larry Bouzane): should be a way of installing
- binary/man page as pdksh instead of ksh.
- [see Mail.9:100]
- [fixed in 5.2.4 - use the --enable-shell=pdksh option to configure]
-
-x pdksh 5.2.3, - (reported by Gabor Zahemszky): [many problems with man
- page]
- [see Mail.10:20]
- [fixed in 5.2.4 - fixed problems]
-
-x pdksh 5.2.3, - (reported by Gabor Zahemszky): exec 1<&9 reports
- error with ">&9" in it.
- [see Mail.10:20]
- [fixed in 5.2.4 - changed iosetup()]
-
-x pdksh 5.2.3, - (reported by Gabor Zahemszky): man page doesn't document
- /dev/fd/N
- [see Mail.10:20]
- [fixed in 5.2.4 - updated manual]
-
-x pdksh 5.2.3, - (reported by Ted Coady): [[ foo/bar = foo* ]]
- fails; should succeed.
- [see Mail.10:32]
- [fixed in 5.2.4 - fixed problem in exec.c(dbteste_getopnd)]
-
-x pdksh 5.2.3, - (reported by Ruei-wun Tu): make on NeXT/NeXTSTEP 3.3
- doesn't understand .PRECIOUS target and so does nothing.
- [see Mail.10:43]
- [fixed in 5.2.4 - moved .PRECIOUS after all in Makefile.in]
-
-x pdksh 5.2.3, - (reported & fixed by Paul Borman): shell doesn't kill
- foreground process when SIGHUP received; Also, CONT sent before HUP.
- [see Mail.10:44]
- [fixed in 5.2.4 - j_exit now sends HUP to foreground process]
-
-x pdksh 5.2.3, AIX 3.2.5 (reported by Ian Portsmouth): C compiler compains
- about sigtraps[] being re-declared in trap.c.
- [see Mail.10:73]
- [fixed in 5.2.4 - use cpp define to avoid bogus re-declaration error]
-
-x pdksh 5.2.3, - (reported by Michael Haardt): ENV should not be
- included if shell is compiled as sh and posix option not set.
- [see Mail.10:83]
- [fixed in 5.2.4 - only include ENV if POSIX, if compiled as sh]
-
-x pdksh 5.2.3, - (reported & fixed by DaviD W. Sanderson): case statements
- don't allow {/} in place of IN/ESAC.
- [see Mail.10:77,78]
- [fixed in 5.2.4 - allow {/} in case statements]
-
-x pdksh 5.2.3, - (reported by Larry Daffner): $? is incorrectly zero'd
- at start of traps.
- [see Mail.11:9]
- [fixed in 5.2.4 - don't clear exstat in main.c(shell)]
-
-x pdksh 5.2.3, - (reported by Frank "Crash" Edwards): configure on linux XXX
- doesn't detect the presence of lstat().
- [see Mail.11:36]
- [fixed in 5.2.4 - change configure to include <sys/stat.h> in lstat() test]
-
-x pdksh 5.2.3, - (reported by Gabor Zahemszky): typeset -f dumps core
- in the after using autoload functions.
- [see Mail.11:74?]
- [fixed in 5.2.4 - c_typeset no longer traverses the array link for functions]
-
-x pdksh 5.2.3, - (reported by Gabor Zahemszky): typeset -f does not report
- undefined autoload functions
- [see Mail.11:74?]
- [fixed in 5.2.4 - c_typeset: don't ignore unset functions]
-
-x pdksh 5.2.3, - (reported by Dale DePriest): alias -t -r does not
- reset aliases.
- [see Mail.11:99]
- [fixed in 5.2.4 - c_alias: call ksh_getopt_reset() before calling c_unalias]
-
-x pdksh 5.2.3, - (reported & fixed by Jason Tyler): 'echo abc^Jfc -e - a=b e'
- echos b, not bbc.
- [see Mail.11:100?]
- [fixed in 5.2.4 - hist_replace: use s, not last]
-
-x pdksh 5.2.3, - (reported by Jason Tyler): 'fc -e -' when there is
- no history causes infinite loop.
- [see Mail.11:100?]
- [fixed in 5.2.4 - histbackup: allow histptr to go below history]
-
-x pdksh 5.2.4, - (reported by David Tamkin): jmp_buf is used instead of
- sigjmp_buf.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5 - added ksh_jmp_buf and defined appropriately]
-
-x pdksh 5.2.4, - (reported by Stephen Coffin): /<RETURN> in vi mode does not
- repeat last search.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5 - vi.c(vi_hook) - make it repeat last search]
-
-x pdksh 5.2.4, - (reported by Gabor Zahemszky): functions containing select
- commands aren't printed correctly by typeset.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5 - tree.c(ptree) - add case for TSELECT]
-
-x pdksh 5.2.4, - (reported & fixed by Stefan Dalibor): COLUMNS isn't set on
- shell start up (and window size is ignored) 'cause tty_fd isn't valid when
- x_init() is called.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5 - call x_init() after j_init() is called]
-
-x pdksh 5.2.4, - (reported by Will Renkel): "echo -" just prints a blank
- line - should print the minus.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5 - c_ksh.c(c_print): don't do argument parsing on lone -]
-
-x pdksh 5.1.3, - (reported by Gabor Zahemszky): emacs doesn't have ^[*.
- [see Mail.7:87]
- [fixed in 5.2.5]
-
-x pdksh 5.2.3, - (reported by Mike Jetzer): in vi, <ESC>= doesn't append
- a / after directories.
- [see Mail.9:66]
- [fixed in 5.2.5]
-
-x pdksh 5.2.0, - (reported by Gabor Zahemszky): can set readonly variables
- via command assignments (eg, "readonly x=y; x=z /bin/echo hi" should
- fail and doesn't).
- [see Mail.8:50,65]
- [fixed in 5.2.5 - LOCAL_COPY flag passed from comexec() down to local()]
-
-x pdksh 5.2.4, - (reported by Tom Karches): history: "r old=new", with
- no commands prefix given, prints "fc: too mnay arguments" - it should
- do the subst on the previous command.
- [see Mail.XXX:XXX]
- [fixed in 5.2.5]
-
-x pdksh 5.2.3, - (reported by Vigen Pogosyan): assignments in $(( ... ))
- remember the base that was assigned in pdksh - does not in at&t ksh.
- [see Mail.10:54]
- [fixed in 5.2.5: uset setint() in expr.c(evalexpr)]
-
-x pdksh 5.2.4, - (reported by Gabor Zahemszky): emacs: ^O steps down
- two lines (should be 1).
- [see Mail.XXX:XXX]
- [fixed in 5.2.5: convert history line to command number, then convert back]
-
-x pdksh 5.2.3, - (reported by David Gast(? gast@twinsun.com)): fc -ln -1 -1
- reports the current command, not the previous command.
- [see Mail.10:49]
- [fixed in 5.2.5]
-
-x pdksh 5.2.3, - (reported by Matthew Green): foo=`^Jecho bar` doesn't
- set foo to bar (foo is empty).
- [see Mail.XXX:XXX]
- [fixed in 5.2.5: syn.c: set multiline.on when source is SSTRING]
-
-x pdksh 5.2.5, - (reported by Gabor Zahemszky): continue/break: if n
- is too big, shell prints internal error message.
- [see Mail.XXX:XXX]
- [fixed in 5.2.6: fix c_brkcont to use last loop if n is too big]
-
-x pdksh 5.2.5, - (reported by Gabor Zahemszky): set: +o in ksh93
- prints command that sets various options.
- [see Mail.XXX:XXX]
- [fixed in 5.2.6: changed misc.c(printoptions)]
-
-x pdksh 5.2.5, - (reported by Gabor Zahemszky): COLUMNS/LINES variables
- are not exported.
- [see Mail.XXX:XXX]
- [fixed in 5.2.6: use typeset() in edit.c(x_init) to export COLUMNS/LINES]
-
-x pdksh 5.2.5, - (reported by Gabor Zahemszky): emacs: <ESC><ESC> puts
- space after completed directories.
- [see Mail.XXX:XXX]
- [fixed in 5.2.6: check for single/non-directory match in emacs.c(do_complete)]
-
-x pdksh 5.2.5, - (reported by Gabor Zahemszky): vi: # removes comment
- and executes if command already commented.
- [see Mail.XXX:XXX]
- [fixed in 5.2.6: added vi.c(do_comment)]
-
-x pdksh 5.2.7, - (reported by Adrian Marsh): test doesn't have == operator.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: added == to c_test.c operator table]
-
-x pdksh 5.2.7, - (reported by Mike Jetzer): pdksh sets/exports COLUMNS/LINES
- which causes applications not to respond to window size changes.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: COLUMNS/LINES no longer exported automatically]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): getopts sets OPTIND differently
- that at&t ksh when a bad option is given.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: OPTIND not set if option was bad - fragile fix - may go away]
-
-x pdksh 5.2.7, - (reported with fix by Marc Olzheim): sh version shouldn't
- have mail check stuff, macro expansion in PS[0-9].
- [fixed in 5.2.8: added lots of ifdefs]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): sub commands in PS1 cause
- a warning message to be printed.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: lex.c(set_prompt) - don't print the warning message]
-
-x pdksh 5.2.7, - (reported by Tom Watson): some environment variables
- (eg, PATH) are converted to uppercase on 16-bit int machine.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: struct tbl.flag (32 bit thing) was being treated as an
- int in some places]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): unset always returns 0 - should
- return 1 if variable/function is not set.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed c_sh.c(c_unset)]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): select should only print the
- menu the first time, if REPLAY is empty, or if a blank line is entered.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed up exec.c(execute,do_selectargs)]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): shell reports "cannot execute"
- error if file exists, even if . not in path.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed up exec.c(comexec)]
-
-x pdksh 5.1.3, - (reported with partial fix by ra@rhi.hi.is): shell doesn't
- listen to sigwinch.
- [see Mail.7:7 and related]
- [fixed in 5.2.8: changed edit.c(x_init) to catch sigwinch]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): typeset doesn't report
- variables that have attributes (like export) but no values.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed up c_ksh.c(c_typeset)]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): error message printed as
- a result of "set -o nounset" is different from at7t ksh.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed error messges in eval.c]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): vi/emacs: when listing
- command/file completions, should go back at most one space. Also, should
- allow completions on zero length names.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: fixed edit.c(x_locate_word); now allows zero-length
- file completions (but not command)]
-
-* pdksh 5.2.7, - (reported by Gabor Zahemszky): emacs: <esc># doesn't do
- the comment thing.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: added emacs.c(x_comment) et al.]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): arithmatic expressions
- containing variables not expanded as in at&t ksh. eg, "x=1+2, let y=x"
- fails.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: added evaling/INEXPREVAL/ET_RECURSIVE code to expr.c]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): unsetting the 0th element
- of an array kills the whole array.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: var.c(unset) - allow ARRAY to be preserved]
-
-x pdksh 5.2.7, - (reported by Gabor Zahemszky): unsetting a function while
- it is being executed can result in core dump.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: table.c(texpand) - dont free if FINUSE is set]
-
-* pdksh 5.2.7, - (reported by Gabor Zahemszky): exec 3<&p doesn't close
- shells copy of the coprocess file desc.
- [see Mail.XXX:XXX]
- [fixed in 5.2.8: coprocess stuff made to act like ksh93 co-processes]
-
-x pdksh 5.2.8, - (reported with fix by Lars Hecking): doesn't compile as
- sh - c_ksh.c and jobs.c boom out.
- [see Mail.XXX:XXX]
- [fixed in 5.2.9: added ifdef KSH to appropriate places]
-
-x pdksh 5.2.8, - (reported by Paolo Zeppegno): assignments containing brackets
- are treated as commands.
- [see Mail.XXX:XXX]
- [fixed in 5.2.9: fixed bug in vars.c(skip_wdvarname).]
-
-x pdksh 5.2.5, - (reported by Adrian Marsh): configuration on Linux FT fails.
- Caused by configure script using -g flag - gcc passes -lg to ld, ld fails
- to find -lg (autoconf or Linux FT bug).
- [see Mail.XXX:XXX]
- [fixed in 5.2.9: changed autoconf's -g test to do linking as well.]
-
-x pdksh 5.2.8, Solaris 2.5.1 (reported by Stefan Dalibor): 2 tests
- (xxx-exec-environment-1 and 2) fail because printenv isn't found.
- [see Mail.XXX:XXX]
- [fixed in 5.2.9: changed test to use env instead]
-
-x pdksh 5.2.8, - (reported by Stefan Dalibor): shell assumes 80 columns when
- it starts up if COLUMNS is set correctly in the environ.
- [see Mail.XXX:XXX]
- [fixed in 5.2.9: fixed so window size is checked at startup]
-
-x pdksh 5.2.8, NeXT machines (reported by Kai Wong): clock_t, which lives
- in sys/time.h, isn't found by configure (causes warning messages).
- [fixed in 5.2.9: configure now checks in sys/time.h]
-
-x pdksh 5.2.3, - (reported by Mike Jetzer): in vi, <ESC>= on word with ~
- but no /, beeps (or prints final path component?).
- [see Mail.9:66]
- [fixed in 5.2.9: fixed edit.c(add_glob) so no * is appended to ~username]
-
-x pdksh 5.1.3, NeXT machines (reported by Jason Baugher): job control doesn't
- work on NeXT machines (both m68k and x86 based) in rlogin sessions.
- (caused by open("/dev/tty") failing - rlogin on NeXT doesn't set up
- controlling tty properly).
- [see Mail.7:29]
- [fixed in 5.2.9: added hack to main to get a controlling tty]
-
-x pdksh 5.2.8, NeXT 3.2 (reported by Andrew S Townley): the output of the
- siglist.sh script fills the disk. Also, the signal list generated (by the
- fixed script) is mostly empty.
- [see Mail.XXX]
- [fixed in 5.2.9: fixed siglist.sh script to avoid infinite loops. Added
- comment to README warning of problem with NeXT's native cc -E]
-
-x pdksh 5.2.9, - (reported by Loris Talpo): long prompts are messed up in
- vi mode.
- [see Mail.XXX]
- [fixed in 5.2.9: lex.c(pprompt) was broken]
-
-x pdksh 5.2.9, - (reported by Will Renkel): a double backslash followed
- by a newline in an unquoted here document results in one of the backslashes
- and the newline being stripped.
- [see Mail.XXX]
- [fixed in 5.2.10: fixed backslash-newline processing in lex.c]
-
-x pdksh 5.2.9, - (reported by Han Holl): read x?prompt doesn't work
- on non-interactive shells when the input is from a tty.
- [see Mail.XXX]
- [fixed in 5.2.10: changed test in c_read() from FTALKING to isatty]
-
-x pdksh 5.2.10, - (reported by Dale DePriest): expanding aliases causes
- extra input.
- [see Mail.XXX]
- [fixed in 5.2.11: fixed syn.c(c_list).]
-
-x pdksh 5.2.10, - (reported by John Rochester): window size changes don't
- happen on Dec unix (osf) because TIOCGWINSZ is defined in <sys/ioctl.h>
- not in <termios.h>.
- [see Mail.XXX]
- [fixed in 5.2.12: sys/ioctl.h included with termios.h/termio.h if possible]
-
-x pdksh 5.2.11, - (reported by Randy Bouzane): aliases in command substitutions
- result in code dumps.
- [see Mail.XXX]
- [fixed in 5.2.12: lex.c(getsc__): break if eof is read]
-
-x pdksh 5.2.11, - (reported by Will Renkel): aliases containing ;<newline>
- or <newline><newline> aren't fully read/executed.
- [see Mail.XXX]
- [fixed in 5.2.12: syn.c(get_command): call inalias()]
-
-x pdksh 5.2.11, SGI/IRIX 5.2 (reported by bert@xpilot.com): pipelines
- containing built in commands hang forever.
- [see Mail.XXX]
- [fixed in 5.2.12: fixed pgrp sync code in jobs.c]
-
-x pdksh 5.2.11, - (reported by Herbert Thielen via Larry Daffner): shell leaves
- temp files around when executing shell scripts that have functions with
- here documents which end in an exec.
- [see Mail.XXX]
- [fixed in 5.2.12: call main.c(cleanup_proc_env()) from exec.c(execute()).]
-
-x pdksh 5.2.12, - (reported with fix by Eric J. Chet via Thomas Gellekum):
- . can cause core dump when cleaning up.
- [see Mail.XXX]
- [fixed in 5.2.13: call shf_close() before quitenv()]
-
-x pdksh 5.2.12, - (reported by Bruce Burns): test with a single -t option
- always returns true (does a string test instead of isatty(1)).
- [see Mail.XXX]
- [fixed in 5.2.13: do the isatty(1) unless in posix mode]
-
-x pdksh 5.2.12, - (reported by David Tamkin): aliases ending in "; "
- cause continuation prompt to be printed.
- [see Mail.XXX]
- [fixed in 5.2.13: syn.c(c_list) now handles blank lines, removed cf=CONTIN
- in syn.c(get_command)]
-
-x pdksh 5.2.12, - (reported by Herbert Thielen via Larry Daffner): set
- does not allow +o and -o options in the same command line.
- [see Mail.XXX]
- [fixed in 5.2.13: changed ksh_getopt to remove exclusion code.]
-
-x pdksh 5.2.12, - (reported by Han Holl <jeholl@euronet.nl>):
- set -A foo -- bar doesn't skip the --.
- [see Mail.XXX]
- [fixed in 5.2.13: changed misc.c(parse_args) so A takes an option]
-
-x pdksh 5.2.12, - (reported by David Tamkin): -e (errexit) should be ignored
- when processing profile and ENV.
- [see Mail.XXX]
- [fixed in 5.2.13: errexit saved/cleared/restored in main()]
-
-x pdksh 5.2.12, - (reported by Han Holl <jeholl@euronet.nl>):
- [ -x foo ] succeeds for root if foo exists.
- [see Mail.XXX]
- [fixed in 5.2.13: changed c_test.c(test_access) to use stat in this case]
-
-x pdksh 5.2.4, - (reported by Gabor Zahemszky): echo ${foo[*]#/} generates
- bad substsitution error, newer ksh's don't (older ones do);
- error includes {...#@(/)}.
- [fixed in 5.2.13: moved the @(..) hack from yylex() to expand()]
-
-x pdksh 5.2.8, - : extended pattern globing doesn't handle nested parens (),
- e.g., [[ aby = +(a|b(x|y)) ]]
-
-x pdksh 5.2.12, - (reported by Marc Olzheim <marcolz@stack.nl>):
- "echo a | (echo b | echo c)" causes a core dump.
- [see Mail.XXX]
- [fixed in 5.2.13: clear XPIPEI,XPIPEO at start of jobs.c(exchild)]
-
-x pdksh 5.2.12, - (reported by Curt Finch <curt@pnk.com>): in an interactive
- shell, globbing isn't done on redirections if the command is part of
- a pipeline. e.g., in "cat < /tmp/*gz | grep foo", the /tmp/*gz is
- not expanded.
- [see Mail.XXX]
- [fixed in 5.2.13: clear XPIPEI,XPIPEO at start of jobs.c(exchild)]
-
-x pdksh 5.2.12, - (reported with fix by Greg A. Woods <woods@most.weird.com>):
- in emacs, ^[_ (aka ^[.) gets the word from the previous line relative to
- where the current line came from in the history. It should get it from
- the last executed line ala at&t ksh.
- [see Mail.XXX]
- [fixed in 5.2.13: use absolute last command]
-
-x pdksh 5.2.12, - (reported by Gabor Zahemszky): MAILCHECK and MAIL
- don't report `new mail' unless MAIL is re-assigned.
- [see Mail.XXX]
- [fixed in 5.2.13: mail code was using variables memory, which was later
- trashed by exporting the MAIL variable. Fixed by saving copy of value.]
-
-x pdksh 5.2.12, - (reported by Gabor Zahemszky): memory gets badly fragmented
- when reversing a (large) file using a simple while read loop and variable
- concatenation.
- [see Mail.XXX]
- [fixed in 5.2.13: alloc.c changed to allow malloc() to deal with large
- blocks.]
-
-x pdksh 5.2.12, - (reported by Bernd Eggink <eggink@rrz.uni-hamburg.de>)
- ksh style functions don't save/reset/restore OPTIND.
- [see Mail.XXX]
- [fixed in 5.2.13: save and restore user_opt for ksh-style functions.]
-
-x pdksh 5.2.12, - (reported by Marc Olzheim <marcolz@stack.nl>)
- ${..%..} stuff don't work in SH mode.
- [see Mail.XXX]
- [fixed in 5.2.13: removed ifdef KSH from misc.c(do_gmatch)]
-
-x pdksh 5.2.12, - (reported with fix by George Robbins
- <grr@shandakor.tharsis.com>)
- in sh, "exec 3>&1" does not keep fd 3 open in executed commands.
- [see Mail.XXX]
- [fixed in 5.2.13: c_sh.c(c_exec): added ifdef KSH around fd_clexec() call]
-
-x pdksh 5.2.12, - (reported with fix by George White
- <gwhite@bodnext.bio.dfo.ca>)
- in remove_temps(main.c), space for name field is not allocated correctly.
- [see Mail.XXX]
- [fixed in 5.2.13: initialize t->name in new structure]
-
-x pdksh 5.2.12, - (reported with fix by Marc Olzheim <marcolz@stack.nl>):
- when at (past) end of the line, word/command completion will skip back
- [see Mail.XXX]
- [fixed in 5.2.13: edit.c(x_locate_word): delete special handling of
- end-of-buffer]
-
-x pdksh 5.2.12, - (reported by Mike Kelly <tfsmiles@ecst.csuchico.edu>):
- doting a directory (or a empty path) is allowed.
- [see Mail.XXX]
- [fixed in 5.2.13: exec.c(search_access): don't do non-regular files for R_OK]
-
-x pdksh 5.2.13, - (reported by Mike Kelly <tfsmiles@ecst.csuchico.edu>):
- typeset -f FUNC doesn't print follows command (and expression) substitutions.
- [see Mail.XXX]
- [fixed in 5.2.14: tree.c(tputS): add wp++]
-
-x pdksh 5.2.13, - (reported by Thomas Gellekum):
- make check fails on freebsd with "chmod 644 abcx failed - Inappropriate ...".
- [see Mail.XXX]
- [fixed in 5.2.14: make test/th convert permissions to octal]
-
-x pdksh 5.2.13, - (reported with fix by David E. Wexelblat):
- when re-allocating memory, too much may be copied from old memory.
- [see Mail.XXX]
- [fixed in 5.2.14: use min old old size and new size]
-
-x pdksh 5.2.13, - (reported with fix by David E. Wexelblat):
- set -o printed some options sans names.
- [see Mail.XXX]
- [fixed in 5.2.14: use 0 instead of null in options[] table]
-
-x pdksh 5.2.13, - (reported by Gabor Zahemszky):
- emacs mode: <esc>. in very fist command causes core dump.
- [see Mail.XXX]
- [fixed in 5.2.14: ring bell if no history in emacs.c(x_prev_histword)]
-
-x pdksh 5.2.13, - (reported by Keith S McCabe): pdksh dumps core
- after a cd command.
- [see Mail.XXX]
- [fixed in 5.2.14: exec.c(flushcom) was setting bits in table entry, instead
- of clearing a single bit]
-
-x pdksh 5.2.12, - (reported by Jaime A. Urquidi): typeset -i reports
- on array elements that have no value (at&t ksh reports on array
- base name - no index).
- [see Mail.XXX]
- [fixed in 5.2.14: hack to c_ksh.c(c_typeset) to generate the ksh88 style
- output]
-
-x pdksh 5.2.13, - (reported with fix by Todd C. Miller):
- ulimit -ctn unlimittttted kills shell (resource exceeded).
- [see Mail.XXX]
- [fixed in 5.2.14: hacked c_ulimit to generate error val is 0 and expr doesn't
- start with a digit]
-
-x pdksh 5.2.13, - (reported with fix by Theo de Raadt):
- ". /dev/null" says access denied.
- [see Mail.XXX]
- [fixed in 5.2.14: exec.c(search_access): allow non-regular file if reading]
-
-x pdksh 5.2.13, - (reported with fix by Eric Youngdale): flag field in aliases
- incorrectly changed (all flags set instead of clearing ISSET) in
- exec.c(flushcom).
- [see Mail.XXX]
- [fixed in 5.2.14: exec.c(flushcom): change = ~ISSET to &= ~ISSET]
-
-x pdksh 5.2.13, - (reported by Andre Delafontaine): ${#array[*]} prints
- largest index instead of number of (set) elements in an array (ksh88 does
- the former).
- [see Mail.XXX]
- [fixed in 5.2.14: eval.c(varsub): count number of elements]
-
-x pdksh 5.2.13, - (reported by Clifford Wolf): sys_siglist[] doesn't
- always have NSIG non-null entries...
- [see Mail.XXX]
- [fixed in 5.2.14: trap.c(inittrap): check for null sys_siglist entries.]
-
-x pdksh 5.2.13, - (reported with fix by Todd C. Miller): waitfor in jobs.c
- can cause core dump if j_lookup fails.
- [fixed in 5.2.14: jobs.c(waitfor): return if j_lookup fails]
-
-x pdksh 5.2.13, - (reported by Martin Bond): if shell is started several
- times in quick succession, echo $RANDOM produces the same results.
- [fixed in 5.2.14: main.c(main): seed RANDOM using time, pid, ppid]
-
-x pdksh 5.2.13, - (reported by Martin Bond): repeating "echo `echo $RANDOM`"
- will always produce the same number.
- [fixed in 5.2.14: call var.c(change_random) from jobs.c(exchild)]
-
-x pdksh 5.2.13, hpux 10.x (reported by Mike Kelly): pwd will dump core if
- current directory is not readable.
- [fixed in 5.2.14: config test & code to work around hpux C library bug]
-
-x pdksh 5.2.13, linux (reported by Mike Jetzer): getwd warning from linker
- [fixed in 5.2.14: configure.in/misc.c: check for getcwd, use it over getwd]
-
-x pdksh 5.2.13, (reported by Dmitri Kulginov): "trap exit 1" does not set a
- trap for HUP (exit is mistaken as a signal name, not a command).
- [fixed in 5.2.14: c_sh.c(c_trap): use case sensitive lookup for first arg]
-
-x pdksh 5.2.13, (reported by Mark Funkenhauser): eval "$(false)" does not
- result in $? being set to 1 (is 0).
- [fixed in 5.2.14: c_sh.c(c_eval): set exstat to subst_exstat before shell()]
-
-x pdksh 5.2.13, (reported with fix by Kevin Schoedel): word boundaries in
- file completion are only spaces - at&t ksh uses ()<>&| and spaces.
- [fixed in 5.2.14: edit.c(IS_WORDC): changed macro to be LEX1 + quotes]
-
-x pdksh 5.2.13.5, (reported with fix by Martin Lucina <mato@kotelna.sk>):
- exit status parsing in exit command incorrect (sets status to random
- value if no argument given).
- [fixed in 5.2.14: c_sh.c(c_exitreturn): only set exstat if arg given]
-
-x pdksh 5.2.13.5, (reported with fix by Martin Lucina <mato@kotelna.sk>):
- KSH_CHECK_H_TYPE in aclocal.m4 has too many [] around the patterns.
- [fixed in 5.2.14: aclocal.m4(KSH_CHECK_H_TYPE): remove two pairs on []]
-
-x pdksh 5.2.13.5, (reported by Charles M. Hannum <root@ihack.net>): An exit
- trap set in a subshell is not executed (unless explicit exit used).
- [fixed in 5.2.14: exec.c(execute): changed exit(rv) to unwind(LEXIT).]
-
-x pdksh 5.2.12, - : MAILCHECK isn't preserved from the environment on startup.
- [fixed in 5.2.14: changed main's initcoms[].]
-
-x pdksh 5.2.13, (reported by Marc Olzheim): time at the end of a pipeline
- doesn't print anything.
- [fixed in 5.2.14: exec.c(execute): clear XEXEC when calling timex().]
-
-x pdksh 5.2.13, (reported by David J. McMahon): here documents in subshells
- don't work if the parent exits before the subshell.
- [fixed in 5.2.14: heredocs now saved in memory, written to temp when needed.]
-
-x pdksh 5.2.13, (reported by Seiichi Namba): emacs: keys bound in .profile/$ENV
- are overridden by stty settings (eg, binding ^U in .profile has no effect).
- [fixed in 5.2.14: emacs.c: added x_bound array to track what user has set.]
-
-x pdksh 5.2.13: vi: failed redo (.) commands caused line to be returned to the
- shell (eg, "echo hi/there^[Bdf/.").
- [fixed in 5.2.14: vi.c(vi_hook): removed !=0 from VREDO switch expression]
-
-x pdksh 5.2.13, (reported by Arthor Pool): man page: (a) the time reserved
- word is not described; (b) description of command line wrapping is in vi
- section only (not in emacs); (c) limit on array indices not mentioned;
- (d) ignoreeof ignored if eof read 13 times.
- [fixed in 5.2.14: man page updated]
-
-x pdksh 5.2.13, (reported by Arthor Pool): set -u causes loss of stdout
- when command substitution with undefined parameter reference is run
- in an interactive shell.
- [fixed in 5.2.14: jobs.c(fill_command): don't eval TCOM arguments]
-
- XXX fd 1 lost (general fd pool handler?, error handler for comsub?)
-
- AP messages:
- time not descr
- vi/emacs <+>
- trap
- typeset -f ... "$(jasdsjh)" ...
- array
- os2 interrupts + pattern
- ignoreeof
- set -A --
- set -u -> comsub errors & fill_command eval
-
-x pdksh 5.2.13, (reported by Dave Hillman): test -nt
- and test -ot do not succeed if file2 (file2) does not exist.
- [fixed in 5.2.14: c_test.c(test_eval): return true if appropriate stat fails]
-
diff --git a/bin/ksh/ChangeLog b/bin/ksh/ChangeLog
deleted file mode 100644
index 9bd74fcf3a4..00000000000
--- a/bin/ksh/ChangeLog
+++ /dev/null
@@ -1,1600 +0,0 @@
-Tue Jul 13 14:32:57 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * made pdksh-5.2.14 distribution
-
-Wed Jun 30 17:42:54 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * c_test.c(test_eval): changed -nt/-ot tests so they succeed
- if file2 (file2) `does not exist' (ie, the stat fails).
- (based on fix from Dave Hillman).
-
-Tue May 25 17:23:39 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * jobs.c(fill_command): do not eval() TCOM arguments - can cause
- problems.
-
-Tue May 25 15:26:31 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * new-version.sh,ksh.Man: added version number to man page; update
- version as well as date when updating tests/version.t and ksh.Man.
-
-Mon May 24 20:57:21 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * c_sh.c(c_eval): only set exstat to substs_exstat if in non-posix mode.
-
-Mon May 24 15:44:10 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * tree.h(FTIME): new define.
- * c_sh.c(timex): stuff to get info to/from timex_hook.
- * c_sh.c(timex_hook): new function (handles option processing).
- * exec.c(execute): call timex_hook() after TCOM eval().
-
-Tue May 18 12:23:27 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * vi.c(vi_hook): case VREDO: removed != 0 from switch expression.
-
-Tue May 18 11:24:12 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * emacs.c(CHARMASK,X_TABSZ): changed from 128 to 256.
- * emacs.c(x_size,x_zotc,x_mapout): use iscntl() vs range test.
- (Based on changes from Martin Dalecki)
-
-Thu May 13 17:23:17 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * emacs.c(x_bound,bind_if_not_bound): new variable/function.
- * emacs.c(x_bind): set bit in x_bound[].
- * emacs.c(x_emacs_keys): call bind_if_not_bound.
-
-Thu May 13 14:23:12 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * sh.h: ifdefs for __CYGWIN__ for path defines.
- * path.c(simplify_path): ifdefs for __CYGWIN__; preserve leading
- double-slash on pathnames.
- * c_ksh.c(c_cd): use cygwin_conv_to_full_posix_path().
- * edit.c(x_mode): default eof char to ^D.
-
- [fixes from Corinna Vinschen and Steven Hein, obtained from
- ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/
- porters/Vinschen_Corinna/B20/]
-
-Wed May 12 12:30:09 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * exit.c(x_mode): set fields of edchars to -1 if corrisponding char
- is unset.
- * exit.c(x_init): initialize edchars to -2, not -1.
- * emacs.c(x_emacs_keys): check if char is >= 0 before setting.
-
-Wed May 12 11:31:24 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * shf.c(shf_write): don't buffer if buffer is empty and we're
- writting a large amount.
- * shf.c(shf_open): changed to use shf_reopen instead of shf_fdopen
- so alloca failing won't lose the fd.
-
-Wed May 12 10:19:43 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * sh.h: deleted TT_HEREDOC_RAW define.
- * tree.h(struct ioword): added heredoc field.
- * tree.c(iocopy,iofree): copy/free heredoc field; remove special case
- for IOHERE and name field.
- * tree.c(ptree): changed to use heredoc content string (not open temp).
- * lex.c(yylex): initialize heredoc field.
- * lex.c(readhere): save to string instead of a temp file.
- * exec.c(herein): changed first are from file name to heredoc content
- string; changed all calls. Changed to always create a new temp file
- and write content to it.
-
-Tue May 11 11:38:22 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * tree.c(iofree): free delim field; don't free name of IOHERE iowords.
-
-Tue May 11 10:57:53 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * sh.h(func_heredocs): deleted.
- * sh.h(EF_FAKE_SIGDIE): added.
- * lex.c(readhere): put function heredocs at bottom of env stack.
- * main.c(quitenv,cleanup_proc_env): deleted remove_temps(func_heredocs)
- calls.
-
- * main.c(quitenv): moved exit of no oenv to en after reclaim.
- * main.c(cleanup_parents_env): free ep->savefd and set to 0.
- * main.c(unwind,quitenv): moved code for E_NONE from unwind()
- to quitenv().
-
-Mon May 10 17:04:03 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * exec.c(herein): restore source to osource after yylex().
-
-Mon May 10 12:14:40 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * tree.c(iocopy): don't copy IOHERE name (it belongs to a struct temp).
- * tree.c(wdscan): added default case to print internal error.
-
-Mon May 10 10:39:34 NDT 1999 Michael Rendell (michael@deimos.cs.mun.ca)
-
- * sh.h(Temp_type): new enum (TT_HEREDOC_RAW, TT_HEREDOC_EXP,
- TT_HIST_FILE).
- * sh.h(struct temp): added type field.
- * io.c(maketemp): added type and tlist arguments; changed
- all calls.
-
-Tue Apr 27 11:31:48 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * exec.c(execute): clear XEXEC in the call to timex() so time
- can be used at the end of a pipeline.
-
-Fri Apr 23 16:29:01 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * mail.c(mcheck): don't check if MAILCHECK is set, just check if
- mplist is null.
- * mail.c(mcset): new function.
- * var.c(setspec): case MAILCHECK: call mcset.
- * var.c(unspecial): new function.
- * var.c(unsetspec): call unspecial for LINENO, MAILCHECK, RANDOM,
- SECONDS, TMOUT.
-
-Fri Apr 23 15:34:39 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * main.c(initcoms): put MAILCHECK, SECONDS, TMOUT in an eval to
- preserve previous values.
- * var.c(getspec): case V_SECONDS: don't do anything special if
- variable not set.
-
-Thu Apr 22 15:03:27 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * var.c(setstr): error if var is RDONLY.
- * var.c(global): non-letter params: set RDONLY flag after setstr call.
- * c_ksh.c(c_getopts), eval.c(expand), exec.c(execute):
- removed readonly check.
-
- * sh.h(KSH_UNWIND_ERROR, KSH_RETURN_ERROR): new defines.
- * var.c(setstr): added error_ok argument; changed all calls.
- * c_ksh.c(c_getopts): clear READONLY and INTEGER flags for OPTARG;
- return non-zero if variable can't be set.
- * var.c(typeset): if fake_assign fails, unset the variable's value
- and carry on for rest of array, then unwind.
- * expr.c(expand,v_expand): changed all calls to use KSH_UNWIND_ERROR
- or KSH_RETURN_ERROR.
-
-Tue Apr 20 16:52:24 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * configure.in: added check dup2.
- * sh.h: added dup2 prototype.
- * aclocal.m4: replace AC_HEADER_DIRENT so it checks -lndir.
-
- * missing.c(dup2): new function.
- Based on code from Marc Olzheim.
-
-Fri Apr 16 16:32:27 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * syn.c(lineno_offset): removed variable and all references.
- * tree.c(tcopy): copy lineno field.
- * var.c(user_lineno): new variable.
- * var.c(setspec): added case for V_LINENO (sets user_lineno).
- * var.c(getspec): V_LINENO: add in user_lineno.
-
-Fri Apr 16 15:26:26 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * tree.h(struct op): added lineno field.
- * table.h(V_LINENO, current_lineno): new define/variable.
- * exec.c(execute): set current_lineno for TCOM.
- * syn.c(lineno_offset): new variable.
- * syn.c(get_command): set t->lineno.
- * syn.c(function_body): save/restore lineno_offset;
- * syn.c(compile): initialize lineno_offset
- * var.c(initvar,getspec): added V_LINENO entry.
-
- Changes from Mark Funkenhauser.
-
-Fri Apr 16 12:18:08 NDT 1999 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * expr.c,misc.c(getoptions): added int casts to avoid errors from
- old K&R compilers.
- Fixes from Marc Olzheim.
-
-Fri Jan 15 12:51:53 NST 1999 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c: pass es as first param to all functions; deleted
- es global variable.
-
-Tue Jan 12 12:28:41 NST 1999 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_defbindings[]): removed #else part of ifdef OS2.
-
- * shf.c(shf_getse): added code to strip \r for OS2.
- * lex.c(getsc_line): removed OS2 ifdefs
-
- * os2/misc.c(ksh_execve),sh.h: added flags argument; changed all calls.
- * exec.c(scriptexec): OS2: make copy of a0 before calling
- search_access(X_OK).
- * sh.h: OS2: changed EXECSHELL, EXECSHELL_STR.
- * jobs.c(exchild): set XINTACT.
- * os2/config.h: added HAVE_TERMIOS_H.
- * os2/configure.cmd: changed test for existence of sed & gcc.
-
- Fixes from Ilya Zakharevich.
-
- * tests/th: added -C option, added "category" field.
- * tests/th(category_check): new function.
- * tests/*.t: added "category: !os:os2" to a few tests.
-
-Tue Jan 12 11:17:52 NST 1999 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(execute): changed exit(rv) to unwind(LEXIT) to
- allow exit traps to be done.
-
-Tue Jan 5 16:45:00 NST 1999 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_CHECK_H_TYPE): remove extra [] from egrep pattern.
- * c_sh.c(c_exitreturn): fixed logic of exit status parsing
- (fixes from Martin Lucina).
-
-Tue Jan 5 16:31:37 NST 1999 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_locate_word): changed IS_WORDC macro from !isspace
- to !lex1/'/"
- (based on fix from Kevin Schoedel).
-
-Wed Dec 16 15:02:48 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(kshdebug_init_,kshdebug_printf_,kshdebug_dump_),
- sh.h(kshdebug_init,kshdebug_printf,kshdebug_dump):
- new macros/functions.
-
-Wed Dec 16 12:12:23 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_eval): set exstat to substs_exstat to propogate
- substition exit status if resulting command is empty
- (based on fix from Mark Funkenhauser).
-
-Tue Dec 15 15:50:34 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(initcom[]): PPID no longer read only.
-
-Mon Dec 14 17:09:52 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * trap.c(gettrap): added igncase argument; changed all calls.
- * c_sh.c(c_trap): use case sensitive compare for first gettrap().
- (fix "trap exit 1").
-
-Thu Dec 10 12:24:53 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * configure.in: added test for getcwd.
- * aclocal.m4(KSH_OS_TYPE): added case for hpux; added test for
- bug in hpux getcwd (dumps core if . is not readable).
- * config.h.in: added HAVE_HPUX_GETWD_BUG define.
- * aclocal.m4,configure.in: remove AC_C_CROSS or change to AC_PROG_CC.
- * misc.c(ksh_get_wd): added code to handle bug in hpux getwd;
- changed precedence of getcwd vs getwd (use getcwd if available:
- getwd causes warnings under linux).
-
-Tue Dec 8 17:17:47 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): seed RANDOM using time, pid, ppid (was just time).
-
-Tue Nov 24 17:17:12 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit): improve setrlimit error message for EPERM
- (fix from Todd C. Miller).
-
-Thu Nov 19 18:09:59 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(waitfor): if j_lookup fails, always return
- (fix from Todd C. Miller).
-
-Fri Oct 23 19:59:25 NDT 1998 Michael Rendell (michael@lenny.cs.mun.ca)
-
- * jobs.c(JF_SAVEDTTYPGRP,j_resume,j_waitj): added save_ttypgrp
- stuff to deal with new gnu su which doesn't exec, but forks
- then execs.
-
-Thu Sep 24 16:23:48 NDT 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * trap.c(inittrap): Don't assume sys_siglist[] has NSIG non-null
- entries (fix from clifford@clifford.at).
-
-Thu Aug 6 14:46:45 NDT 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(varsub): ${#array[*]} now prints N elements, not
- max index.
-
-Sun Jul 19 11:50:21 NDT 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(function_body): fixed bug in handling of empty function
- body; if empty, pretend there is a : command.
-
-Mon Jun 29 10:13:02 NDT 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search_access): allow non-regular files to be .'ed
- (fix from Theo de Raadt).
-
-Thu Jun 25 17:01:36 NDT 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit): added KSH_RLIM_INFINITY and defined
- if system doesn't define RLIM_INFINITY; use when setting limits.
- When setting, if expression evaluates to 0 and string was not
- a number, generate an error (based on fix from Todd C. Miller).
-
-Wed Mar 11 16:35:37 NST 1998 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(flushcom): clear ISSET bit, don't set all the other bits
- (fix from Eric Youngdale).
-
-Tue Dec 16 11:07:21 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * shf.c(shf_vfprintf): %e/%f/%g conversion now prints negative
- numbers correctly (fix from Larry Bouzane).
-
-Thu Nov 20 15:16:15 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_prev_histword): check if histptr is 0.
-
-Sat Nov 8 11:46:32 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(options[]): changed null entries to (char *) 0
- (based on fix from David E. Wexelblat).
-
-Fri Nov 7 14:45:24 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * alloc.c(aresize): avoid memory overrun when copying old memory
- to new memory.
- (fix from David E. Wexelblat).
-
-Tue Oct 28 11:26:22 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tests/th: file-setup code: convert chmod argument to octal.
-
-Tue Oct 28 11:00:45 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tree.c(tputS): incr wp after COMSUB and EXPRSUB while loop
- to get past null.
-
-Mon Oct 27 12:38:05 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.13 distribution
-
-Mon Oct 27 12:21:51 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_dot): use search() error argument to report problem
- correctly.
- * exec.c(search_access): don't set *errnop if it is already set.
- * exec.c(search_access): extended non-regular file check from
- just X_OK to both X_OK and R_OK.
-
-Wed Oct 22 11:49:02 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_locate_word): don't skip trailing space if at end
- of buffer (based on fix from Marc Olzheim).
-
-Fri Aug 15 22:06:53 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(varsub,expand), lex.c(yylex): allow :%, :#, :%% and :##
- to be compatible with ksh88.
-
-Sat Aug 2 12:13:30 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(get_command): case MDPAREN/DBRACKET: do not
- clear KEYWORD|ALIAS from syniocf.
-
-Tue Jul 29 16:24:38 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_exec): added ifdef KSH around fd_clexec()
- (based on fix from George Robins).
-
-Tue Jun 3 12:52:05 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(do_gmatch): removed ifdef KSH about @(..|..) code as it
- is needed in SH mode for ${..%..} stuff.
-
-Mon May 19 16:10:06 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.h(struct block): added getopt_state and flags fields;
- added BF_DOGETOPTS.
- * sh.h,c_ksh.c: moved user_opt decl/defn from c_ksh.c to sh.h.
- * var.c(getspec): added case for V_OPTIND.
- * var.c(popblock): if BF_DOGETOPTS set, restore user_opt.
- * exec.c(comexec): case CFUNC: save user_opt for ksh-style functions.
- * c_ksh.c(getopts_reset,c_getopts): removed getopts_noreset variable
- and code.
- * sh.h(Getopts): added uoptind field.
-
-Fri May 16 11:40:22 NDT 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(error_prefix): don't print kshname if it is the
- same as the source file name.
-
-Thu Mar 13 10:42:31 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * mail.c(mbset): save a copy of the path so it can't get trashed
- (eg, by exporting a variable).
-
-Wed Feb 26 11:24:06 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_prev_histword): get word from last command entered,
- not from last command relative to current location in history
- (fix from Greg A. Woods).
-
-Sun Feb 16 13:18:52 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(FTALKING_I): new define
- * misc.c(options[]): added anonymous options for internal use:
- changed all code using options to not assume null option name
- is the end of options (use NELEM()) instead.
- Added slot for FTALKING_I
-
- * c_sh.c(c_read), exec.c(iosetup): test FTALKING_I instead of FTALKING.
- * main.c(main): set FTALKING_I.
-
-Fri Jan 10 16:36:36 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(exchild): use orig_flags instead of flags when testing
- XPIPEI/XPIPEO; clear all flags except XEXEC and XERROK.
-
-Tue Jan 7 11:16:08 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(yynerrs): deleted (not used); deleted all assignments of it.
-
-Fri Jan 3 13:40:29 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex): case STBRACE: interpret ( | ) as patterns;
- case SPATTERN: allow ( as an alias for @(.
-
-Thu Jan 2 15:44:07 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): set PATH to def_path in startup.
-
-Thu Jan 2 10:19:43 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec): ifdef KSH the setting of $_; only set $_ to
- last arg if interactive.
-
-Wed Jan 1 13:38:26 NST 1997 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex),eval.c(expand),tree.c(tputS,wdscan,wdstrip):
- changed OSUBST/CSUBST encoding to have { or x after xSUBST.
-
- * lex.c(yylex): case ${: don't prepend @( and append ) to trim patterns.
- * eval.c(expand): prepend MAGIC @ and append MAGIC ) to trim patterns.
-
- * syn.c(function_body): call wdstrip().
- * tree.c(wdstrip): new function.
-
- * lex.c(yylex): moved handling of < and > into one location.
-
-Wed Dec 11 13:00:05 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(ksheuid): new variable.
- * main.c(main): set/use ksheuid.
- * misc.c(change_flag): set ksheuid.
- * c_test.c(test_eval): use ksheuid
- * c_test.c(test_eaccess): if doing X_OK and user is root, use
- stat to avoid false positives on files.
-
-Mon Dec 9 12:08:56 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): save/clear/restore FERREXIT flag while processing
- profile and ENV.
-
-Wed Dec 4 12:25:23 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(parse_args): change -A option handling - make getopts
- gather the option (A: vs A).
-
-Thu Nov 21 15:42:57 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_alias): accept + options; don't print alias definition
- if + option used; allow export flag to be cleared; added -p
- option.
-
-Thu Nov 21 14:35:47 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tree.c(ptree),c_ksh.c(c_typeset): print ksh functions as
- "function foo...", sh functions as "foo()...".
-
- * c_ksh.c(c_typeset): accept -p flag (does nothing).
-
-Wed Nov 20 11:36:08 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_typeset): simplified option exclusion code.
-
- * misc.c(ksh_getopt): allow options in same command line to start
- with either + or - (if appropriate). [code existed to similate
- ksh88 typeset behaviour which disallowed "typeset +x -i foo"]
-
-Wed Nov 13 12:02:59 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(c_list): added multi argument; changed all calls to pass
- TRUE, except one in yyparse(); changed logic to accept and
- ignore blank lines if multi flag is set.
- * syn.c(get_command): removed multiline.on/cf=CONTIN test/assignment.
- * syn.c(struct multiline_state,struct nesting_state,multiline,nesting,
- multiline_push,multiline_pop,nesting_push,nesting_pop): renamed
- *multiline* to *nesting*; removed struct multiline_state.on field
- (deleted all references).
-
-Mon Nov 4 16:29:50 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_test.c(c_test): in special < 5 arg code: if single arg is
- -t and not in FPOSIX mode, don't decide its a string test.
-
-Wed Oct 30 11:34:39 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(include): call quitenv() after shf_close()
- (fix from Eric J. Chet).
-
-Wed Oct 30 11:23:17 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec): case CFUNC: set $0 to kshname if non-function
- function.
-
-$OpenBSD: ChangeLog,v 1.16 2013/11/28 10:33:37 sobrado Exp $
-
-Tue Oct 29 11:34:58 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.12 distribution
-
-Fri Oct 25 11:59:48 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd): case Cntl('i'): dont fall through, call complete_word().
-
-Tue Oct 22 17:38:21 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.h(USERATTRIB): new define.
- * c_ksh.c(c_typeset): report unset params only if it has some
- interesting attributes.
-
-Tue Oct 22 15:54:39 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(exchild): changed NEED_PGRP_SYNC code so j_sync_pipe[1] isn't
- left open in 2nd+ children.
-
-Tue Oct 22 12:59:49 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): memset() env to 0.
-
-Mon Oct 21 12:53:44 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(cleanup_proc_env): new function.
- * exec.c(execute): call cleanup_proc_env() before calling ksh_execve().
-
-Fri Oct 11 22:53:57 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(display): use ch not e->buf[cur] when printing character.
-
-Fri Oct 11 13:26:11 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_TIMES_CHECK,KSH_DUP2_CLEXEC_CHECK,KSH_OPENDIR_CHECK):
- changed sense of test so "yes" result is printed if you have a good
- system.
- * aclocal.m4(KSH_C_FUNC_ATTR): changed return type of test_cnst to int.
-
-Fri Oct 11 13:05:40 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(get_command): added inalias() call when setting cf = CONTIN.
-
-Thu Oct 10 16:22:03 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(getsc__): case SALIAS: if we read eof, break, don't continue.
-
-Tue Oct 8 13:14:00 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_TERM): added SYS_IOCTL_WITH_TERMIOS,
- SYS_IOCTL_WITH_TERMIO tests.
- * tty.h: include <sys/ioctl.h> with <termios.h>/<termio.h>
- if possible.
-
-Tue Oct 8 11:42:36 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.11 distribution
-
-Tue Oct 8 11:02:54 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(inalias): new function.
- * syn.c(c_list): call inalias() instead of testing source->type.
-
-Mon Oct 7 17:00:40 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.10 distribution
-
-Mon Oct 7 16:23:53 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_read): when printing prompt, use isatty, not FTALKING.
-
-Wed Oct 2 12:00:51 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex): redirection stuff: save result of getsc() == '-'
- and use it for ungetsc().
-
- * lex.h(struct source): moved ugbuf out of union so it can be used
- with alias stuff.
- * lex.c(getsc__) case SALIAS: instead of appending a space, get the
- next character and stuff it in ugbuf.
-
- * lex.c(getsc_,getsc__): getsc_() renamed to getsc__().
- * lex.c(getsc_,getsc): getsc() macro renamed to getsc_().
- * lex.c(backslash_skip,ignore_backslash_newline): new variables.
- * lex.c(getsc): new macro that checks backslash_skip.
- * lex.c(getsc_bn_,getsc_bn): getsc_bn() macro deleted (all calls
- replaced with getsc()); getsc_bn_ renamed to getsc_bn.
- * lex.c(ungetsc_,ungetsc): ungetsc() macro deleted; renamed ungetsc_()
- to ungetsc().
- * lex.c(yylex,ungetsc,getsc_bn): set and use backslash_skip,
- ignore_backslash_newline.
- * lex.c(yylex): removed special cases for backslash-newline sequence,
- explicitly ignore backslash followed by eof.
-
-Mon Sep 30 17:14:41 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.9 distribution
-
-Mon Sep 30 12:52:21 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(pprompt): fixed usage of ntruncate.
-
-Thu Sep 19 17:43:33 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(KSH_SYSTEM_PROFILE): new define.
- * main.c(main): use KSH_SYSTEM_PROFILE.
-
- * aclocal.m4(KSH_OS_TYPE): added case for NEXT.
-
-Thu Sep 19 15:39:54 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tty.c(tty_init): added hack for NeXT's rlogin's missing controlling
- tty.
-
-Mon Sep 16 11:18:10 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(add_glob): don't append a * to a ~username.
-
- * edit.c(x_init): set got_sigwinch before calling check_sigwinch().
-
-Wed Sep 11 14:38:38 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_let): ifdef'd KSH.
- * lex.h(SDPAREN),lex.c: ifdef'd KSH all uses of SDPAREN.
- * lex.h(MDPAREN),syn.c: ifdef'd KSH all uses of MDPAREN.
-
-Mon Sep 9 16:18:03 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(AC_PROG_CC): replaced autoconf's version with
- modified version.
-
- * configure.in(clock_t): check in sys/time.h as well.
- * ksh_times.h: include ksh_time.h.
- * ksh_time.h,ksh_times.h: added ifndef KSH_TIME_H/KSH_TIMES_H.
-
-Fri Sep 6 13:20:24 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(promptlen): X\r hack for delimiting hidden characters
- in prompt.
- (Based on fix from Bill Kish)
-
-Tue Sep 3 11:03:26 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * Makefile.in: removed options.h from HDRS (also removed file).
-
-Thu Aug 29 10:04:01 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_MEMMOVE): added return 0 to end of main().
-
-Fri Aug 23 14:23:50 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4,ksh_stat.h: changed S_IFFIFO to S_IFIFO.
-
-Fri Aug 23 09:58:09 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(skip_wdvarname): don't check for array if first char
- isn't [.
-
-Thu Aug 22 12:51:25 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c: added ifdef KSH around Coproc_id/j->coproc_id usagae.
- * c_ksh.c(c_read): added ifdef KSH around opipe.
-
-Tue Aug 20 09:41:32 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * configure.in: fixed quoting of sed LDSTATIC expression.
-
-Mon Aug 19 14:26:08 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.8 distribution
-
-Mon Aug 19 11:38:16 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.c(texpand): don't free entry if FINUSE is set.
-
- * var.c(unset): preserve ARRAY and DEFINED if unsetting foo[0].
-
-Thu Aug 15 15:08:52 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(sm_sigchld,sm_default): moved to sh.h.
- * sh.h(Coproc_id, struct coproc): new typedef; added njobs and
- id fields to struct coproc.
- * exec.c(execute): case TCOPROC: re-did coprocess stuff to use
- njobs/coprocess id.
- * jobs.c(struct Job): added coproc_id field.
- * jobs.c(exchild): initialize coproc_id to 0; set job coproc_id
- and increment coproc.njobs in parent.
- * jobs.c(checkjob): check coproc_id and close co-process input/output
- if needed.
-
- * exec.c(iosetup): only play with coprocess fds if this is an
- empty exec.
- * c_sh.c(c_read): commented out coproc_readw_close() call and eof call.
- * c_ksh.c(c_print): commented out closing coprocess fd on EPIPE.
-
- * jobs.c(exchild): in parent, last part of job: use orig_flags (not
- flags) when checking XCOPROC.
-
-Thu Aug 15 15:00:42 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(get_coproc_fd,cleanup_coproc): renamed to coproc_getfd() and
- coproc_cleanup(), respecitively; changed all calls.
-
-Tue Aug 13 16:56:59 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(O_COMMA,P_COMMA): new enums.
- * expr.c(evalexpr): added case for O_COMMA.
-
-Tue Aug 13 15:18:28 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(do_ppmm): new function to handle ++/--.
- * expr.c(evalexpr): call do_ppmm() in P_PRIMARY code.
- * expr.c(LAST_BINOP): deleted.
- * expr.c(IS_BINOP): new define.
- * expr.c(evalexpr): use IS_BINOP.
- * expr.c(O_PLUSPLUS,O_MINUSMUNS,opinfo[]): new enums; updated opinfo
- * expr.c(ET_LVALUE,ET_RDONLY): new enums.
-
- * expr.c(token): var code: don't increment cp in iter part of for loop,
- do it in body; don't correct for off by 1 in array or !noasign code.
- * table.h(EXPRLVALUE): new define.
- * expr.c(token): var code: set EXPRLVALUE flag if noassign.
- * expr.c(intvar): copy temp var if EXPRLVALUE set.
- * expr.c(assign_check): new function.
- * expr.c(evalexpr): if assign-op, call assign_check().
-
-Tue Aug 13 11:02:32 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(do_comment),edit.c(x_do_comment): made do_comment generic,
- renamed and moved to edit.c; changed all calls.
- * emacs.c(x_ftab[]): added x_comment.
- * emacs.c(x_defbindings[]): added XFUNC_comment as <esc>#.
- * emacs.c(x_comment): new function.
-
-Mon Aug 12 16:13:36 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(ET_BADVAR): deleted.
- * expr.c(ET_RECURSIVE, struct expr.evaling),table.h(EXPRNEVAL): added.
- * expr.c(v_evaluate): if curstate.evaling set, clear EXPRINEVAL.
- * expr.c(evalerr): added ET_RECURSIVE case, removed ET_BADVAR case.
- * expr.c(intvar): do recursion check, call v_evaluate() on value.
-
-Mon Aug 12 14:25:23 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(coproc_read_close): call coproc_readw_close() instead of
- duplicating code.
-
-Mon Aug 12 11:21:39 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_locate_word): changed to allow at most 1 leading blank
- before the word.
- * edit.c(x_file_glob,x_command_glob,add_glob): allow zero length word.
- * edit.c(x_cf_glob): allow zero length globs on when doing file
- completion.
-
- * edit.c(x_complete_word): #if 0 - it isn't used...
- * edit.c(x_file_glob,x_command_glob,x_locate_word): made static.
-
- * eval.c(varsub): changed FNOUNSET error from "unset variable"
- to "parameter no set", ala at&t ksh.
-
- * c_ksh.c(c_typeset): print variables that aren't set (just
- leave out the =...).
-
-Mon Aug 12 11:03:22 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(findfunc): removed redundant DEFINED check after tsearch().
-
-Fri Aug 9 22:16:21 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(j_change): when turning off FMONITOR and not FTALKING,
- changed SS_RESTORE_CURR to SS_RESTORE_ORIG.
-
- * edit.c(x_sigwinch): new function.
- * edit.c(x_init): set up signal handler for SIGWINCH; moved
- code to get window size into x_sigwinch(); call x_sigwinch().
- * emacs.c(xx_cols): new variable.
- * emacs.c(x_init): set xx_cols_to x_cols; change all uses of x_cols
- to xx_cols.
- * vi.c(display): when displaying morec, changed x_cols-2 to
- pwidth+winwidth+1.
-
-Fri Aug 9 12:49:00 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.h(FKSH): new define.
- * tree.h(struct op): put evalflags into new union u, added ksh_func
- to union; changed all uses of evalflags.
- * syn.c(function_body): set u.ksh_func.
- * exec.c(execute): changed define() arg to t (was t->left).
- * exec.c(define): copy t->left (was t); set FKSH in flag if is
- a ksh function.
- * exec.c(comexec): don't keep assignments for x() style functions.
- * exec.c(comexec: case CFUNC: set kshname ($0) for ksh style functions
- only (was FPOSIX).
-
- * exec.c(execute): case TAND/TOR: pass XERROK on when executing right
- hand side.
-
- * jobs.c(exchild): deleted redundant code to set j->flags
- (near new_job() call).
-
- * sh.h(ksh_tmout),main.c(alarm_init),trap.c(alarm_init,alarm_catcher):
- ifdef'd KSH.
-
- * sh.h(SS_SHTRAP,Trap.shtrap): added.
- * trap.c(trapsig): if shtrap is non-zero, call it.
- * trap.c(setsig): set shtrap if SS_SHTRAP set.
- * jobs.c(j_init),trap.c(alarm_init): pass SS_SHTRAP.
- * jobs.c(j_sigchld),trap.c(alarm_catcher): don't call trapsig().
- * trap.c(Sigact_alarm): removed.
-
-Thu Aug 8 15:57:14 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec): case CEXEC: print cannot execute error only
- if / in pathname; also, set exit code to 126.
-
- * exec.c(do_selectargs): added print_menu arg; only print
- menu if this is set, or if REPLY is null; removed "while isspace"
- loop.
- * exec.c(execute): case TSELECT: call do_selectargs with print_menu
- of TRUE on first call only.
-
- * exec.c(define): added was_set variable and logic.
- * c_sh.c(c_unset): return 1 if variable/function to be unset wasn't
- set to begin with.
-
-Wed Jul 31 10:33:00 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(Tflag): new type.
- * sh.h(builtin_flag): changed type to Tflag.
- * table.h(struct tbl): changed type of flag field to Tflag.
- * c_ksh.c(typeset): changed type of flag, fset, fclr to Tflag.
- * c_ksh.c(c_alias): changed type of xflag to Tflag.
- * exec.c(comexec): changed type of old_inuse to Tflag.
- * exec.c(builtin): changed type of flag to Tflag.
- * var.c(typeset): changed set, clr args to Tflag; convert second
- arg of call to local() to boolean.
-
-Wed Jul 31 10:26:25 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(C_QUOTE): new define.
- * sh.h(ctypes[]),misc.c(ctypes[]): changed from char to short.
- * misc.c(initctypes): set C_QUOTE bits in ctypes[].
- * misc.c(print_value_quoted): use C_QUOTE.
-
-Mon Jul 29 11:38:36 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(set_prompt): don't print warning message if setjmp returns
- non-zero.
-
-Fri Jul 26 10:16:27 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(set_prompt): don't do ! and parameter expansion if !KSH.
-
- * table.h(V_MAIL,V_MAILPATH,V_MAILCHECK): ifdef KSH.
- * var.c(initvar,setspec,unsetspec): ifdef KSH use of MAIL stuff.
- * mail.c: ifdef KSH whole file.
- * main.c(shell): ifdef KSH call to mcheck().
- * main.c(initcoms[]): ifdef KSH the MAILCHECK=600.
- (based on patches from Marc Olzheim).
-
- * exec.c(PS4_SUBSTITUTE): new macro.
- * exec.c(execute, comexec, iosetup): use PS4_SUBSTITUTE.
-
-Thu Jul 25 17:19:17 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(F_VIESCCOMPLETE): new define.
- * misc.c(options[]): added vi-esccomplete.
- * vi.c(classify[]): make ^[ a repeatable command.
- * vi.c(vi_cmd): check F_VIESCCOMPLETE for ^[.
-
-Mon Jul 22 16:54:38 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_getopts): return if variable is readonly; don't change
- OPTIND if option is bad (fragile).
- * c_sh.c(c_brkcont): use ksh_getopt(); changed error message if
- n <= 0.
- * c_sh.c(c_dot,c_eval,c_exitreturn): use ksh_getopt().
- * misc.c(ksh_getopt): print `unknown option' instead of `bad option'.
-
-Mon Jul 22 16:08:40 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_init): do NOT export COLUMNS/LINES - causes more problems
- than it fixes.
-
-Mon Jul 22 15:49:35 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(get_command): fixed test for '< foo (command)' so it
- works.
-
-Fri Jun 21 09:57:47 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_OPENDIR_CHECK): include dirent.h if HAVE_DIRENT_H
- defined (was DIRENT || _POSIX_VERSION).
- * aclocal.m4(KSH_UNISTD_H): don't test HAVE_DIRENT_H when including
- dirent.h.
-
-Wed Jun 12 11:02:32 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_test.c(b_ops[]): added "==" entry (ksh93ism).
-
-Mon Jun 10 14:00:21 1996 Michael Rendell (michael@lyman.cs.mun.ca)
-
- * ksh_stat.h: undef S_ISSOCK if STAT_MACROS_BROKEN defined.
- * aclocal.m4(AC_HEADER_STAT): redefine autoconf's version to handle
- FreeBSD's S_ISSOCK.
-
-Tue Jun 4 08:41:19 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.7 distribution
-
- * vi.c(CMDLEN): changed from 16 back to 1024.
-
-Sun Jun 2 11:54:46 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.6 distribution
-
-Sun Jun 2 11:46:56 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search_access): changed ordering of xsuffixes[], rsuffixes[];
- removed code that used xsuffixes[] when suffix is present.
- * lex.c(getsc_line): set O_TEXT/O_BINARY if os/2.
- * main.c(remove_temps): added os2 ifdefs.
- [Changes from Dale DePriest.]
-
-Tue May 21 14:18:22 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd): case '#': call do_comment() to do work.
- * vi.c(do_comment): new function.
- * vi.c(putbuf,grabhist,grabsearch): fixed pesimestic off-by-1 error
- (cbufsize - 1 -> cbufsize).
- * vi.c(vi_hook): case VCMD: case -1: added refresh(0).
- * vi.c(vi_cmd): case 'P': don't move cursor back if nothing added.
-
-Tue May 21 12:03:34 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(do_complete): don't add space if single match and
- it doesn't end with a /.
-
-Tue May 21 11:51:36 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_init): use typeset to set EXPORT attribute for
- COLUMNS/LINES.
-
-Tue May 21 11:40:12 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(parseargs): option setting: ignore context if option
- isn't being changed.
- * misc.c(printoptions): for non-verbose mode: print a set command
- (eg, set -o vi -o ...) instead of just the option names.
-
-Tue May 21 11:14:27 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_brkcont): if n is too big, use last enclosing loop.
-
-Fri May 10 09:27:47 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(Getopt): changed field p from int to unsigned.
-
-Tue May 7 12:10:47 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.5 distribution
-
-Tue May 7 11:45:37 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(compile): set multiline if source is SSTRING.
- * syn.c(yyparse): don't peek before calling c_list() - build
- TEOF if c_list() fails and c is 0.
- * syn.c(c_list): remove SSTRING test.
- * syn.c(get_command): if EOF is reached, free iops,args,vars.
- * syn.c(syntaxerr): set multiline.on to false when it is used;
- don't use multiline.on if start token is 0.
-
-Tue May 7 10:11:41 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(c_fc,hist_execute): moved calls to histbackup() from
- c_fc() to hist_execute().
- * history.c(hist_get): number: took out +1 correction as histbackup
- hasn't been done yet; string: added -1 correction to ensure
- current fc command isn't searched.
- * history.c(hist_get_newest,hist_get_oldest): don't find the
- current (fc) command; removed print_err argument (was always
- true).
- * history.c(hist_get,hist_get_newest): added allow_cur argument;
- changed all calls.
-
-Mon May 6 09:55:29 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_nextcmdp): renamed to x_nextcmd, changed from
- char ** to int.
- * emacs.c(x_nl_next_com): save absolute command number, not
- relative position in history array (which changes).
- * emacs.c(x_emacs): convert x_nextcmd back to relative position.
- * emacs.c(x_init_emacs): initialize x_nextcmd to -1.
-
-Sun May 5 13:10:48 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(evalexpr): when assigning a non-integer, call setint()
- (not setstr(..., strval(...))).
-
-Sun May 5 12:16:11 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * mail.c(maddmsg): changed name to mprintit(); now prints message
- directly instead of saving in a linked list; changed all calls.
- * mail.c(mprint): deleted; deleted all calls.
- * mail.c(mmsgs,struct mailmsg): deleted.
-
-Sun May 5 11:52:05 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(SF_TTY): new flag.
- * lex.h(STTY): deleted.
- * main.c(main): if tty, use SSTDIN, set SF_TTY.
- * main.c(shell): check SF_TTY instead of STTY.
- * lex.c(getsc_): call getsc_line for SSTDIN/SFILE.
- * lex.c(getsc_line): new function (merged old STTY/SSTDIN/SFILE code).
-
-Fri May 3 11:24:17 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(shell): changed exit_atend to toplevel. Changed interactive
- to be falking&toplevel (was talking&s->type==STTY).
-
-Fri May 3 10:59:22 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(getint): only allow one base (ie, disallow 2#4#5).
-
-Thu May 2 21:31:23 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(array_index_calc): new function
- * var.c(global): call array_index_calc(); moved $2 code into
- if (!letter(c))...
- * var.c(local): call array_index_calc(); added copy argument & code;
- changed all calls.
- * table.h(LOCAL_COPY): new define.
- * exec.c(comexec): maybe pass LOCAL_COPY to typeset().
-
-Thu May 2 16:34:29 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c: command completion changes.
- * emacs.c(Comp_type,CT_LIST,CT_COMPLETE,CT_COMPLIST): new type.
- * emacs.c(x_ins): return type changed to int; return -1 if
- string can't be inserted.
- * emacs.c(x_do_ins): new function.
- * emacs.c(add_stash,list_stash,compl_dec,compl_file,compl_command,
- str_match): deleted; changed callers to use do_complete().
- * emacs.c(do_complete,x_expand): new functions.
- * emacs.c(x_ftab[],x_defbindings[]): added entry for file-expand;
- bound to <ESC>*.
-
-Thu May 2 15:31:32 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(set_prompt): pass strlen() + 1 to shf_sopen.
- (fix from Arnon Kanfi).
-
-Wed Apr 24 11:50:52 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(c_fc): -e -: don't increment wp past null; allow
- pat=replace arg with "-1" type argument.
- (based on fix from Jason Tyler).
-
-Mon Apr 15 11:58:34 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.c(tenter),alloc.c(alloc): changed use of offsetof() so field
- parameter is a constant expression.
- * sh.h: took out undef of offsetof on CRAYs.
-
-Fri Apr 12 16:01:40 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(JF_USETTYMODE): renamed JR_ORIGFG to JF_USETTYMODE.
- * jobs.c(j_waitj): clear JF_USETTYMODE if fg job is stopped.
-
-Sun Apr 7 12:35:30 NDT 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh(c_print): echo: don't treat a lone minus as an option.
-
-Sat Apr 6 00:09:37 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit.c): always pass 2 args to ulimit().
- * ksh_sigsetjmp(): changed all uses to be simple expressions - seems
- to be required by the cray C compiler.
- * sh.h(offsetof): undef if on a cray.
- (based on fixes from Dave Kinchlea)
-
-Sat Mar 23 13:58:12 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * siglist.in: added WAITING,LWP,FREEZE,THAW,CANCEL
-
-Thu Mar 7 23:26:37 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_init): set LINES if possible.
-
-Thu Mar 7 23:01:55 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): call x_init() after j_init()
- (based on fix from Stefan Dalibor).
-
-Thu Mar 7 16:13:10 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_OS_TYPE): check for TitanOS (use cc -43).
- * aclocal.m4(KSH_SIGNAL_TYPE): for bsd41 signals, check if signal
- interrupt read().
-
-Thu Mar 7 13:59:29 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(strstr),missing.c(strstr): changed args to const.
-
-Wed Mar 6 17:21:36 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(errorf,bi_errorf): changed null pointer string check to
- empty string; changed all calls (due to new error gcc warnings).
-
-Wed Mar 6 17:15:58 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search_access): files aren't executable if they don't
- have any execute bits.
- * ksh_stat.h: added S_IXUSR,S_IXGRP,S_IXOTH.
- * exec.c(search_access,search_access1): OS2: changed the meaning
- of these two functions (search_access1 now called from search_access).
-
-Wed Mar 6 16:23:23 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tree.c(ptree): add case for TSELECT.
-
-Wed Mar 6 12:40:34 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(Z_,is_zeroarg): new defines.
- * vi.c(classify): use Z_ for G, g, _, |, v, ^I, ^F.
- * vi.c(vi_cmd): use is_zerocount().
- * vi.c(complete_word): if command prefixed by a count, complete
- to count'th expansion (as reported by print_expansions()).
-
-Tue Mar 5 14:43:48 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(GF_NONE,GF_EXCHECK,GF_GLOBBED,GF_MARKDIR): new defines.
- * eval.c(glob_str): added markdirs argument; changed all calls;
- made function non-static.
- * eval.c(glob): added markdirs argument; changed all calls.
- * tree.h(DOMARKDIRS): new define.
- * eval.c(expand): set DOMARKDIRS if FMARKDIRS.
- * edit.c(x_complete_word,x_print_expansions,x_file_glob,x_command_glob,
- x_locate_word,x_cf_glob,x_add_glob,x_longest_prefix,x_free_words):
- new functions.
- * proto,edit.h: moved functions defined in edit.c to edit.h.
- * vi.c(struct edstate): moved to top of file.
- * vi.c(print_expansions): added struct edstate argument; changed all
- calls.
- * vi.c(struct glob,Glob,globstr,glob_word,): deleted
- * vi.c(vi_pprompt): new function; changed all calls of pprompt() in
- vi.c to use vi_pprompt().
- * vi.c(x_vi): moved to top of file.
- * vi.c(expand_word,complete_word): free buf if it is not null.
- * vi.c(expand_word,complete_word,print_expansions): changed
- to use new edit.c functions.
-
-Tue Feb 20 11:02:05 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.c(twalk,tnext,struct tstate),table.h(struct tstate): moved
- struct tstate from table.c to table.h; changed twalk,tnext to take
- struct tstate* argument; changed all calls; deleted static tstate
- variable.
-
-Sat Feb 17 12:28:11 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_hook): case VSEARCH: if new pattern is empty, repeat last
- search.
-
-Sat Feb 10 15:59:28 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.h(struct arg_info): new struct.
- * table.h(struct block): changed argv, argc fields to argi.
-
-Sat Feb 10 15:12:47 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- ANSI C name space requirements:
-
- * vi.c(isbad,iscmd,islong,ismove,issrch,isundoable,iswordch): changed
- to is_bad,is_cmd,is_long,is_move,is_srch,is_undoable,is_wordch.
- * emacs.c(iscfs,ismfs): changed to is_cfs, is_mfs.
- * emacs.c(strmatch): changed to str_match.
- * sh.h(strchr_dirsep,strrchr_dirsep): changed to ksh_strchr_dirsep,
- ksh_strtchr_dirsep; changed all calls.
- * missing.c(strichars[]): changed to ichars[].
- * var.c(strint,strval): changed to setint_v, str_val.
- * missing.c(strsave,strnsave): changed to str_save,str_nsave.
-
-Fri Feb 9 11:30:15 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): remove envp parameter; declare and use environ.
-
- * c_ksh.c(c_print): octal digit escape sequences must start with \0.
-
-Sat Feb 3 15:35:41 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd,classify[]): made ^I a command.
-
-Fri Feb 2 10:40:32 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(struct source): added u.freeme field.
- * lex.c(getsc_): case SREREAD: free u.freeme iff start isn't u.ugbuf.
-
-Thu Feb 1 15:27:06 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_test.h(Test_env): added end union.
- * c_test.c(c_test): keep track of end position using end.wp;
- don't write on wp.
-
- * emacs.c(x_mapin): changed to dup string, then munge; return duped;
- changed all calls.
-
- * eval.c(homedir): deleted getpwnam() declaration - can't believe
- its needed anywhere (we shall see, though).
-
- * sh.h(handler_t): use ARGS for prototype; use h
- * sh.h(struct trap),trap.c(setsig,settrap),sigact.c,sigact.h:
- use handler_t.
- * history.c,c_sh.c,c_ksh.c: removed register declaration from
- c_*() functions.
- * exec.c(builtin),proto.h(builtin): use prototype for func.
- * misc.c(qsortp,qsort1),proto.h(qsortp): use prototype for f.
-
- * c_ksh.c(ksh_getopt): made options arg const.
- * tree.c(fptreef,snptreef,vfptreef): made fmt arg const.
- * jobs.c(waitfor,j_kill,j_resume,j_lookup,j_jobs): made cp arg const.
- * shf.c(shf_snprintf,shf_smprintf,shf_vfprintf): made fmt arg const.
- * c_test.h(Test_env.error),c_test.c(ptest_error): made msg arg const.
- * c_test.c(test_stat,test_eaccess): made path arg const.
- * c_test.c(ptest_getopnd,dbteste_getopnd): made return value const.
- * c_test.c(ptest_eval,test_eval,dbteste_eval,dbtestp_eval,test_primary):
- made opnd1,opnd2 arg const.
- * c_test.c(test_isop): made s arg const.
-
- * misc.c(bi_getn,getn): made as arg const.
- * misc.c(getn): made as arg const.
- * misc.c(gmatch): made s/p arg const.
- * misc.c(has_globbing): made xp/xpe arg const.
- * misc.c(do_gmatch): made s/p/se/pe arg const.
- * misc.c(cclass): made p arg const.
-
-Thu Feb 1 14:54:32 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.h, sh.h, tty.h: changed _I_ to I__.
- * edit.h, edit.c: changed _D_ to D__.
-
- * jobs.c,shf.c,tty.c: include ksh_stat.h (POSIX: needed for open).
-
- * sigact.c: use ARGS instead of __P; comment out __P defines.
-
- * shf.c: include math.h if FP.
- * shf.c(my_ceil): remove modf() declaration.
- * shf.c(shf_fvprintf): comment out frexp() declaration; changed
- exp to expo.
-
- * jobs.c(struct job, j_utime, j_stime): changed utime/stime to
- usrtime/systime; change j_utime/j_stime to j_usrtime/j_systime.
-
-Wed Jan 31 16:13:44 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(x_getc): cast return value to int to avoid warnings on
- strange compilers.
- * exec.c(funcfunc): changed second arg to unsigned int (was int).
- * syn.c(elsepart): move return NULL to end of function (avoids
- warning from some compilers).
- * vi.c(classify[]): changed type to unsigned char.
- * shf.c(shf_smprintf): delete unused variable n.
- * aclocal.m4(KSH_TIMES_CHECK): define INT32 in test code.
- * aclocal.m4(KSH_SIGNAL_CHECK): typeo: had bsd42 instead of bsd41.
- * sh.h(MAGIC): changed to 7 to increase portability.
- * jobs.c(tcsetpgrp,tcgetpgrp): define if TTY_PGRP (was TIOCSPGRP).
-
-Tue Jan 23 11:40:25 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(ksh_jmp_buf): new define.
-
-Thu Jan 18 15:03:19 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(hist_replace): fixed substitution code (again).
-
-Wed Jan 17 20:10:02 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.4 distribution
-
- * main.c(initcoms): changed hash alias to "hash=alias -t".
-
- * exec.c(do_selectargs): deleted c_read() declaration.
-
- * c_ksh(c_alias): call ksh_getopt_reset() before calling c_unalias().
-
-Wed Jan 17 19:47:55 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(histbackup): changed "histptr > history"
- to "histptr >= history".
-
- * history.c(hist_replace): removed un-needed "last" - use "s" instead.
- (based on fix from Jason Tyler).
-
-Thu Jan 11 15:59:46 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_whence,c_command),main.c(initcoms[]): removed ifdef KSH
- (type is a builtin in sys-5 sh).
-
-Wed Jan 10 11:49:59 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * Makefile.in: added NEWS.os2 to OS2FILES.
-
- * version.c: include "sh.h" (needed for const define).
-
- * exec.c(pr_menu): made non-static.
- * vi.c(print_expansions): gather expansions into an arrat
- and use pr_menu().
- (fixes from Mike Jetzer).
-
- * vi.c(redraw_line): added newline option; changed all calls.
-
-Wed Jan 10 10:21:06 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(classify): made 'U' a C_.
- * vi.c(ohnum): new variable.
- * vi.c(vi_reset): set ohnum to hlast.
- * vi.c(grabhist): set ohnum.
- * vi.c(vi_cmd): case n,N,/,? set ohnum; added case 'U'.
- * vi.c(edit_reset): clear holdlen.
- (based on fix from Dale DePriest).
-
-Tue Jan 9 11:23:36 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(iscfs): make ', " separators.
- (fix from Dale DePriest).
-
- * conf-end.h: deleted stuff to undef HISTORY, VI, EMACS, etc if
- KSH wasn't defined (now done in configure).
-
- * sh.h(GI_NONAME): changed to GF_NONAME; changed all uses.
-
- * configure.in: added AC_ARG_PROGRAM.
- * Makefile.in: replaced binprefix and manprefix with
- program_transform stuff.
-
-Mon Jan 8 11:42:46 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(struct temp): added shf field.
- * io.c(maketemp): changed to use O_EXCL; keep trying if open
- fails (due to O_EXCL); fill in shf field; changed all calls.
-
- * main.c(include): added intr_ok flag; changed all calls.
-
- * main.c(main): if compiled as sh and posix option not set, do not
- include $ENV.
-
- * trap.c: define FROM_TRAP_C before including sh.h.
- * sh.h: don't declare sigtraps if FROM_TRAP_C declared.
-
- * c_ksh.c(c_cd): fixed error message.
- * vi.c(glob_word): don't add * if word contains a $.
- (Based on fixes from Mike Jetzer).
-
- * eval.c(tilde): if HOME,PWD,OLDPWD aren't set, don't expand
- ~,~+/~-.
-
-Fri Jan 5 12:15:58 NST 1996 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * c_ksh.c(c_typeset): separate loop for printing functions
- (do not traverse array link).
- * c_ksh.c(c_typeset): list functions: do not ignore unset functions.
- * exec.c(findfunc): set val.t to 0 when creating new entry.
- * exec.c(define): if FINUSE, use tail recursion.
-
-Thu Jan 4 11:10:22 NST 1996 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(globstr): deleted ifdef'd out code.
-
-Sun Dec 10 11:07:52 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex): added case for STBRACE; wrap word part of
- trim substitution in @(..).
- * eval.c(trimsub): deleted code to wrap pattern in @(..); changed
- '%' code to use strnsave().
-
-Fri Dec 8 22:55:56 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(trimsub): if trim pattern contains a |, wrap pattern
- in @(...).
- * lex.c(yylex): make | special when incounted in a ${...}
- substitution.
-
-Fri Dec 8 11:52:38 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c: ifdef'd HISTFILE, HISTSIZE stuff with HISTORY (was KSH).
-
- * *.c,*.h: ifdef'd coprocess stuff with KSH.
-
-Thu Dec 7 14:41:06 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * options.h(BRACEEXPAND): changed to BRACE_EXPAND; changed all
- references.
-
-Thu Dec 7 13:54:20 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * exec.c(do_selectargs): don't print newline on eof.
-
-Thu Dec 7 10:23:30 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * c_ksh.c(c_print): added -f for OS2.
- * tree.h(DODIRSWP),eval.c: deleted define and all uses of it.
- * exec.c(scriptexec): ...
- * io.c(check_fd): set O_TEXT/O_BINARY flag for OS2.
- * main.c(main): set O_BINARY/O_TEXT, search path for arg.
- * emacs.c(compl_file): call opendir with buf, not dirnam.
- (based on changes from Dale DePriest).
-
-Wed Nov 29 15:50:36 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * eval.c(expand,debunk): handle extended pattern matching stuff.
- * eval.c(debunk): now has two arguments, changed all calls.
- * eval.c(globit): changed to use has_globbing.
- * eval.c(copy_non_glob): deleted.
-
- * misc.c(has_globbing): new function.
- * misc.c(cclass): changed argument to unsigned char *; handle
- extended pattern matching.
- * misc.c(do_gmatch): new function (taken from gmatch()).
- * misc.c(gmatch): changed to call do_gmatch.
- * misc.c(do_gmatch): added cases for extended pattern matching
- (*(foo|bar), etc.).
- * misc.c(pat_scan): new function.
-
- * lex.c(yylex): added SPATTERN case.
-
- * lex.c(arraysub): changed to assume just past the leading [
- (was assuming about to read [); changed all calls; changed
- to use getsc_bn().
-
- * lex.c(ungetsc): added argument; changed all calls; can now unget
- arbitrary number of characters.
- * lex.c(ungetsc_): new function.
-
- * lex.h(struct source): added start field, removed u.start field,
- changed all uses.
- * lex.c(getsc_): case STTY: skip blank line only if this is first line
- of a command (eg, not part of here documennt, etc.).
-
- * lex.c(yylex): case SHEREDELIM,SHEREDQUOTE: ignore \newline.
- * lex.c(readhere,get_brace_var): ignore \newline.
- * lex.c(getsc_bn,getsc_bn_): new define/function.
-
- * exec.c(iosetup): don't enforce noclobber for non-regular files.
-
- * tree.h(OPAT,SPAT,CPAT): new defines.
- * tree.c(tputS,wdscan): added cases for OPAT,SPAT,CPAT.
-
- * lex.c(yylex): moved case '[' from Subst: switch to case SBASE:.
-
-Tue Nov 14 11:00:48 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * syn.c(get_command,caselist): moved parsing of IN/ESAC into
- caselist; allow {/} instead of IN/ESAC;
- * syn.c(casepart): new parameter: endtok.
- * lex.c(yylex): allow } as well as ESAC when ESACONLY set.
- (changes based on fix from DaviD W. Sanderson).
-
-Tue Nov 14 10:22:17 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * main.c(shell): do not zero exstat at start of routine.
-
- * exec.c(execute): removed redundant "exstat = rv" before
- unwind(LERROR).
-
-Thu Nov 9 15:01:54 NST 1995 Michael Rendell (michael@angel.cs.mun.ca)
-
- * var.c(arrayname): made argument const.
- * var.c(typeset): made var argument const.
- * var.c(export): made val argument const.
- * tree.c(wdscan): changed return type to non-const (added casts).
-
-Thu Nov 9 14:39:49 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_alias),c_sh.c(c_set): made args[] array const.
- * c_ulimt.c(c_ulimit): made limits[] array const.
- * edit.c(x_mode): x_cur_mode no longer explicitly initialized to 0.
- * emacs.c(x_tab,x_atab): no longer explicitly initialized to 0.
- * exec.c(comexec): made texec non-static, non-initialized.
- * history.c(hist_finish): once no longer explicitly initialized to 0.
- * io.c(maketemp): io no longer explicitly initialized to 0.
- * jobs.c(job_list,last_job,async_job,free_jobs,free_procs): no longer
- explicitly initialized to 0.
- * jobs.c(lookup_msgs[],tt_sigs[]): made array const.
- * mail.c(mplist,mbox,mlastchkd,mmsgs): no longer explicitly
- initialized to 0.
- * vi.c(expand_word,complete_word): buf no longer explicitly
- initialized to 0.
- * vi.c(classify[]): made array const.
-
-Tue Nov 7 11:08:01 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * mkman: new script
- * Makefile.in: use mkman to generate ksh.1
- * ksh.Man,ksh.1: renamed ksh.1 to ksh.Man
- * ksh.Man: changed way sh/ksh option handled.
- (changes based on fix from Michael Haardt).
-
-Tue Sep 19 09:53:53 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(j_stopped): deleted function.
- * jobs.c(j_exit): send SIGCONT, then SIGHUP; send SIGHUP if
- job is in foreground.
- (based on fix from Paul Borman)
-
- * Makefile.in: move .PRECIOUS to after all.
-
-Wed Sep 13 15:00:22 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(dbteste_getopnd): changed tests from TO_STLT/TO_STGT
- to TO_STEQL/TO_STNEQ.
-
-Thu Aug 31 11:54:02 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(exchild): if fork fails, allow user to ^C out of loop.
-
-Tue Aug 29 09:40:37 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(iosetup): don't do globing if not interactive (POSIX).
-
- * exec.c(iosetup): print <& or >& as appropriate in error message.
-
- * tree.h(IONAMEXP): new define.
- * tree.c(pioact): handle IONAMEXP.
- * exec.c(iosetup): set IONAMEXP.
-
- * io.c(savefd): added noclose parameter; changed all calls.
- * exec.c(iosetup): move call to savefd() to after the open();
- re-arranged the dup'ing (failed dups reported).
-
- * main.c(shell): call quitenv() before internal_error().
-
-Sun Aug 13 21:38:44 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(ksh_sigsetjmp,ksh_siglongjmp): new defines; changed
- all uses of setjmp/longjmp to these.
- * configure.in: added checks for sigsetjmp() and _setjmp().
-
-Wed Jul 26 10:08:23 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit): added -p ("maxproc", RLIMIT_NPROC)
- (fix from Simon J. Gerraty).
-
-Thu Jun 29 10:22:51 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.c(promptlen): added spp parameter; changed all calls.
- * vi.c(prompt_skip): new variable.
- * vi.c(edit_reset): set prompt_skip; use prompt_skip in all calls
- to pprompt().
-
-Sat Jun 24 15:55:03 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * IAFA-PACKAGE: new file.
- * Makefile.in: added IAFA-PACKAGE to DISTFILES.
-
-Mon Jun 19 10:04:52 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(initcoms[]): added EXTRA_INITCOMS.
-
-Fri Jun 16 12:33:10 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search_access1): use FILECMP() instead of strcmp().
-
- * sh.h(FIELCHCONV): OS2 version: added isascii().
- * misc.c(gmatch); took unsigned out again for sc and pc.
-
- * main.c(main): don't set PS1 if it's already set; set it if
- we are root and prompt doesn't contain a #.
-
diff --git a/bin/ksh/ChangeLog.0 b/bin/ksh/ChangeLog.0
deleted file mode 100644
index 8f7f7ca394d..00000000000
--- a/bin/ksh/ChangeLog.0
+++ /dev/null
@@ -1,3589 +0,0 @@
-$OpenBSD: ChangeLog.0,v 1.5 2013/11/28 10:33:37 sobrado Exp $
-
-Thu Jun 15 11:02:06 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.3 distribution
-
- * c_ksh.c(c_whence): search keyword table if vflag set.
-
- * tree.h(DOVACHECK): new define.
- * eval.c(expand): check DOVACHECK flag.
- * exec.c(execute): when calling eval(), or in t->evalflags.
- * syn.c(get_command): set evalflags to DOVACHECK instead of DOASNTILDE.
-
-Wed Jun 14 09:27:19 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_cd): two argument format: use current_wd, not path
- when appending elen bytes.
- (fix from Gabor Zahemszky).
-
-Tue Jun 13 15:54:11 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(c_fc): if last not specified and !-l, use first as last.
-
- * eval.c(maybe_expand_tilde): allow CSUBST to end tilde word.
-
- * misc.c(gmatch): made sc and pc unsigned.
-
-Fri Jun 2 11:55:40 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * configure.in: added flock to AC_CHECK_FUNCS call.
- * conf-end.h: undef COMPLEX_HISTORY if !HAVE_FLOCK.
-
-Tue May 30 20:38:47 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(SEEK_SET,SEEK_CUR,SEEK_END): define if not defined.
- * history.c: change L_XTND to SEEK_END.
-
-Tue May 30 17:01:34 NDT 1995 John Rochester (jr@panda.cs.mun.ca)
-
- * shf.c(shf_seek): new function.
- * shf.h(shf_seek): new prototype.
-
-Tue May 30 16:42:41 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_DEV_FD): new test.
- * acconfig.h(HAVE_DEV_FD): new define.
- * configure.in: call KSH_DEV_FD.
-
- * c_test.h(TO_FILAXST): new enum.
- * c_test.c(test_stat,test_eaccess): new functions for /dev/fd/n
- handling.
- * c_test.c(test_evalop): call test_stat() and test_eaccess()
- instead of stat() and eaccess() in most places; added case
- for TO_FILAXST.
-
-Tue May 30 16:06:21 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_MEMMOVE): fixed test so copies overlap.
-
-Sun May 28 11:11:03 NDT 1995 John Rochester (jr@panda.cs.mun.ca)
-
- * sh.h(safe_prompt): new variable.
- * main.c(initsubs): removed PS1.
- * main.c(main): initialize safe_prompt; initialize PS1 from
- safe_prompt.
- * lex.c(set_prompt): create new env while expanding PS1 - if expansion
- fails, use safe_prompt.
-
-Sat May 27 20:59:02 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c: put comments around token after #endif.
-
-Thu May 25 10:10:45 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_test.c(test_eval): case TO_OPTION: negate test if option starts
- with a !, always fail if option doesn't exist.
-
- * sh.h(FNOHUP): new define.
- * misc.c(options[]): "nohup" new option.
- * jobs.c(j_stopped,j_stopped_running): name of j_stopped changed
- to j_stopped_running; changed all calls; check for/warn about
- running jobs if appropriate.
- * jobs.c(j_exit): check for/kill running jobs if appropriate.
- * main.c(shell),c_sh.c(c_exit): un-ifdef JOBS the j_stopped_running()
- call and really_exit initialization/clearing.
-
-Wed May 24 10:06:14 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * options.h(DEFAULT_ENV): new define.
- * main.c(main): if ENV isn't set and DEFAULT_ENV is defined, include
- the later.
- (based on patches from Dave Kinchlea).
-
- * sh.h(LAEXPR): new define.
- * expr.c(evaluate): changed return type to error indicator; added
- rval and error_ok arguments; changed all calls (c_sh.c(c_shift),
- c_ulimit.c(c_ulimit),eval.c(expand),var.c(global,local)).
- * expr.c(v_evaluate): added error_ok argument; changed return value
- to error indicator; call unwind() if !error_ok.
- * expr.c(evalerr): changed errorf() to warningf(); call unwind(LAEXPR).
- * c_test.c(test_eval): merged code for integer operations to have
- two calls to evaluate().
-
- * io.c(warningf): print trailing newline; changed all calls.
-
- * history.c(hist_get): string search: use histptr, not histptr - 1.
-
-Tue May 23 11:07:50 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(GI_NONAME): new define.
- * misc.c(ksh_getopts): honour GI_NONAME flag.
- * c_ksh.c(getopts_reset): set GI_NONAME flag.
-
- * exec.c(comexec): don't change $0 if FPOSIX flag set.
-
- * misc.c(ksh_getopt): don't use GI_DONE to allow parsing past
- bad options.
- * sh.h(GI_DONE): deleted define.
-
- * var.c(unset): added array_ref parameter; unset/free whole array
- if not an array_reference; changed all calls.
- * c_sh.c(c_unset): set array_ref parameter if there is a [ in the name.
-
-Mon May 22 10:33:14 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(hist_init): complex version: initialize hist_source
- (fix from Simon J. Gerraty).
-
-Sat May 20 11:06:15 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.2 distribution
-
- * Makefile.in: added c_test.h to HDRS.
-
-Fri May 19 12:35:18 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.1 distribution
-
- * emacs.c(v_version): ignore typed character if it is a space.
- * emacs.c(x_emacs_keys): bind <ESC>erase-char to delete-back-word
- (was delete-back-char).
- * emacs.c(x_defkeybindings[]): bound list-file to ^X^Y and
- newline-and-next to ^O, as per man page.
-
- * c_ksh.c(c_whence): changed "is a keyword" to "is a reserved word".
-
- * sh.h: changed SVSV_PGRP to SYSV_PGRP.
-
- * vi.c(vi_cmd): uncommented case for ^[ to make it easy to enable
- completion.
-
-Mon May 15 15:25:22 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(c_fc): accept -40 as -- -40.
- * main.c(initcoms[]): take -- out of history alias.
-
- * vi.c(print_expansions): handle trailing slash correctly (don't
- print empty strings).
-
- * c_ksh.c(c_cd): put back ksh_get_wd() call for os/2.
-
- * misc.c(ksh_get_wd): changed buf to b in call to getcwd().
-
-Tue May 9 13:57:31 NDT 1995 Michael Rendell (michael@dragon.cs.mun.ca)
-
- * c_test.h: new file.
- * c_test.c: major code restructuring: common parsing/evaluation
- routines call/called-by three sets of routines: one for
- normal test (and [..]), one for parsing [[ .. ]] one for
- evaluating [[ .. ]].
- * c_test.c(oexpr,aexpr,nexpr,primary,is_op): renamed to test_oexpr,
- test_aexpr, test_nexpr, test_primary, test_isop.
- * c_test.c(eval_unop,eval_binop): combined into new test_eval function.
- * c_test.c(syntax): renamed to ptest_error,
- * c_test.c(ptest_isa,ptest_getopnd,ptest_eval): new functions.
- * syn.c(syntaxerr): added extra arg; changed all calls.
- * syn.c(db_parse,db_oaexpr,db_nexpr,db_primary): deleted.
- * syn.c(dbtestp_isa,dbtestp_getopnd,dbtestp_eval,dbtestp_error): added.
- * syn.c(get_command): case DBRACKET: changed to call new routines.
- * tree.c(ptree): case DBRACKET: changed.
- * exec.c(execute): case DBRACKET: changed.
- * exec.c(dbteste_isa,dbteste_getopnd,dbteste_eval,dbteste_error): added.
-
-Fri May 5 17:10:23 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(compl_file,compl_command): fixed buffer growing code.
-
-Thu May 4 22:44:01 NDT 1995 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * aclocal.m4(KSH_UNISTD_H): include <sys/types.h> and only include
- <dirent.h> if HAVE_DIRENT_H is defined.
-
-Thu May 4 21:19:15 NDT 1995 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * c_ksh.c: include "ksh_stat.h".
- * c_ksh.c(c_cd): don't do physical chdir if S_ISLNK not defined.
-
-Wed May 3 10:08:32 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.2.0 distribution
-
- * misc.c: include <ctype.h>.
- * misc.c(gmatch): added isfile argument; changed all calls.
- * sh.h(FILECHCONV): (os2 version) - use isupper.
- * emacs.c(strmatch): don't increment in FILECHCONV.
-
- * aclocal.m4(KSH_HEADER_SYS_WAIT): new macro.
- * configure.in: use KSH_HEADER_SYS_WAIT instead of AC_HEADER_SYS_WAIT.
- * ksh_wait.h: if POSIX_SYS_WAIT not defined, undef W* macros.
-
-Tue May 2 12:10:39 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c,emacs-gen.sh,emacs-c.in,emacs.out,Makefile.in: changed emacs
- source munging to create emacs.out which is included by emacs.c
- rather then munging emacs.c itself.
-
- * lex.c(pprompt): flush shl_out.
-
- * vi.c(glob_word): if path has *?[, don't add * (was if last component).
-
- * emacs.c(x_search_char): renamed to x_search_char_forw.
- * emacs.c(x_search_char_back): new function; bound to ^[^].
-
- * sh.h: changed SVR3_PGRP to SYSV_PGRP.
- (fixes from Gabor Zahemszky).
-
-Tue May 2 10:09:57 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_cd): deleted OS2 ifdefs.
- * path.c(make_path): use ISRELPATH instead of ISABSPATH
- * path.c(simplify_path): use ISROOTEDPATH instead of ISABSPATH.
- * sh.h(ISABSPATH,ISROOTEDPATH,ISRELPATH): changed/new defines.
-
- * aclocal.m4(AC_LANG_C,AC_LANG_CPLUSPLUS,AC_TRY_RUN): copied
- from autoconf's acgeneral.m4, changed to handle .exe suffix.
- * aclocal.m4(KSH_OS_TYPE): os2 case: set $ac_exe_suffix.
- * configure.in: substitute ac_exe_suffix.
- * Makefile.in: changed references to E to exe_suffix, set to
- ac_exe_suffix
-
- * c_ksh.c(c_cd): ifdef S_ISLNK second use of get_phys_path().
- * edit.c(x_mode): removed ifndef OS2.
- (fixes from Dale DePriest)
- * exec.c(search_access1): add .sh to suffix lists.
- * vi.c(vi_insert,vi_hook): OS2: changes to allow arrow keys work
- in insert mode.
-
-Mon May 1 16:28:44 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * path.c(ksh_get_wd): getcwd() case, return alloc'd buffer, not
- a malloc'd one.
-
-Mon May 1 09:41:56 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4: changed HAVE_SYS_RESOURCES_H to HAVE_SYS_RESOURCE_H.
-
- * aclocal.m4(KSH_OS_TYPE): new macro.
- * aclocal.m4(KSH_OS2_EMX): deleted.
- * configure.in: deleted calls to AC_AIX,AC_MINIX,AC_ISC_POSIX,
- KSH_OS2_EMX; replaced with KSH_OS_TYPE.
- * acconfig.h(OS_ISC,OS_SCO): new undefs.
- * sh.h: changed use of isc386 to OS_ISC
- * edit.c: changed use of M_UNIX to OS_SCO.
-
-Sat Apr 29 21:10:54 NDT 1995 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * vi.c(glob_word): don't append * if there are unescaped globing
- characters in the last component of the filename; some redundant
- code eliminated.
- (based on fix from Michael Jetzer).
-
-Fri Apr 28 16:10:22 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(globit): save/restore actual DIRSEP char - don't use DIRSEP.
-
- * c_ulimit.c: removed ARGS from declaration of ulimit to avoid
- portability problems (osf/1 has ulimit(int,...), os2 has
- ulimit(int,long)).
-
- * tty.c(tty_init): added __SCO__ defines to avoid opening /dev/tty.
-
- * configure.in,aclocal.m4,acconfig.h: added KSH_OS2_EMX test.
- * os2/config.h, os2/configure.cmd, os2/make.sed: updated for new
- autoconf.
-
-Tue Apr 25 12:20:45 NDT 1995 Michael Rendell (michael@dragon.cs.mun.ca)
-
- * configure.in: added sys/param.h test; changed getcwd test to getwd.
- * c_ksh.c(c_pwd): new function.
- * sh.h(current_wd, current_wd_size): new variables.
- * c_ksh.c(c_cd): changed to handle -L, -P.
- * main.c(main): use set_current_wd when setting $PWD;
- instead of changing to / when can't get pwd, print warning;
- deleted pwd alias; don't make PWD and OLDPWD reaedonly.
- * path.c(simplify_path): changed to handle relative paths.
- * path.c(make_path): added phys_path argument to support cd -P.
- * path.c(set_current_wd,get_phys_path,do_phys_path): new functions.
- * misc.c(ksh_get_wd): new function.
- * missing.c(getcwd): deleted.
- * misc.c(options[]),sh.h: added "physical", FPHYSICAL.
-
-Mon Apr 24 14:33:03 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * shf.c(shf_smprintf): new function.
-
- * expand.h(Xsize): new define.
-
-Fri Apr 21 21:22:44 NDT 1995 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * sh.h: changed SIZEOF_long to SIZEOF_LONG.
- * exec.c(scriptexec): if OS2 ifdefed code, changed ISDIRSEP to
- explicit /.
-
-Thu Apr 20 21:18:12 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(hist_get) if n < 0, use n + 1 to account for histbackup().
-
- * lex.c(set_prompt): added source argument; changed all calls;
- changed to do ! and !! substitutions when setting PS1.
- * lex.c(pprompt): ifdef'd out code to deal with ! and !!.
-
- * shf.c(shf_puts): new routine.
- * exec.c(herein), lex.c(getsc_): changed to use shf_puts.
-
-Thu Apr 20 15:50:35 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * siglist.sh: clear traps in subshell to cover for bug in bash 1.4.3
- (based on fix from Fritz Heinrichmeyer).
-
-Wed Apr 19 12:04:59 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(classify): cleaned up table; filled in U_ flag for commands
- that don't modify things.
- * vi.c(first_insert, saved_inslen): new variables.
- * vi.c(vi_reset): don't reset yanklen, inslen, lastcmd, lastac;
- set first_insert, saved_inslen.
- * vi.c(vi_insert): added code to handle first insertion to allow
- redoing commands from last edit.
- (based on fixes from Michael Jetzer).
-
- * vi.c(VVERSION): new state.
- * vi.c(classify): cleared C_ flag for 032 (^Z); set it for ^V.
- * vi.c(nextstate): added VVERSION.
- * vi.c(vi_hook): cases for VVERSION.
- * sh.h(ksh_version): new declaration; removed declaration from
- all other files.
-
- * Makefile.in: removed rcs-ci, rcs-diff targets; put RCSFILES
- into DISTFILES and removed former.
-
- * var.c(newblock): copy argc/argv from previous env if it exists.
-
-Tue Apr 18 23:10:32 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(exchild): report internal error if execute() returns in child.
- * exec.c(execute): case TASYNC: clear exec flag in call to execute().
-
-Tue Apr 18 12:05:23 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_bind): added list argument.
- * c_ksh.c(c_bind): added -l (list) option.
-
- * emacs.c,emacs-c.in: moved emacs.c to emacs-c.in.
- * Makefile: add rule to create emacs.c from emacs-c.in.
- * emacs-gen.sh: new file.
- * emacs.c(struct x_defbindings, x_defbindings[]): new struct/array.
- * emacs.c(struct x_ftab, x_ftab[]): removed x_db_tab, x_db_char;
- initialize x_ftab[] via script.
- * emacs.c(x_init_emacs): changed to load key bindings from
- x_defbindings.
- * emacs.c(Findex): added typedef.
- * emacs.c(x_tab[]): changed to index into x_ftab; changed all refernces.
- * emacs.c(xft_*): changed to XFUNC_*.
- * emacs.c(XF_PREFIX): new flag, used for x_meta1, 2, 3.
- * emacs.c(KPREF,KNULL): deleted (no functional use), changed
- references to KSTD.
- * emacs.c(x_last_command): changed type to Findex.
- * emacs.c(x_emacs): set x_last_command to 0 at start; removed
- same from case KEOL.
-
- * emacs.c(XF_ARG): new flag for struct ftab.
- * emacs.c(x_ftab[]): filled in XF_ARG for appropriate commands.
- * emacs.c(x_arg_defaulted): new variable.
- * emacs.c(x_emacs,x_set_arg): set x_arg_defaulted.
- * emacs.c(x_bword, x_fword,x_fold_case): removed use of x_last_command.
- * emacs.c(x_fold_upper,x_fold_lower,x_fold_capitailze): trivial
- functions that call x_fold_case; changed x_ftab[] to use these
- instead of x_fold_case so arbitrary keys can be bound to them.
- * emacs.c(x_fold_case): changed to assume argument is 'L', 'U', or 'C'.
- * emacs.c(x_del_back,x_del_char,x_prev_histword,x_prev_com,x_next_com,
- x_kill,x_insert): use x_arg and x_arg_defaulted.
- * emacs.c(x_delete): don't change mark point (xmp) if <= cp; added
- force_push argument; changed all calls.
-
-Mon Apr 17 10:30:12 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * emacs.c(x_e_getc): changed to handle macroptr, ungetting characters.
- * emacs.c(x_e_ungetc): new function.
- * emacs.c(x_emacs): let x_e_getc() take care of macroptr.
- * emacs.c(x_version,x_search_hist): use x_e_ungetc() instead of
- macroptr.
- * emacs.c(x_set_arg): handle string of digits.
-
- * emacs.c(x_search_hist): handle deleting chars from search string.
- (fix from Dale DePriest)
- * emacs.c(x_search): added sameline paramater.
- * emacs.c(x_search_list): changes x_zots() to x_e_puts(); make
- deleting in empty pattern break out of search.
-
- * vi.c(domove): case '%': adjust ncursor forward only if matching
- opening bracket (so when cursor is on the B in "(fooBar)", c%
- changes the openbracket as well.
- * vi.c(vi_cmd): case y/d/c: special case to move end point ahead
- if move cmd is % and match was to the left of the cursor.
-
-Thu Apr 13 10:34:26 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(complete_word): no bell on ambiguous matches (user can
- tell its ambiguous 'cause there is not space or slash appended)
-
- * configure.in,aclocal.m4: added KSH_MEMMOVE, KSH_MEMSET tests
- to fix problems with compiler builtins.
-
- * misc.c(blocking_read, reset_nonblock) new routines.
- * sh.h: deleted O_NONBLOCK ifdefs/defines.
- * main.c(main),lex.c(getsc_),edit.c(x_getc),shf.c(shf_fillbuf):
- use reset_nonblock().
- (fix based on code from John Rochester)
-
-Tue Apr 11 14:36:22 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(c_fc): mostly POSIXized.
- * history.c(hist_execute,hist_get_newest,hist_get_oldest): new routines.
- * history.c(hist_get,histget): changed histget to hist_get.
- * history.c(hist_replace,histrpl): changed histrpl to hist_replace.
- * lex.h(SHIST,histpush): deleted; deleted all references.
- * history.c(histget): add approx check for history that hasn't
- happened yet.
-
- * misc.c(getn): allow leading plus (eg, +3).
-
- * main.c(initcoms[]): defined history as "fc -l --".
-
- * conf-end.h(JOBS): don't define if no posix or bsd process groups
- (was if SIGCONT not defined).
-
-Mon Apr 10 14:51:54 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec),c_ksh.c(c_getopts),c_sh.c(c_read): use FEXPORT flag.
-
- * ksh_wait.h: changed to work with autoconf 2.x AC_HEADER_SYS_WAIT -
- if sys/wait.h uses union wait, don't include it.
-
-Thu Apr 6 12:19:58 NDT 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tty.c(tty_init): print warning if open of /dev/tty fails.
-
-Sat Mar 4 01:20:03 NST 1995 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * io.c(maketemp): create valid dos filenames.
-
-Mon Feb 27 11:04:32 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * Changed from autoconf 1.x to autoconf 2.x.
- * acconfig.h: included old config.h.top and config.h.bot.
- * config.h.top, config.h.bot: deleted; deleted all references.
- * install.sh: changed to install-sh; changed all references.
- * Makefile.in: use @CPPFLAGS@, @CFLAGS@, @LDFLAGS@;
- use @configure_input@; remove config.log and config.cache in
- distclean; use @prefix@ and @exec_prefix@.
- * ksh_dir.h: changed to use new autoconf defines; changed NLENGTH()
- to NAMLEN(); changed all references.
-
-Mon Feb 27 9:31:02 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(ISABSPATH): new macro.
- * var.c(setspec): use ISABSPATH() when setting tmpdir.
-
- * emacs.c(compl_file): added OS2 ifdefs.
- * exec.c(scriptexec): OS2: ignore path specified in #! scripts.
- * sh.h(ksh_dupbase): OS2: now same as unix.
- * trap.c(sigtraps[],inittraps): remove OS2 defines.
- * trap.c(alarm_catcher): V7_SIGNALS: use sig, not i.
- (Fixes from Dale DePriest)
-
-Mon Feb 27 10:06:00 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * configure.in: test for resource.h.
- * c_ulimit.c: include ksh_time.h instead of sys/time.h; use
- HAVE_SYS_RESOURCE_H when including sys/resource.h
- (was HAVE_SETRLIMIT).
- * aclocal.m4(KSH_RLIM_T): check sys/resources.h for rlim_t.
-
-Fri Feb 24 17:30:16 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(struct macro_state, macro): new structure/variable.
- * vi.c(vi_hook, vi_cmd): use macro state info to allow nested macros,
- detect recursive macros.
-
-Wed Feb 22 21:20:43 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_whence): "an export" instead of "a export".
- * vi.c(classify[]): added @<char>.
- * vi.c(vi_hook,vi_cmd): added support for @<char> (macros).
- (fixes from Frank Edwards).
-
-Sun Feb 19 11:57:20 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec): case CFUNC: use cp (not tp->name) when checking if
- an autoloaded function was defined; save/restore kshname before/after
- function call.
- * var.c(popblock): don't set kshname to e->loc->argv[0] - it isn't
- always right.
-
-Fri Feb 10 12:36:16 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(parse_args): check OF_SET when building set_opts (was
- checking OF_CMDLINE).
-
- * conf-end.h(JOBS): don't define if SIGCONT not defined.
-
- * sh.h(FLOGIN) new enum.
- * misc.c(options[],parse_args): added login option; set FLOGIN if
- name in argv[0] starts with -.
- * main.c(main): use FLOGIN flag; changed the way OS2 code looks
- for profile.
-
-Wed Feb 1 09:55:40 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(varsub): in FUNSET test, don't always fail # and %
- substitutions (test for unset variable).
-
-Wed Jan 25 09:22:15 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(MIN_COLS): new define.
- * sh.h(MIN_EDIT_SPACE): new define.
- * vi.c(prompt_trunc): new variable.
- * vi.c(edit_resize): calculate how much of prompt to truncate.
- * lex.c(pprompt): added new argument; changed all calls.
- * lex.c(yylex),emacs.c(x_emacs),vi.c(x_vi): move pprompt() inside
- x_emacs(), x_vi() or just before read in yylex().
-
-Tue Jan 24 12:35:18 NST 1995 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(parse_args): changed arrayname variable to array.
- * var.c(basename): changed name of function to arrayname();
- changed all references (Based on fix from Dan Quinlan).
-
-Fri Dec 30 10:34:50 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * ksh.1: modifications to generate two man pages: sh and ksh
- (Fixes from Michael Harrdt).
-
-Wed Dec 28 16:55:13 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(complete_word): don't check for globing characters.
-
-Wed Dec 28 10:32:18 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search_access1): don't use ret variable; move "." to end
- of xsuffixes/rsuffixes.
- * os2.c(_execve): OS2: fixed typo.
- * sh.h(FILENCMP): changed stricmp to strnicmp.
- * os2/config.h: added define for rlim_t.
- * os2/make.sed: changed > null to > nul.
- * Makefile.in(dist): generate os2/makefile after running Dist-fixup.
- (Fixes from Dale DePriest)
-
-Thu Dec 22 15:06:06 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.1.3 distribution
-
- * *.c: removed RCSids.
-
-Wed Dec 21 11:55:01 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * table.h(struct tbl): changed array field to union of array/fname;
- changed all references.
- * c_ksh.c(c_whence): print undefined function path.
- * exec.c(comexec): do autoloading of undefined functions; print
- error if function can't be found.
- * exec.c(findcom): fill in tp->u.fname for undefined functions;
- search FPATH if search of PATH fails.
- * table.h(FC_NOAUTOLOAD): deleted define; removed all references.
-
-Tue Dec 20 14:16:16 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(herein): check if name is null.
- * lex.h(HEREDELIM,SHEREDELIM,SHEREDQUOTE): new defines.
- * lex.c(yylex): added code for HEREDELIM.
- * syn.c(synio): use HEREDELIM.
- * lex.c(readhere): changed to allow \n in here-delimiter.
-
- * tree.c(tputS): quote ", ` and $ inside "-quotes.
- * tree.c(ptree,pioact): made static.
- * tree.c(ptree,fptreef,vfptreef): added indent argument; changed to
- use indent argument; changed all calls.
- * tree.h(struct ioword): added delim field.
- * tree.c(iocopy),syn.c(synio,syntaxerr): deal with delim field.
- * tree.c(pioact): print contents of here documents.
-
- * c_ksh.c(c_typeset): typeset -f foo: set exit code to 1 if function
- not found.
-
-Mon Dec 19 15:14:02 NST 1994 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * history.c(histinit): increment line number for each history line.
-
- * exec.c(iosetup): OS2: if open /dev/null fails, try nul instead.
- * Makefile.in(debugtools,install,uninstall): make check-pgrp last;
- use $E.
- * eval.c(eval,expand): OS2: added DODIRSWP code.
- * main.c(main): OS2: only include $HOME/kshrc.ksh if interactive.
- * sh.h(FILENCMP,FILECMP,FILECHCONV): new defines.
- * misc.c(gmatch),vi.c(grabsearch,complete_word),emacs.c(compl_file):
- OS2: case insensitive compares.
- (fixes from Dale DePriest).
-
-Mon Dec 19 09:54:42 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd): make ~ honour argcnt (fix from Troy Bollinger).
-
- * vi.c(complete_word): don't add trailing / if there is already one.
- * vi.c(glob_word): return rval, not 0.
-
-Thu Dec 15 11:06:01 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd): call complete_word() with argument of 1 not 0.
-
-Tue Dec 13 12:07:50 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(histget): made static; added approx argument; changed
- all calls.
-
-Tue Dec 13 10:58:14 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * Makefile.in(mandir): use $(manext), not 1 (fix from Mike Long).
-
-Mon Dec 12 20:55:53 NST 1994 John Rochester (jr@panda.cs.mun.ca)
-
- * tree.c(ptree): print TELIF part of if statements
-
-Fri Dec 9 15:21:36 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * trap.c(inittraps): OS2: don't trap SIGTERM (temporary fix).
-
- * exec.c(search_access1): OS2: fixed to check for valid suffix
- and change mode from X_OK to R_OK if appropriate.
-
- * edit.c: include <sys/stream.h>, <sys/ptem.h> for SCO unix
- (fix from William Bader).
-
- * c_ulimit.c(c_ulimit): changed type of val from long to rlim_t
- (fix from Thomas Gellekum and J.T.Conklin).
- * aclocal.m4(KSH_RLIM_T): new test for rlim_t.
- * configure.in: use KSH_RLIM_T.
- * acconfig.h: added rlim_t.
-
-Thu Dec 8 12:20:25 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c(evalexpr): changed div-by-zero test to only derefernce vr
- if operation is a divide.
-
-Mon Dec 5 14:42:52 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(search): OS2: typo - changed namlen to namelen.
- * exec.c(search_access): OS2: check execute bit explicitly.
- * main.c(main): OS2: don't include ./profile.ksh.
- * options.h(DEFAULT_PATH): OS2: added /os2 to path.
- * sh.h(ksh_getdup): OS2: define to getdup(); prototype for getdup().
- * Makefile.in(dist): create os2 Makefile based on distribution
- Makefile.in.
-
-Mon Dec 5 12:17:14 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.1.2 distribution
-
- * eval.c(globit): when searching directory, re-calculate end of
- string based on prefix length.
-
-Fri Dec 2 11:07:48 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(wordlist): if token isn't 'in', don't reject ;.
-
- * eval.c(expand): leading non-white-space IFS chars no cause initial
- empty field.
-
-Thu Dec 1 12:04:00 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.1.1 distribution
-
-Thu Dec 1 10:50:38 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(TF_FATAL,fatal_trap): new define,variable.
- * trap.c(inittraps,trapsig,fatal_trap_check,trap_pending,runtrap,
- settrap): use TF_FATAL, fatal_trap.
- * trap.c(runtraps): changed argument from bool to TF_* flag; changed
- all calls.
- * jobs.c(j_waitj): check fatal_trap flag.
-
-Wed Nov 30 11:20:03 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * conf-end.h: new file.
- * config.h.bot: moved guts to conf-end.h.
-
- * emacs.c(struct x_ftab): changed type of xf_db_char from char to int.
- * emacs.c(x_emacs): changed type of c from char to int.
- * emacs.c(X_NTAB): new define.
- * emacs.c(x_bind,x_init_eamcs): new X_NTAB, X_TABSZ.
- * emacs.c(x_prefix3, x_meta3): ifdef OS2.
- * emacs.c(x_bind): ifdef OS2; mask *a1 with CHARMASK.
-
- * exec.c(search_access): new function.
- * exec.c(search): use search_access() instead of duplicating test.
- * exec.c(search,search_access1): ifdef OS2.
-
- * Makefile.in(OS2FILES): new macro.
- * Makefile.in(dist): add OS2FILES to distribution.
-
- * options.h(DEFAULT_PATH): ifdef OS2.
- * edit.c(x_getc,x_mode): ifdef OS2.
- * path.c(make_path): ifdef OS2.
-
-Tue Nov 29 16:51:35 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(EXECSHELL,EXECSHELL_STR): ifdef OS2.
- * exec.c(scriptexec): use EXECSHELL_STR (was "EXECSHELL").
-
- * trap.c(sigtraps[]): ifdef OS2.
- * lex.c(yylex): ifdef OS2.
- * misc.c(change_flag): ifdef OS2.
- * history.c(HISTFILE): ifdef OS2.
- * eval.c(homedir): ifdef OS2.
- * c_sh.c(shbuiltins[]): ifdef OS2.
-
- * sh.h(ksh_execve,ksh_dupbase): new defines.
-
- * jobs.c(exchild): ifdef use of nice.
-
-Tue Nov 29 12:32:26 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(globit,copy_non_glob): changed to pass/use &xp it can change
- (memory can be re-allocated).
-
- * ksh_dir.h(NLENGTH): new macro.
- * eval.c(globit): use NLENGTH macro.
-
- * alloc.c(aresize): removed redundant np and optr variables.
-
-Mon Nov 28 14:55:49 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * config.h.bot(HISTORY): new define.
- * lex.c(getsc_): ifdef HISTORY.
- * history.c: ifdef HISTORY (dummy histsave, init_histvec and
- hist_finish routines).
- * c_ksh.c(kshbuiltins): c_fc: ifdef KSH
- * lex.h(HISTORY): changed to HISTORYSIZE; changed all references.
-
- * options.h(KSH): new define.
- * config.h.bot: changed to deal with KSH define.
- * exec.c(do_select,pr_menu): ifdef KSH.
- * exec.c(execute): case TSELECT: ifdef KSH.
- * c_ksh.c(c_whence,c_command,kshbuiltins[]): ifdef KSH.
- * main.c(initcoms[],main): ifdef some aliases, SECONDS/RANDOM/TMOUT.
- * syn.c(get_command): case TDBRACKET: ifdef KSH.
- * syn.c(db_parse,db_aoexpr,db_nexpr,dp_primary): ifdef KSH.
- * syn.c(tokentab[]): "select", "[[" ifdef KSH.
- * var.c(special,getspec,setspec,unsetspec): ifdef KSH.
- * ksh.1: ifdef KSH; misc fixups.
- (changes mostly from Michael Haardt).
-
-Mon Nov 28 14:27:34 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(skip_varname,special,global,local), table.c(hash,tsearch,
- tenter): made argument and return value const.
-
- * main.c(version_param[]): new variable.
- * main.c(initcoms[],main): use version_param instead of "KSH_VERSION".
-
- * history.c(histsave): EASY_HISTORY: changed to take same arguments
- as COMPLEX_HISTORY histsave(); changed all calls, removing
- unneeded ifdefs.
-
- * vi.c(x_vi), emacs.c(x_emacs): changed unwind() call from LINTR
- to LSHELL so newline isn't printed twice - also lets runtrap()
- set the exit code.
-
- * vi.c(vi_cmd): increment source line if saving to history.
-
-Fri Nov 25 14:43:57 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(get_command): don't generate a syntax error if EOF is read.
-
- * configure.in: add LDSTATIC to LDFALGS if the former is set.
-
- * history.c(hist_skip_back): start at the end of the buffer, not
- one past the end (fix from Simon J. Gerraty).
-
-Thu Nov 24 09:53:49 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * syn.c(get_command,dogroup): allow { ...;} to be used instead
- of do ...;done in for/select loops.
-
-Wed Nov 23 09:09:43 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.1.0 distribution
-
- * var.c(setspec): set seconds to current time - assigned value,
- not just current time.
-
- * emacs.c(x_copy_arg): deleted ifdef'd out code (x_prev_histword()
- does what it was supposed to do).
-
- * emacs.c(compl_command): don't call list_stash() twice (happened
- if type == 2 and multi set).
-
-Tue Nov 22 10:26:13 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_test.c(eval_unop): don't assume S_ISBLK, S_ISCHR, S_ISUID,
- S_ISGID are defined.
-
- * path.c(make_path): avoid addeding extra /'s in paths; avoid
- infinate loop if result buffer not big enough.
-
- * main.c(main): setting PWD: avoid calling setstr() with the
- current value of PWD.
-
- * var.c(typeset): set free_me to 0 if t is integer.
-
- * emacs.c(x_search_hist): added overflow checking to fixed sized
- buffers.
- * emacs.c(compl_file,compl_command): removed fixed sized buffers.
-
- * vi.c(x_vi), emacs.c(x_emacs): on interrupt, unwind instead of
- calling runtraps().
-
- * vi.c(vi_cmd): added 'g' command to goto the most recent command.
-
- * c_sh.c(c_read), c_ksh.c(c_print): always increment source->line when
- saving history.
-
-Mon Nov 21 10:45:34 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(do_selectargs): removed use of pmenu variable (redundant)
- use isspace() instead of IFS chars; include <ctype.h>.
-
- * aclocal.m4(KSH_TERM_CHECK): do not allow HAVE_TERMIOS_H check to
- succeed on ultrix (avoid type-ahead loss).
-
- * emacs.c(x_fword): cahnged loop to skip non word chars, then word
- chars (was the opposite).
-
- * main.c(shell): after error/interrupt/etc, reset an EOF if ignoreeof
- option is set.
-
- * vi.c(classify[]): changed space (040) from C_|U_ to M_
- (got broken in 5.0.10).
-
- * ksh_wait.h(ksh_waitpid): new define.
- * jobs.c(waitpid): moved define to ksh_wait.h; changed use of
- waitpid() to ksh_waitpid().
-
- * history.c(hist_skip_back),io.c(maketemp): use procpid instead of
- getpid().
-
-Fri Nov 18 16:08:09 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(FSHOW8): inverted meaning: now if set, do the M- stuff
- (done so 8 bit char sets work by default).
-
- * main.c(main): set exstat to 127 if command file can't be opened.
-
- * main.c(main): use argv[0] instead of kshname when deciding
- whether to include profiles.
-
-Fri Nov 18 14:25:11 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.10.1 distribution
-
- * tty.h: deleted KSH_VDISABLE; moved _POSIX_VDISABLE stuff to edit.c.
- * edit.c(x_init): calculate value for vdisable_c.
- * edit.c(x_mode): use vdisable_c instead of KSH_VDISABLE.
-
-Thu Nov 17 12:09:13 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.10 distribution
-
- * lex.c(getsc_),edit.c(x_getc): call runtraps(FALSE) if read is
- interrupted.
- * vi.c(x_vi),emacs.c(x_emacs): call runtraps(FALSE) (was TRUE).
-
-Wed Nov 16 09:48:54 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(execute,scriptexec): call __setostype(0)/(1) before/after
- execve() on ISC machines.
-
- * trap.c(trap_pending): new fuction.
- * jobs.c(j_waitj): use trap_pending(); return -<signal-number> if
- interrupted.
- * jobs.c(waitfor): added sigp argument; changed all calls.
- * c_sh.c(c_wait): use signal number set by waitfor() to set exit status.
-
- * shf.c(SHF_INTERRUPT): no longer calls intrcheck() - now sets
- error flag and returns EOF.
- * c_sh.c(c_read): re-arranged to have single shf_getc() call; if read
- interrupted and signal is fatal (fatal_trap_check()), make read
- return with appropriate exit code.
- * trap.c(fatal_trap_check()): new function.
- * trap.c(inittraps()): catch and cleanup on SIGHUP; don't force the
- setting of SIGINT,SIGQUIT,SIGTERM,SIGHUP.
-
- * table.c(tenter): changed to use strlen()/memcpy() instead of loops.
-
- * var.c(initvar): new function.
- * main.c(main): call initvar().
- * var.c(special): changed to use hash table for lookup.
-
- * main.c(main),syn.c(initkeywords): moved table initialization
- from main() to initkeywords().
-
-Tue Nov 15 10:01:20 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(copy_non_glob): new routine.
- * eval.c(globit): changed to use copy_non_glob() instead of strchr().
-
- * misc.c(cclass): if [..] pattern has no closing ], do literal
- compare of character with [ (used to always fail).
-
- * eval.c(globit): handle symbolic links in the check code.
-
- * configure.in: added check for lstat().
- * ksh_stat.h: defined lstat to be stat if lstat is not available.
-
- * exec.c(search): return Xclose() instead of Xstring().
-
-Mon Nov 14 16:28:41 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * ksh_times.h: changed BROKEN_TIMES to TIMES_BROKEN.
-
- * c_test.c(syntax): removed \n from error messages.
-
- * eval.c(glob,globit): changed to use dynamicly allocated string
- instead of a fixed sized buffer.
-
-Thu Nov 10 10:47:55 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * history.c(sethistsize): don't set size if new size is < 0; fixed
- offset calculation so histptr is not way beyond the end of array;
- if history is shrinking, save newest history back.
-
- * vi.c(vi_hook): case VSEARCH: call restore_cbuf() after \n or \r.
-
- * main.c(quitenv): call restfd() even if fd < 0 to re-close fd.
-
- * exec.c(execute): commented out code that set savefd[0/1] to -1
- if input/output was a pipeline.
-
- * missing.c(dup2_fixup): deleted function.
- * sh.h(dup2->dup2_fixup): deleted define.
- * io.c(ksh_dup2): new function; changed all dup2() calls to ksh_dup2().
-
-Wed Nov 9 11:11:31 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * edit.h(struct edchars): added eof field.
- * edit.c(x_init): initialize eof fields.
- * vi.c(x_vi): changed ^D to edchars.eof.
- * vi.c(vi_cmd): make I/cc/S skip blanks.
-
- * history.c(histsave): EASY_HISTORY: use memmove() to copy pointers
- back one.
-
- * vi.c(vi_cmd): make G act the same as at&t ksh.
- * vi.c(ismeta,O_): deleted macros; removed all references to O_.
- * vi.c(classify[]): add ^X and ^F to command mode.
-
-Tue Nov 8 11:15:01 NST 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * main.c(initsubs[]): don't set SHELL.
-
- * vi.c(vi_cmd): added v command (start up vi).
- * vi.c(vi_hook): added case for vi_cmd() returning 2.
- * vi.c(grabsearch): set anchored flag if pattern starts with ^.
- (based on fixes from Michael Jetzer).
-
- * history.c(findhist): added anchored argument; changed all calls.
- * history.c(histget): start searching from histptr-1; changed to
- call findhist() to do searching.
- * history.c(c_fc): changed to print multiline commands correctly.
- (based on fixes from Michael Jetzer).
-
-Fri Nov 4 10:30:14 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex): when pushing alias sources, allocate from existing
- source's area.
-
- * lex.c(struct source): added areap field.
- * lex.c(pushs): added area argument; changed all calls.
- * history.c(histrpl): changed constant sized hline[] to expandable
- string; removed hline/hsize parameters; changed all calls; put
- newline at end of string.
- * history.c(c_fc): changed to use dynamically sized buffer when reading
- commands; strip nulls after read.
- * history.c(histbackup): made static.
-
- * trap.c(block_pipe): if handler is SIG_DFL, change it to SIG_IGN.
-
- * lex.c(readhere): changed to allow eof after end-of-file marker
- (bug report from Andrew Moore).
-
-Thu Nov 3 09:09:39 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(coproc_read_close,coproc_write_close): new functions.
- * c_sh.c(c_read): call coproc_read_close() when eof is read.
- * c_ksh.c(c_print): set PO_COPROC if fd is coproc.write; call
- coproc_write_close() if write fails due to EPIPE.
- * exec.c(iosetup): call coproc_write_close() after #>&p.
- * sh.h(EF_COPROC_DUPED): deleted.
- * sh.h(struct coproc): deleted isopen field.
- * io.c(cleanup_coproc): do not use isopen field.
- * c_sh.c(c_exec): deleted EF_COPROC_DUPED code.
- * exec.c(TCOPROC): don't set isopen; don't start new coprocess if
- old job exists and write pipe hasn't been closed.
-
- * misc.c(str_zcpy): new function.
- * lex.c(getsc_): made line[] buffer local/static; use str_zcpy()
- to fill line[].
- * history.c(c_fc): use local hline buffer instead of global line[];
- use str_zcpy() to fill hline[];
- * history.c(histrpl): added hline and hsize parameters; changed all
- calls.
- * history.c(hist_init): EASY_HISTORY: use local hilne buffer instead
- of global line[].
- * lex.h(line[]): deleted.
- * syn.c(compile): do not set s->str to null for STTY and SHIST.
-
-Wed Nov 2 11:48:36 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(getsc_): case SDDPAREN: set csstate before going to
- SPAREN state.
-
- * Makefile.in(RCSFILES): removed POSIX from list (now covered in
- man page).
-
-Tue Nov 1 09:27:46 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(comsub): save/restore source before/after compile().
-
- * c_ulimit.c(c_ulimit): allow value to be arithmetic expression
- (as per Korn book).
-
- * c_sh.c(c_read): call set_prompt() before printing prompt.
-
- * expr.c(v_evaluate): treat an empty expression as 0.
-
-Mon Oct 31 09:23:57 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(grabhist,grabsearch): check that history line doesn't overflow
- edit buffer.
-
- * history.c(hist_finish): (EASY_HISTORY) changed for-loop condition to
- prevent passing the end of history.
-
- * eval.c(expand): when stuffing MAGIC, cast c to char.
-
- * misc.c(strip_nuls): new function.
- * lex.c(getsc_): case STTY/SFILE/SSTDIN: call strip_nuls() after
- reading commands.
-
- * edit.c(set_editmode): reversed strstr() arguments - check for
- vi/emacs in $EDITOR/$VISUAL string.
-
- * syn.c(yyparse): allow EOF as well as newline after a command.
- * lex.c(getsc_): case SSTRING: don't fake newline
-
-Sun Oct 30 10:55:20 NST 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_print): echo: check for -n, -e and -E options.
-
- * exec.c(comexec): don't allow command -p if restricted.
-
-Fri Oct 28 10:24:48 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(typeset): in fake_assign code, was freeing t->val.s + t->type
- instead of t->val.s - now uses free_me variable instead of aflag.
-
- * Makefile.in(depend): change blank lines in depend output to sh.h
- so dumb make(1)s won't die.
-
- * mail.c: changed checking to use atime/mtime instead of size; changed
- struct mbox mb_size field to mb_mtime, changed all references.
-
- * main.c(shell): do not execute (or set the exit status for) a null
- command.
- * lex.c(readhere): read the newline after the eof marker.
-
-Wed Oct 26 09:11:08 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(globit): added FMARKDIRS support.
-
- * emacs.c(x_ftab[]): added entries for ansi arrow key bindings.
-
- * exec.c(execute,iosetup): move tracing of redirections from
- execute() to iosetup() so expanded name can be printed.
-
- * exec.c(execute): case TDBRACKET: read was being called instead of
- test.
-
- * ksh_stat.h(S_ISCDF): new define.
- * c_test.c: added -H for context dependent files (HP bizarreness).
-
- * main.c(initcoms[]): added alias local=typeset.
-
- * Makefile.in(stamp-h,config.status): added double quotes CONFIG_FILES
- and LDSTATIC assignments for dmake.
- * aclocal.m4(KSH_SYS_SIGLIST): do something with sys_siglist so it
- isn't optimized away.
- * aclocal.m4(KSH_CLOCK_T): do extra check for clock_t in sys/times.h.
- * acconfig.h(CLOCK_T_IN_SYS_TIMES_H): new define.
- * sh.h(SIGNALS): use _SIGMAX if NSIG, _MINIX not defined.
- (fixes from Brian Campbell <brianc@qnx.com>)
-
- * emacs.c(x_transpose): changed behavior if FGMACS flag set
- (fix from <guy@netapp.com>).
-
-Tue Oct 25 17:11:58 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * tty.c(KSH_VDISABLE): new define.
- * edit.c(x_init): use KSH_VDISABLE.
-
-Tue Oct 25 09:55:09 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.9 distribution
-
- * c_ulimit.c(c_ulimit): changed SOFT, HARD from enum to defines
- to avoid problems with ancient compilers.
-
- * vi.c(CHAR_LEN,char_len): changed macro to function; added FVISHOW8
- support.
- * misc.c(options[]), sh.h(FVISHOW8): added FVISHOW8 option.
-
-Sun Oct 23 11:02:26 NDT 1994 Michael Rendell (michael@maple.cs.mun.ca)
-
- * main.c(shell): keep unwinding if LINTR and not interactive.
-
- * lex.c(yylex): do redumentery quote parsing for $(..).
-
-Thu Oct 20 11:02:27 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(execute): case TSELECT: set rv to 1 if eof is read.
- * exec.c(execute): case TFOR/TSELECT/TWHILE/TUNTIL: set rv to 0 before
- entering loop, but after setjmp incase of a continue; rv to 0
- after a break.
- * exec.c(execute): case TFOR/TSELECT: do readonly check before
- assigning value.
- * c_ksh.c(c_getopts): do readonly check before assigning value.
-
- * misc.c(print_columns),c_ksh.c(kill_fmt_entry),
- misc.c(options_fmt_entry),exec.c(select_fmt_entry): new functions.
- * c_ksh.c(c_kill),misc.c(printoptions),exec.c(pr_menu): use
- print_columns() call a call-back routine to format information
- in columns.
-
-Wed Oct 19 10:26:25 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * misc.c(cclass): require MAGIC before - and ].
- * eval.c(expand): prefix - and ] with MAGIC if appropriate.
-
- * var.c(typeset): don't allow export flag of readonly variables
- to be cleared.
-
- * eval.c(globit): added call to intrcheck().
-
-Mon Oct 17 11:48:05 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * lex.c(readhere): check for and report write errors.
-
-Sun Oct 16 16:10:59 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_ksh.c(c_cd): don't allow cd if restricted.
- * exec.c(comexec): if restricted and command contains /, print error.
- * exec.c(ioestup): if restricted, don't allow file creations.
- * main.c(is_restricted): new function.
- * main.c(main): save and reset FRESTRICTED during .profile/ENV reading;
- set FRESTRICTED if argv[0] or SHELL refers to restricted shell;
- make PATH, ENV, SHELL readonly if restricted.
- * var.c(typeset): check for restricted shell and PATH/ENV/SHELL.
-
-Thu Oct 13 21:01:14 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(shell): only call j_notify() for interactive shells.
-
- * c_sh.c(c_read): check if variable is readonly before assigning
- value.
-
-Wed Oct 12 14:08:46 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(COPROC),tree.h(TCOPROC,XCOPROC): added defines.
- * lex.c(yylex): return COPROC for |& token.
- * syn.c(tokentab): added COPROC.
- * syn.c(c_list): accept COPROC, create TCOPROC node.
- * tree.c(ptree): added case for TCOPROC.
- * exec.c(execute): added case for TCOPROC.
- * io.c(check_fd,get_coproc_fd): new functions.
- * c_sh.c(c_read),c_ksh.c(c_print): changed to use check_fd();
- added -p option; for c_print() ensure SIGPIPE doesn't kill shell.
- * exec.c(iosetup): changed to use check_fd() for IODUP; when
- checking fore close, require exactly the string '-', not any
- string starting with '-'; added strerror() to error message.
- * jobs.c(exchild): don't open /dev/null if XCOPROC; close
- coproc.read/write/childread in child if XCOPROC; don't pass
- XCOPROC flag on to execute(); set coproc.job to job in parent
- if XCOPROC.
- * jobs.c(check_job): clear coproc.job if said job dies.
- * trap.c(block_pipe,restore_pipe): new functions.
- * sh.h(struct coproc, EF_COPROC_DUPED): new structure and define.
- * c_sh.c(c_exec): if EF_COPROC_DUPED set, clean up co-process stuff.
-
- * main.c(cleanup_parents_env): new function.
- * jobs.c(exchild): call cleanup_parents_env() after fork().
-
- * tree.h(IORDUP): new define.
- * lex.c(yylex): changed redirection parsing to not accept & only after
- a single < or >; set IORDUP flag for x<&y; fixed <</<>/>> check to
- not allow >< (again).
- * tree.c(pioact): use IORDUP flag to print <& or >&.
-
- * jobs.c(exchild): set JF_ORIGFG flag if job started in foreground.
- * jobs.c(j_waitj): don't get default tty settings if JF_ORIGFG not
- set.
-
- * misc.c(parse_args): treat -A as a flag that is handled later
- (used to require argument); do array setting after argument
- sorting.
- * var.c(set_array): changed second argument from 0/1 flag to
- -1/1 flag; changed all calls.
-
-Thu Oct 6 11:55:27 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * table.c(tinit): added initial table size argument; call texpand
- if size isn't 0; changed all calls.
- * main.c(main): try to make sure table size is big enough for
- builtins and keywords (cut down on amount of re-hashing).
-
- * eval.c(expand): added next and prev fields to struct SubType;
- removed fixed length subtype array, changed code to allocate
- SubTypes as needed.
-
-Wed Oct 5 09:25:06 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * main.c(main): moved initio() above inittraps() as later can print
- stuff.
-
- * table.h(IMPORT): new flag.
- * var.c(typeset): if IMPORT flag set, don't allow array references,
- insist on assignment.
- * var.c(import): deleted function.
- * main.c(main): use typeset() instead of import().
-
- * sh.h: include expand.h.
- * expand.h(Xnleft): new define.
- * expand.h(struct XString, Xinit): added areap field; added area
- argument to Xinit; changed all calls.
- * lex.h(struct source): added xs field.
- * shf.c(shf_gets,shf_getse): changed name fromshf_gets to shf_getse;
- return pointer to null byte instead of start of buffer.
- * lex.c(pushs): if type is SFILE or SSTDIN, initialize s->xs.
- * lex.c(getsc_): case SFILE/SSTDIN: use s->xs instead of fixed
- size line buffer.
-
- * syn.c(compile): don't change s->str if SFILE.
- * main.c(main): call pushs() explicitly for each of SSTRING,
- SFILE, SSTDIN, STTY.
-
- * aclocal.m4(KSH_GCC_FUNC_ATTR): changed GCC_FUNC_ATTR to
- HAVE_GCC_FUNC_ATTR.
- * config.h.bot: changed use of GCC_FUNC_ATTR; deleted
- GCC_FA_NORETURN, GCC_FA_CONST, GCC_FA_FORMAT defines, created
- generic GCC_FUNC_ATTR define; changed all uses of GCC_FA_*.
-
- * main.c(main): set s->file for SSTDIN input.
-
- * main.c(shell): pass LERROR on if not interactive.
-
- * expand.h(Xcheck,XcheckN): added XcheckN define, changed Xcheck
- to use XcheckN; made XcheckN call Xcheck_grow_() do do any real work
- (to cut down on code size).
- * misc.c(Xcheck_grow_): new function.
- * exec.c(search),c_sh.c(c_read): changed to use Xstring() routines
- (used to use the fixed size buffer line[]).
- * exec.c(findcom): avoid re-saving search() result in ATEMP.
-
-Tue Oct 4 15:32:37 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * jobs.c(j_jobs): return int value indicating error/ok; changed
- all calls.
-
- * misc.c(getn): added int * argument to hold result; changed
- return value to indicate success/failure; changed all calls.
- * misc.c(bi_getn): new function.
- * misc.c(getn_): deleted function.
-
- * io.c(internal_error,error_prefix,warningf): new functions.
- * *.c: changed errorf() calls reporting internal errors to
- use internal_error() function; changed many shellf()s to
- warningf().
- * io.c(errorf),lex.c(yyerror): changed to use error_prefix().
-
- * alloc.c(aprint): ifdef'd out.
- * tree.c(phash): deleted function.
-
-Mon Oct 3 15:08:24 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * sh.h(kshname): new variable
- * main.c(main): changed name to kshname, deleted local variable.
- * exec.c(comsub): update kshname.
- * var.c(popblock): restore kshname.
- * io.c(errorf,bi_errorf): print shell name before error message.
-
- * c_ksh.c(c_cd): print new directory on stdout, not stderr.
-
- * sh.h(GI_MINUS): new define.
- * misc.c(ksh_getopts): changed so once - or + introduces option,
- all options must start with same character.
-
- * sh.h(builtin_argv0): new variable.
- * exec.c(call_builtin): set/clear builtin_argv0, builtin_flag; changed
- argument to a struct tbl *; changed all calls.
- * io.c(bi_errorf): new function.
- * c_ksh.c,c_sh.c,c_ulimit.c,emacs.c,history.c,jobs.c: changed all uses
- of errorf() to bi_errorf().
- * emacs.c(x_bind): changed return value to int; changed all calls.
- * history.c(histrpl): return 0 if there is an error; changed all calls.
- * misc.c(parse_args): use bi_errorf(); return -1 for error; changed all
- calls.
- * misc.c(ksh_getopts): call bi_errorf instead of errorf which means
- ksh_getopts() may return after an error, so changed all calls to
- check for '?' return.
-
- * exec.c(iosetup): use shellf() to report errors and return value
- indicating success or failure.
- * exec.c(execute): if iosetup fails, cause fatal error for special
- builtins, return otherwise; print PS4 and redirections.
-
-Fri Sep 30 15:17:37 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit): accept unlimited as a valid value.
-
- * c_test.c(c_test): changed posix special case code to use
- while loop.
-
- * c_ksh.c(c_whence): for whence -p, don't look for built-ins or
- fuctions.
-
-Thu Sep 29 10:34:59 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_ksh.c(c_alias): added -r option so the sysv-bounre shell
- hash -r will work.
-
- * eval.c(debunk): use strchr() to find first MAGIC, if any.
-
-Wed Sep 28 15:34:32 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * sh.h(O_NONBLOCK): define to O_NDELAY or FNDELAY if not defined.
- * main.c(main): if stdin is O_NONBLOCK'd, clear O_NONBLOCK.
-
- * misc.c(options[], parse_args): make -c a normal flag, not an option
- with an argument (POSIX); deleted cargp argument to parse_args().
- * main.c(main): print error if -c and no arguments left.
-
- * lex.h(SSTDIN): new define.
- * lex.c(yylex): added case for SSTDIN.
- * main.c(main): if -s flag used, set source type to SSTDIN.
-
-Tue Sep 27 08:52:11 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * lex.c(get_brace_var): new function.
- * lex.c(yylex): removed most ${..} parsing - leave it to expand();
- use get_brace_var() to read the variable part of a ${..} expression.
- * tree.c(tputs,wdscan): case OSUBST: delete code that understood
- partially compiled ${..}.
- * sh.h(C_SUBOP,C_SUBOP1,C_SUBOP2): changed C_SUBOP to C_SUBOP1,
- added C_SUBOP2.
- * misc.c(initctypes): removed # and % from C_SUBOP; changed C_SUBOP to
- C_SUBOP1; added C_SUBOP2.
- * eval.c(varsub): look at word part of substitution to figure out
- type of substitution; check for bad substitutions; check for unset
- variables for #/% substitutions.
- * eval.c(struct SubType): changed type field to stype; changed quote
- field to short; added f field.
- * tree.h(DOTEMP_): new define.
- * eval.c(expand): case CSUBST: case '=': deleted bad substitution
- error (now handled in varsub); case OSUBST: removed special handling
- of trimming - varsub() does it now; when pushing/poping state (st),
- save/restore value of f; set f to DOPAT when trimming; case CSUBST:
- case '=': restore original position in string, substitute the value
- of the variable (as opposed to the value that was assigned to the
- variable); case OSUBST: if '?' qualifier, turn off DOBLANK when
- expandined word part; define DOTEMP_ when expanding word part
- of ${..[#%=?]..}; deleted first_eq and tstart - replaced with
- tilde_ok and saw_eq.
-
- * eval.c(expand): tilde expansion: use tstart variable instead of cp;
- changed '?' error message to be like at&t ksh; don't test if strval()
- returns NULL - it doesn't.
-
- * var.c(strval): if !ISSET, instead of returning null, set s to null.
-
- * exec.c(comexec): case TDBRACKET: don't pass DOASNTILDE to evalstr().
-
- * exec.c(scriptexec): changed line[] to buf[] so it doesn't get
- confused with global the line[].
-
- * main.c(initsubs): initialize PS4.
- * edit.c(x_getc): cast char to unsigned before returning.
-
-Mon Sep 26 11:06:55 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * eval.c(globit): call strnsave instead of strsave; if file has
- trailing /, use stat() to check that it is a directory.
-
- * eval.c(expand): case CSUBST: case #/%: deleted duplicate *dp = 0;
- case CSUBST: case =: copy string and call debunk() to oust MAGICs.
-
- * misc.c(print_value_quoted): deleted bogus shf_shlout argument to
- shprintf(); deleted unneeded test (p != s).
-
- * main.c(main): turn on FBRACEEXPAND.
- * misc.c(change_flag): turn FBRACEEXPAND off if turning FPOSIX on.
-
- * vi.c(x_vi): use x_vi_zotc() to print ^D.
- * vi.c(CHAR_LEN): new define.
- * vi.c(vi_hook): use CHAR_LEN() instead of inline tests for
- c < ' ' || c== 0x7f; search editing: display M- if necessary.
- * vi.c(display): changed to deal tiwh meta-characters.
-
- * vi.c(x_vi_zotc): print M- for meta chars.
- * emacs.c(x_e_getc): new function; changed all x_getc() calls to
- x_e_getc() calls.
- * edit.c(x_getc): don't and out upper bit.
-
- * sh.h(OPAREN,CPAREN,OBRACK,CBRACK,OBRACE,CBRACE): new defines
- * expr.c(OPAREN,CPAREN): re-named to OPEN_PAREN, CLOSE_PAREN.
-
- * eval.c(debunk): changed to convert MAGIC MAGIC -> MAGIC.
- * eval.c(expand): removed ismagic_bracket stuff - not needed.
- * eval.c(expand): always restore value of quote when CSUBST
- reached; don't set DOGLOB in fdo if trimming.
-
-Sat Sep 24 11:46:03 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * tree.h(DOBRACE_): new define.
- * eval.c(expand): changed check for leading ! in [..] to be more
- robust (old test could have looked before start of string).
- * eval.c(expand,maybe_expand_tilde): case ~: moved code into a function
- (maybe_expand_tilde).
- * eval.c(expand): expand alternations after macros, before globing
- (was before macros).
- * eval.c(alt_expand): changed to be called after macro expansion.
- * eval.c(alt_scan,alt_count): deleted (no longer needed).
-
- * misc.c(cclass): return NULL (no match) if first char in a range
- is greater than the second.
- * eval.c(expand): when building strings, stuff literal MAGIC chars.
-
-Thu Sep 22 15:05:48 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(comexec): re-arranged handling of builtin and exec;
- handle command (and command -p, etc.); deleted comexec_flags
- variable; made function static again; removed fcflags argument.
- * table.h(FC_NOBLOCK): deleted define.
- * c_sh.c(c_exec): changed empty function to deal with preserving I/O
- redirects (code taken from comexec()).
- * c_ksh.c(c_command): new function - calls c_whence.
- * c_ksh.c(c_whence): removed code to deal with command -p.
-
- * Makefile.in: changed [ to test.
- * shf.h: changed errno structure member to errno_; changed all uses
- (fixes for QNX from Brian Campbell).
-
- * c_test.c(enum Op): deleted trailing comma (some compilers complain).
- * proto.h: added volatile to tp arg of comexec() prototype.
-
-Thu Sep 22 11:08:31 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.8 distribution
-
- * Makefile.in(install): added missing dollar (fix from Thomas Gellekum).
-
- * emacs.c: changed CMASK to CHARMASK to avoid conflicts with some
- system headers (eg, HP-UX 9.01 <sys/param.h>). Reported by Sean
- Hogan.
-
- * history.c(c_fc): wp not being incremented; -e strcmp() test reversed
- (reported by Sean Hogan).
-
-Thu Sep 21 21:12:03 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.7 distribution
-
-Tue Sep 20 09:56:54 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * history.c(c_fc): use ksh_getopt() to parse arguments.
- * c_ksh.c(c_bind): use ksh_getopt() to parse arguments.
-
- * main.c(initcoms[]): changed hash alias from alias -t - to alias -t --.
-
- * misc.c(print_value_quoted): don't use quotes if no special
- characters.
-
- * c_ksh.c(c_whence): added POSIX command command.
-
- * c_sh.c(c_label): removed check for null wp.
-
- * exec.c(comexec): added new flags argument (FC_*);
- don't call newblock() if FC_NOBLOCK set; pass flags on to
- findcom(); changed all calls; made comexc() a non-static
- function.
-
- * table.h:(FC_SPECBI,FC_FUNC,FC_REGBI,FC_UNREGBI,FC_PATH,FC_DEFPATH,
- FC_NOAUTOLOAD,FC_NOBLOCK): new defines.
- * exec.c(findcom): merged insert/justsearch/autoload arguments
- into one flags argument; changed code to check various flags;
- changed all calls.
-
-Sat Sep 17 20:17:59 NDT 1994 Michael Rendell (michael@garfield.cs.mun.ca)
-
- * exec.c(comexec): print error if builtin has no command.
-
- * exec.c(execute): before doing redirections, check for TCOM and
- evaluate arguments and determine if it is a special builtin;
- print arguments (using PS4) if FXTRACE set; case TCOM: simply call
- comexec().
- * exec.c(comexec): deleted vp argument; only call newblock() if
- needed (ie, !special, !empty); evaluate assignments and put
- in environment one at a time; print environment (using PS4) if
- FXTRACE set; removed code to turn empty command into :;
- removed environment setting code in switch statement.
- * exec.c(echo): deleted function.
-
- * lex.c(yylex): only honour CMDWORD if FPOSIX set.
-
- * c_sh.c(shbuiltins): removed = attribute from false/true commands.
-
- * sh.h(E_TCOM): delete define - not used.
-
- * sh.h(null),var.c: use EXTERN for initialization of null.
- * sh.h(space,newline,slash): new variables (" ", "\n", "/")
- use these everwhere instead of "", " ", "\n", "/".
- * path.c: include sh.h.
-
- * exec.c(execute): combined TFOR/TSELECT cases.
-
-Fri Sep 16 11:32:01 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(CMDWORD): new define to prevent continued alias expansion in
- non-command contexts.
- * lex.c(yylex): only set ALIAS if SF_ALIAS and CMDWORD are set.
- * syn.c(get_command): case LWORD/REDIR: pass CMDWORD if argc is 0.
-
- * exec.c(comexec): if there is no command, do assignments and set
- the return value to subst_exstat (used to fake a : command).
-
- * sh.h(subst_exstat): new variable.
- * exec.c(execute): case TCOM: clear subst_exstat before doing eval()s.
- * eval.c(expand): set subst_exstat to return value of waitlast().
- * c_sh.c(c_set): if !FPOSIX, return subst_exstat instead of 0.
-
- * exec.c(execute): removed redundant "exstat = rv;" near if FERREXIT.
- * exec.c(comexec): case CFUNC: for normal function completion, set
- i to 0 and rv to return value of execute() (was i=LRETURN,exstat=..).
-
- * main.c(include): return -1 if file could not be found/opened,
- otherwise, the exit status of the last command is returned;
- changed all calls.
- * c_sh.c(c_dot): print error if include() returns < 0.
-
- * var.c(setspec): ifdef EDIT'd V_VISUAL, V_EDITOR cases.
-
- * misc.c(parse_args): no longer accept set -o alternations as
- a substitute for set -o braceexpand.
-
- * jobs.c(j_exit): when restoring tty process group, also restore
- our process group.
-
- * config.h.bot: define JOB_SIGS iff we have modern signal and wait
- routines.
- * jobs.c: use ifdef JOB_SIGS instead of ifdef JOBS when setting
- signal masks and routines or using waitpid; define TTY_PGRP and
- NEED_PGRP_SYNC separately from JOBS.
- * jobs.c(j_kill): only send SIGCONT if job is stopped.
- * jobs.c(j_jobs): remove exited/signaled jobs even if !FMONITOR,
- un-ifdef JOBS same.
-
- * jobs.c(check_job): ifdef FNOTIFY with JOBS (noted by
- Michael Haardt <u31b3hs@POOL.Informatik.RWTH-Aachen.DE>).
- * jobs.c(j_notify,j_waitj): put ifdef JOBS around use of FMONITOR.
- * main.c(shell): removed ifdef JOBS from declaration of interactive.
-
- * ksh_limval.h,sh.h: moved include of <limits.h> from ksh_limval.h
- to sh.h since some machines define CLK_TCK there.
-
-Thu Sep 15 09:58:14 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * vi.c(vi_cmd): took out ESC as file completion char in command mode
- (too annoying).
-
- * jobs.c(exchild): if starting a job in the background and FBGNICE
- is set, call nice().
-
- * Makefile.in: changed maxext to manext (fix from Thomas Gellekum
- <thomas@ghpc8.ihf.rwth-aachen.de>); in the install target, check
- if the path of the installed shell is in /etc/shells and
- complain if it isn't; added depend target, removed old $(OBJS)
- and trap.o dependencies.
-
-Wed Sep 14 09:39:55 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(options[]): changed position of vi-tabcomplete option.
-
- * lex.c(yylex): ifdef use of FVI/FEMACS/FGMACES with VI/EMACS
- (fix from Gordan Larson <hoh@approve.se>).
-
- * ksh.1(DESCRIPTION): added missing P in \fP
- (fix from Gordan Larson <hoh@approve.se>).
-
-Tue Sep 13 11:01:47 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.6 distribution
-
-Mon Sep 12 11:39:07 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(scriptexec): changed so it will compile if SHARPBANG is
- defined; fixed error message; shell argument is everything up to
- a newline; don't listen to #! line unless it ends in a newline.
-
- * syn.c(get_command): case FOR: changed VARASN to ARRAYVAR.
-
- * jobs.c(waitfor): restore signal mask before returning if named job
- isn't own own; when waiting for unspecified jobs, only consider
- running jobs; don't pass JW_STOPPEDWAIT flag to j_wait.
-
- * table.h(V_TMPDIR,tmpdir): new define/variable.
- * var.c(setspec, unsetspec): added case for V_TMPDIR.
- * io.c(maketemp): use tmpdir variable if it is set, else use /tmp.
-
- * var.c(popblock): if poping a variable that wasn't set in the old
- environment, call unsetspec().
-
-Fri Sep 9 10:37:18 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(PATHMAX): increased value from 256 to 1024.
-
- * main.c(main): moved initialization of name to start of main;
- if getcwd() fails, use name in error message and call shf_flush().
-
- * io.c(maketemp): check/use TMPDIR variable instead of /tmp; allocate
- temp structure and path in one chunk.
-
- * c_ksh.c(c_cd): when checking for no home directory, compare
- against null, not (char *) 0.
-
-Thu Sep 8 10:52:59 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(yylex): case SHIST: flush shl_out after printing command.
-
- * jobs.c(check_job): when notifing, do not remove job if it is stopped.
-
-Wed Sep 7 10:55:35 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.5 distribution
-
- * main.c(shell): commented out shf_flush(shl_out) - shouldn't be
- needed since -v flushes itself.
-
-Tue Sep 6 09:30:57 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * sh.h(LSHELL,really_exit): new define/variable.
- * c_sh.c(c_exitreturn): if how is LEXIT, check if there are stopped
- jobs and, if so, unwind with LSHELL (also check/set really_exit).
- * main.c(shell): added case for LSHELL - stop unwinding if shell
- is interactive; changed local reallyquit to global really_exit.
- * main.c(include),exec.c(comexec): added case for LSHELL.
-
- * c_sh.c(c_exitreturn): quitenv() for LRETURN as well as LEXIT.
-
- * sh.h(TF_CHANGED): new define.
- * trap.c(runtrap): default EXIT/ERR trap during execution and restore
- original if TF_CHANGED not set.
- * trap.c(settrap): set TF_CHANGED when setting trap.
-
- * jobs.c(j_stopped): check that job created by current process; print
- "You have stopped jobs" message.
- * main.c(shell): don't print you have stopped jobs message.
-
- * main.c(initcoms): removed echo alias.
- * c_ksh.c(kshbuiltins): added echo as a builtin.
- * c_ksh.c(c_print): if wp[0] is echo, act like strict sysv echo;
- added \a (BEL) escape sequence.
-
- * syn.c(function_body): new function; calls get_command() to get
- the body of a function (old code did nested { } block which
- caused problems with how redirections after the block were
- handled).
- * syn.c(get_command): call function body to deal with foo() and
- function foo.
-
- * jobs.c(restore_ttypgrp): new variable.
- * jobs.c(j_change): set restore_ttypgrp if process group is set.
- * jobs.c(j_exit): if necessary, restore tty process group for main
- shell.
-
-Fri Sep 2 21:32:03 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * main.c(main): set FPRIVILEGED if uid (gid) doesn't match euid (egid);
- don't include $HOME/.profile if FPRIVILEGED; include
- /etc/suid_profile instead of $ENV if FPRIVILEGED.
- * misc.c(change_flag): if clearing FPRIVILEGED flag, set euid (egid)
- to uid (gid).
-
-Fri Sep 2 21:10:23 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * main.c(main): don't include $ENV if uid (gid) doesn't match
- euid (egid) (from J.T.Conklin).
-
-Fri Sep 2 12:07:14 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * syn.c(get_command): removed MPAREN case, taken care of in '(' case,
- as per POSIX.2 which says () is two operators, not one.
- * lex.c(yylex): don't check for/return MPAREN.
- * lex.h(MPAREN): deleted define.
-
- * configure.in: add test for library routine confstr(); add
- header test for paths.h.
- * sh.h: include paths.h if available; define DEFAULT__PATH.
- * table.h(def_path): new variable.
- * options.h(DEFAULT_PATH): new define.
- * main.c(main): initialize value of def_path; set path to def_path;
- remove PATH initalization from initsubs; do not set value of HOME
- variable (POSIX); allow SHELL, PS1, PS2, PS3 to have empty values
- (at&t ksh).
- * var.c(unsetspec): when unsetting PATH, set path to def_path.
-
- * jobs.c(j_waitj): restore proc mask before calling error if
- 1st tcsetpgrp() fails.
-
-Thu Sep 1 10:28:03 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * Makefile.in: added check-sig.c, check-fd.c and check-pgrp.c
- to RCSFILES; added rules for compiling the above; added debugtools
- target to compile them all.
-
- * c_test.c(arg0,t_error,T_ERR_EXIT): new variables/defines.
- * c_test.c(c_test): set arg0 to wp[0], t_error to 0; after
- calling eval_binop() or oexpr() check t_error and if set,
- return T_ERR_EXIT.
- * c_test.c(syntax): set t_error exit; use shellf() instead of
- errorf(); use arg0 instead of "test"; delete GCC_FA_NORETURN
- attribute; changed all calls to return after calling.
- * c_test.c(oexpr,aexpr,primary): check terror after calling
- oexpr(), aexpr(), nexpr().
-
- * c_test.c(primary): if unary operator is -t and there is no
- argument, don't increment t_wp; if missing closing parenthesis,
- show next operand (if any) in error message.
- * c_test.c(eval_unop): default case, print t_wp[-2] (was -1).
- * c_test.c(c_test): set t_wp before calling eval_binop() incase
- there is an erorr.
- * c_test.c(syntax): print first message even if op is an empty string.
-
-Wed Aug 31 11:48:51 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * expr.c(O_LT, O_GT): reverse order of enums to match opinfo table.
-
- * c_test.c(nexpr): always call !nexpr() (never !primary()).
- * c_test.c(c_test): switch on argc-1 to make code match POSIX
- description; make 4 arg case fall into 3 arg case, and 3 arg case
- fall into 2 arg case.
- * c_test.c(is_not,is_and,is_or): new defines.
- * c_test.c(c_test,oexpr,aexpr,nexpr): use is_not,is_and and is_or.
- * c_test.c(primary): don't decrement t_wp in final string case.
-
- * c_test.c(eval_unop): change S_ISIFO to S_ISFIFO and S_ISFITO
- to S_ISFIFO.
-
- * misc.c(parse_args): use OF_SET when initializing set_opts.
-
-Wed Aug 31 09:32:39 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * made pdksh-5.0.4 distribution
-
- * jobs.c(j_change): do not restore tty process group when turning
- off job control; no need to save original tty process group;
- deleted orig_ttypgrp variable. (fixes bug in which turning off
- job control causes an interactive shell to exit)
-
-Tue Aug 30 14:43:48 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(KSH_OPENDIR_CHECK): always include sys/types.h;
- set return value according to what failed.
-
-Tue Aug 30 11:17:09 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * missing.c(strerror): for systems without sys_errlist[], report
- error number if unknown.
-
- * Makefile.in: added BUG-REPORTS to DISTFILES.
-
- * jobs.c(exchild): do tcsetpgrp() in both parent and child after
- the first process is created (may need to change to every child).
-
- * aclocal.m4(KSH_PGRP_SYNC): new test - defines NEED_PGRP_SYNC.
- * acconfig.h: added define for NEED_PGRP_SYNC.
- * configure.in: use KSH_PGRP_SYNC test.
- * jobs.c(exchild,j_startjob,j_sync_open,j_sync_pipe): if NEED_PGRP_SYNC
- is defined, use a pipe to block the first process in a pipeline
- until the whole pipeline is set up.
-
-Mon Aug 29 09:15:00 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * jobs.c(exchild): for background, unmonitored jobs, don't open
- /dev/null if input is a pipe.
-
- * jobs.c(exchild): for background, unmonitored jobs, use setsig()
- instead of setexecsig() to set up SIGQUIT and SIGINT; changed
- restoration of SIGTSTP,SIGTTIN,SIGTTOU - set them to DFL if
- monitoring and not a `..` command, otherwise leave them alone.
- * jobs.c(j_init): only use SIGTSTP,SIGTTIN,SIGTTOU if talking
- or monitoring - if just talking leave signals ignored.
- * jobs.c(j_change): if going into job control, set TF_SHELL_USES
- flag for sigtraps[SIGTSTP,SIGTTIN,SIGTTOU]; if leaving job control
- ignore signals if interactive, else restore original signals.
-
- * table.h(SPEC_BI, REG_BI): new defines.
- * exec.c(builtin): check for * or + in front of builtin names and set
- SPEC_BI or REG_BI if found.
- * exec.c(findcom): search for special builtins first, then functions,
- then regular builtins, then PATH search.
- * c_sh.c(shbuiltins[]),c_ksh(kshbuiltins[]): add */+ in front of POSIX
- special/regular builtins; add = infront of unset;
- remove = from alias.
- * c_sh.c(c_label): set exit value according to name (for true/false).
- * c_sh.c(shbuiltins[]): add entries for true and false.
- * main.c(initcoms[]): deleted true/false aliases.
-
- * aclocal.m4(KSH_OPENDIR_CHECK): new test - see if opendir() will
- open non-directories.
- * configure.in,acconfig.h: added KSH_OPENDIR_CHECK.
- * missing.c,ksh_dir.h(ksh_opendir): new define/function.
- * eval.c(globit),emacs.c(compl_file): use ksh_opendir() instead of
- opendir().
-
- * main.c(include): save source filename since search() uses line[]
- for the filename and shell() trashes line[].
-
- * table.h(FINUSE,FDELETE) new defines.
- * exec.c(execute): case CFUNC: re-arranged code so normal return goes
- through setjmp() switch; use FDELETE/FINUSE flags to avoid problems
- with a function being undefined or redefined during its execution.
- * exec.c(define): if FINUSE is set, set FDELETED and find a new table
- entry.
-
-Fri Aug 26 21:58:25 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.c(getsc_): flush output after write when echoing.
-
- * Makefile.in(dist): after creating distrubution, use pathchk -p
- to check file names.
-
-Fri Aug 26 10:28:20 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * made pdksh-5.0.3 distribution
-
- * expr.c(IS_ASSIGNOP): new define.
- * expr.c(evalexpr): use IS_ASSIGNOP (bug fix).
-
- * exec.c(execute): case TFOR,TSELECT: change e->type just
- before setjmp() to avoid problems with bad jmpbufs.
-
- * jobs.c(startlast): new function.
- * jobs.c(waitlast): print error if job not started.
- * eval.c(comsub): call startlast() after execute().
- * jobs.c(exchild,j_startjob,j_sync_pipe): when starting a pipeline
- use a pipe to ensure the first process doesn't die before
- the last process is started.
-
- * exec.c(execute): case TFUNC: set/clear FXTRACE according to
- tp->flag & TRACE, and restore old value when function completes.
-
- * c_test.c,exec.c,io.c,mail.c,vi.c: changed all uses of
- (x&S_IFMT) == S_IF* to the equivilent S_IS* (for ISC unix).
- * c_test.c(eval_unop): if system doesn't have symlinks or sockets
- (S_ISLNK,S_ISSOCK), return 0 (used to cause internal error).
- * ksh_stat.h(S_ISVTX): define if sys/stat.h doesn't.
-
- * sigaction.c(Signal,signal): ifdef'd Signal() and signal() out as
- they cause header file conflicts on some systems (eg, signal()
- in ISC unix); also ifdef'd out other routines not used by ksh
- (ie, sigdelset, sigfillset, sigismember, sigpending).
-
-Thu Aug 25 11:50:03 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_test.c(primary): always check that *t_wp isn't 0 before using it.
-
- * eval.c(homedir): cache home directory values.
-
- * exec.c(findcom): search builtins before tracked aliases.
-
- * table.h(commands,taliases): changed name of commands to taliases.
-
- * c_ksh.c(c_unalias): changed to use ksh_getopt(); added -t and -a
- options; exit with non-zero value if non-alias name unaliased
- (POSIX).
-
- * main.c(initcoms[]): alias hash to 'alias -t -'; added autoload alias
- as well; set selected comands to be tracked aliases (eg, grep,
- ls, who, vi, emacs, etc.).
-
- * c_ksh.c(c_alias): when printing aliases, check ISSET, not DEFINED
- flag (so unset tracked aliases won't cause problems); changed
- to use ksh_getopt(); added -t flag; added -x flag (does nothing).
- * c_ksh.c(c_hash): deleted function; removed all references.
-
- * table.h(CTALIAS): new define.
- * exec.c(findcom): added search argument for whence -p; fixed
- introduced bug preventing tracking of commands when insert set;
- changed all calls; when creating tracked aliases, set type to CTALIAS
- (was CEXEC).
- * exec.c(findcom,flushcom): when freeing old tracked aliases, use
- APERM, not commands.areap.
- * c_ksh.c(c_whence): changed to use ksh_getopt(); assume findcom()
- never returns 0 and never returns tp->type == CNONE; made output
- closer to at&t ksh output; combined vflag/!vflag switch statements;
- added case for CTALIAS.
- * exec.c(findcom): set tracked alias type to CTALIAS.
-
- * c_ksh.c(c_print): added -s option; changed to use Xstring() routines
- and write() instead of shf routines; returns non-zero if there
- was a write error.
-
- * jobs.c(struct job): changed pid_t lpid field to Proc *last_proc;
- changed all uses.
- * jobs.c(check_job): use j->last_proc instead of lp.
- * jobs.c(j_waitj): when checking for fake ^C, test j->last_proc
- status to see if it was signaled and use WTERMSIG to get signal.
-
- * main.c: initialize integer TMOUT parameter to 0; call alarm_init()
- if FTALKING.
- * trap.c(alarm_init,alarm_catcher): new functions.
- * trap.c(runtraps): if ksh_tmout_leave is set, exit.
- * sh.h(TMOUT_EXECUTING,TMOUT_READING,TMOUT_LEAVING,ksh_tmout,
- ksh_tmout_state): new enum values/variables.
- * table.h(V_TMOUT): new define.
- * var.c(special,setspec,unsetspec): added V_TMOUT entry.
- * edit.c(x_getc): call intrcheck() if read interrupted.
-
-Thu Aug 25 09:36:54 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_test.c(c_test): for argc cases 4 and 5, return the complement
- of the expressioin result; for [[ .. ]] expressions, don't parse
- based on argc; deleted struct t_op.op_flags field and related
- defines UNOP,BINOP,ACCEPT_BE,ISTEST,ISDBRACKET,ISBOTH - changed all
- uses to test the value of isdbracket.
- * c_test.c(filstat): moved body of filstat() into eval_unop(), deleted
- filstat().
-
- * c_test.c: incorperated changes from J.T. Conlin (jtc@cygnus.com)
- for POSIXization of test builtin.
-
-Wed Aug 24 12:16:25 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * new-version.sh: new file - updates date in version.c
- * Makefile.in: added new-version.sh to RCSFILES; call new-version.sh
- in dist: target.
-
-Tue Aug 23 09:28:10 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * made pdksh-5.0.2 distribution
-
- * jobs.c(exchild): don't call restoresigs().
- * exec.c(execute): do call restoresigs() (just before execve()).
-
- * c_sh.c(c_trap): ifdef'd out code to print default traps. Too ugly
- and it isn't clear POSIX needs it.
-
- * c_ksh.c(c_print): put -e option back in for echo emulation (-R).
-
- * c_sh.c(c_shift): generate error if n < 0.
-
- * c_sh.c(c_trap): use shellf instead of errorf to report errors
- (so we can return a value instead of unwinding - POSIX).
-
- * exec.c(execute): if command fails and !FERREXIT, call
- trapsig(SIGERR_).
-
- * c_sh.c(c_exit,c_return,c_exitreturn): combined c_exit and c_return
- functions.
-
-Mon Aug 22 09:39:54 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * eval.c(expand): case XARG: set word to IFS_WORD to force null
- words to be created.
-
- * lex.c(yylex): added indquotes flag and code for `...` parsing
- (to deal with "`...`" the way sh/at&t-ksh does).
-
- * trap.c(runtrap): don't reset ERR trap.
-
- * sh.h: combnied SS_USER/SS_FORCE flags with RESTORE_CURR et. al.
- flags; changed RESTORE_* to SS_RESTORE_*.
- * trap.c(setsig): combined restore, force and user flags; changed
- all calls.
- * trap.c(setexecsig): use SS_RESTORE_* values as argument.
-
- * table.h: changed LCASE to LCASEV (and UCASE_AL to UCASEV_AL) to
- avoid problems with ioctl/tty LCASE define.
-
- * sh.h(struct env): deleted interactive field.
- * main.c(shell),exec.c(iopsetup): deleted e->interactive assignment.
-
- * sh.h: made e a struct env * (was struct env); changed all references.
- * main.c(newenv): copy loc, flags and interactive fields explicitly.
-
- * var.c(newblock): allocate block structure, don't assume already
- exists.
- * var.c(popblock): free old block structure.
- * main.c(main): set e->loc to 0 before calling newblock().
- * exec.c(comexec): let newblock() allocate new structure; deleted
- l variable (changed references to e->loc).
- * table.h: deleted globals variable.
-
- * c_ksh.c(c_print): treat a lone - like --.
-
- * main.c(main),trap.c(inittraps): move SIGINT,SIGQUIT,SIGTERM signal
- initialization to inittraps() and do it regardless of FTALKING.
-
- * trap.c(settrap): deleted force trap since probably will never
- add -f flag to trap.
-
- * main.c(unwind): if we are dieing of SIGINT or SIGTERM, kill
- ourselves with a signal.
-
- * vi.c(x_vi),emacs(x_emacs): if ^C read, call trapsig()/runtraps();
- don't return -2.
- * edit.c(x_read): don't check for -2 return value.
- * vi.c(x_vi): check for quit char (^\) and fake SIGQUIT.
-
- * exec.c(comexec): made flags argument volatile.
-
- * misc.c(getn_): new function.
- * c_sh.c(c_exit,c_return): call quitenv() before unwind()ing;
- moved c_exit() next to c_return(); use getn_() instead of getn().
-
- * main.c(shell): added exit_atend argument to deal with POSIX trap exit
- semantics; changed all calls.
- * sh.h: added STOP_RETURN macro.
- * c_sh.c(c_return): determine if we are returning or exiting before
- unwind()ing so POSIX trap exit semantics are honored.
-
- * jobs.c(j_sigchld): call trapsig() instead of messing with sigtraps[].
- * trap.c(trapsig): don't restore signal handler if it wasn't set to
- trapsig.
-
- * sh.h: added TF_TTY_INTR flag.
- * trap.c(inittrap): set TF_TTY_INTR for SIGINT.
- * jobs.c(j_waitj): if
-
- * jobs.c,sh.h: deleted SA_RESTART ifdefs; moved SIGCLD->SIGCHLD ifdefs
- from jobs.c to sh.h.
-
-Sat Aug 20 15:26:24 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * sh.h: added KSH_SA_FLAGS define.
- * trap.c(inittrap,setsig): set sa_flags field to KSH_SA_FLAGS.
- * sigact.c(sigaction): if using BSD42_SIGNALS, set the SV_INTERRUPT
- flag.
- * configure.in: deleted AC_RESTARTABLE_SYSCALLS.
- * config.h.bot: add error message to prevent compilation if using
- BSD41 signals.
-
- * shf.h: added SHF_INTERRUPT flag.
- * shf.c(shf_fillbuf,shf_putchar,shf_write,shf_emptybuf): call
- intrcheck() if read()/write() interrupted and SHF_INTERRUPT set.
- * c_sh.c(c_read): use SHF_INTERRUPT flag.
- * lex.c(getsc_): call intrcheck() if read() interrupted.
-
- * main.c(main),trap.c(inittrap): moved Sigact* initialization
- from main() to inittrap(); made Sigact_trap/Sigact_ign static;
- deleted Sigact and Sigact_dfl.
- * sh.h: deleted declarations of Sigact*.
-
- * main.c(shell): deleted sigaction call - no longer needed.
-
- * sh.h: added RESTORE_CURR, RESTORE_ORIG, RESTORE_DFL and RESTORE_IGN
- defines.
-
- * trap.c(intrcheck): new function.
- * trap.c(runtraps): added intr argument; clear trap/intrsig
- before running traps; changed all calls.
- * trap.c(runtrap): save/restore exstat when running trap.
- * jobs.c(j_waitj): changed interrupt test to check intrsig
- and return -1.
- * jobs.c(waitfor): if j_waitj() returns -1, call intrcheck().
- * jobs.c(j_change): use setsig() instead of sigaction() to
- set up SIGTTIN,SIGTTOU,SIGTSTP.
-
- * trap.c(inittraps): initialize flags for INT/QUIT/TERM.
- * sh.h(intrsig): new variable.
- * trap.c(trapsig): set intrsig if signal has TF_DFL_INTR flag set;
- deleted longjmp().
- * trap.c(runtraps): clear intrsig.
- * trap.c(runtrap): if signal is defaulted and TF_DFL_INTR is
- set, set exstat and call unwind(); return if signal ignored;
- reset an ERR trap before executing it.
- * trap.c(cleartraps): deleted special case for EXIT; reset
- command traps using settrap(); clear intrsig.
- * trap.c(restoresigs): only deal with traps that have the TF_EXEC_IGN
- flag set (others take care of themselves).
-
- * trap.c(sigtraps[]): added ERR trap.
- * trap.c(gettrap): deleted #if 0'd ERR/EXIT check.
- * trap.c(gettrap,runtrap,cleartraps,restoresigs): use SIGNAL+1 to
- go through trap table.
- * sh.h(SIGEXIT_,SIGERR_): new defines.
- * c_kill.c(c_kill): test for signals > 128 (was >= 128)
- * c_sh.c(c_trap): when printing traps, use SIGNALS+1.
-
- * sh.h(struct trap): replaced ourtrap and sig_dfl fields with
- flags field; defined TF_SHELL_USES, etc. for flags field; added
- cursig field.
- * sh.h(struct env): replaced func_parse field with
- flags field; defined EF_FUNC_PARSE, EF_BRKCONT_PASS for flags
- field; defined STOP_BRKCONT(); changed uses of func_parse
- (get_command()/readhere()).
- * c_sh.c(c_brkcont): use STOP_BRKCONT(), EF_BRKCONT_PASS; call
- unwind() to do the work.
-
-Fri Aug 19 09:59:43 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * trap.c(settrap): new function - does most of what c_trap did.
- * c_sh.c(c_trap): changed to use settrap(); print out default
- actions as well as caught/ignored actions.
- * trap.c,c_sh.c(setsig): moved setsig from c_sh.c to trap.c and
- made it static; added force and user arguments; don't do anything
- for EXIT and ERR.
- * main.c(main): use sigtrap() instead of ignoresig().
- * trap.c(ignoresig): deleted function.
-
- * exec.c(execute): case TSELECT: don't change SIGINT signal handler.
-
- * proto.h: use GCC_FA_NORETURN on aerror().
- * syn.c(yyparse): made function static and void.
-
- * exec.c(herein): changed error() calls to errorf()s; use error()
- in error handler; call shf_close() instead of shf_fdclose().
-
- * tree.h,sh.h: moved LBREAK/LCONTIN from tree.h to sh.h;
- added LEXIT, LRETURN, LERROR, and LINTR defines; changed values
- of LBREAK/LCONTIN; changed all calls to longjmp() and setjmp().
- * exec.c(execute): put Break: label after main switch, changed
- goto Break[0-9] to Break; deleted Break[0-9] labels.
- * exec.c(execute): changed FOR, SELECT, WHILE, DO loop setjmps
- to explicitly check for LBREAK/LCONTIN, otherwise call unwind().
- * exec.c(execute): case TFUNC: added setjmp switch statement to take
- care of various L* values.
- * main.c(include,shell): added setjmp switch statement to take care of
- various L* values.
- * main.c(unwind): added L* parameter to pass on to longjmp();
- changed all calls.
- * c_sh.c(c_return): just call unwind(LRETURN);
- * main.c(unwind): put code from leave() in E_NONE case.
- * main.c(error,leave): deleted functions; replace all calls with
- unwind(LLEAVE or LERROR).
- * *.c(longjmp): replaced all calls with unwind(L..) (except the
- call in unwind()).
-
- * shf.h: add areap field to struct shf.
- * shf.c(shf_fdopen,shf_sopen): initialize areap
- * shf.c(shf_emptybuf,shf_close,shf_sclose,shf_finish): use areap
- instead of ATEMP.
-
- * shf.c(shf_sopen): if buf is 0 and writing and DYNMAIC, allocate
- a buffer; if writing, save room for a trailing null.
- * shf.c(shf_sclose): new function.
- * shf.c(shf_snprintf),tree.c(snptreef): use shf_sclose().
- * tree.c(snptreef): changed return type to char *; if buffer
- is null, pass SHF_DYNAMIC to shf_sopen(); return (possibly
- allocated) string.
- * syn.c(syntaxerr): use snptreef() instead of ident.
-
- * tree.h: new define TDBRACKET; new defines DB_NORM,DB_OR,DB_AND,
- DB_BE,DB_PAT.
- * tree.c(ptree): added case for TDBRACKET.
- * syn.c(get_command): case DBRACKET: make TDBRACKET command;
- at end of function, null terminate args/vars if TDBRACKET.
- * c_test.c(is_db_patop): new function.
- * syn.c(db_primary): set type of arg to DB_PAT if is_db_patop()
- returns true.
- * exec.c(execute): added case for TDBRACKET.
-
- * syn.c(get_command): case MDPAREN: make arg[0] an allocated stuffed
- string (was a literal string).
-
-Thu Aug 18 11:06:49 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_test.c(is_op,is_binop,is_unop): new functions to test for
- unary/binary operators.
- * c_test.c(oexpr,aexpr,nexpr,primary): no longer take argument -
- call is_unop/is_binop directly.
- * c_test.c(ISDBRACKET,ISTEST,ISBOTH,ACCEPT_BE): new defines.
- * c_test.c(struct t_op): changed op_type field to op_flags.
- * c_test.c(ops[]): broke into two arrays: u_ops and b_ops;
- set flag field to ISDBRACKET/ISTEST/ISBOTH as appropriate.
- * c_test.c(t_lex): deleted function.
- * c_test.c(primary): before checking for unary operator, check
- for -BE (binary expression next) if appropriate.
-
- * c_test.c: made operator type an enum to make it easier to add
- operators; changed oexpr/aexpr/nexpr/primary/filstat/t_lex
- operand/return types.
- * c_test.c(struct t_op): changed op_text from char * to char [4].
- * c_test.c(primary): case FILTT: using digit(**t_wp) causes core dump
- when there is no arg - just test if *t_wp is 0; move test into
- filstat().
- * c_test.c(primary): use *opnd1 != 0 instead of strlen(opnd1) (3
- instances).
-
- * tree.c(wdscan,wdcopy): changed string argument to const; changed
- return type of wdscan to const.
-
- * eval.c(expand): case CSUBST: case '?': use st->var->anme instead
- of cp to allow proper nesting.
- * eval.c(expand): case OSUBST: don't change cp - declare local
- variable.
- * eval.c(expand): case COMSUB: deleted Xsavepos() call; XCOM: deleted
- Xrestpos() call.
- * eval.c(expand): save the position of the first unquoted = for tilde
- expansion.
- * eval.c(expand): case '~': use sp == (cp+2) instead of dp == Xstring
- so we aren't fooled by ''~ or ${foo}~; sp[-1]/sp[-2] and firsteq
- for the DOASNTILDE after first = or unquoted : test.
-
- * tree.h(struct op): changed noexpand field to evalflags; changed
- all uses.
- * exec.c(execute): if t->evalflags is non-zero, pass them to eval().
-
- * lex.h: added DBRACKET define for [[ keyword.
- * syn.c(get_command): added case for DBRACKET.
- * syn.c(db_parse,db_oaexpr,db_nexpr,db_primary): new functions
- to parse [[ .. ]] expressions.
- * syn.c(tokentab[]): added [[/DBRACKET keyword.
- * c_test.c(is_db_unop,is_db_binop): new functions to test if arg
- is [[ .. ]] unary/binary operator.
-
- * syn.c(syntaxerr): call REJECT; before token; removed REJECT
- before all calls to syntaxerr().
- * syn.c(get_command): removed syntax error kludge.
-
-Wed Aug 17 11:07:40 NDT 1994 Michael Rendell (michael@arlene.cs.mun.ca)
-
- * c_test.c(struct ops): changed -U to -O.
-
- * tree.h: added new defined DOASNTILDE.
- * eval.c(expand): case '~': changed !(f&DOBLANK) to f&DOASNTILDE.
- * exec.c(execute): case TCOM: pass DOASNTILDE when evaluating vars
- and when expanding args when t->noexpand is set.
-
- * exec.c(execute): case TCASE: pass DOTILDE to both evalstr() calls
- (POSIX).
-
- * syn.c(get_command): don't check for redirections before determining
- command type; handle REDIR where LWORD are handled; default case
- always returns; pass ARRAYVAR flag to tpeek() if t->noexpand;
- don't allow redirections before "x()" function; don't allow
- redirection before keywords; allow a '(' in the case LWORD/REDIR:
- if no variables or arguments (POSIX doesn't allow this, but
- at&t ksh/bourne sh do).
- * lex.h(ARRAYVAR): new define.
- * lex.c(yylex): parse x[1 & 2] as one word if VARASN|ARRAYVAR.
-
- * var.c(is_wdvarname): added aok argument; changed all calls.
- * syn.c(get_command): case FOR/SELECT: check identifier is valid.
-
- * c_sh.c(c_trap): use print_value_quoted() to print traps;
- use ksh_getopt() to skip possible --.
- * trap.c(gettrap): allow digits only if signal numbers match
- POSIX values (ie, HUP=1,INT=2,QUIT=3,ABRT=6,KILL=9,ALRM=14,TERM=15).
-
- * misc.c(print_value_quoted): new function to print strings with
- appropriate quoting.
- * c_ksh.c(c_typeset,c_alias): use print_value_quoted() when printing
- values.
-
- * lex.h: added new ESACONLY flag - only accept ESAC keyword.
- * lex.c(yylex): check for ESACONLY flag when doing keyword search.
- * syn.c(caselist): pass ESACONLY flag to tpeek().
-
-Tue Aug 16 10:17:47 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(struct source); changed echo field to generic flags field;
- defined SF_ECHO and SF_ALIASEND.
- * lex.c(_getsc): case SALIAS: use isspace() to check for trailing
- space in alias; if alias does not end in a space, return a fake
- space to keep the current alias in the source list - this allows
- recursive alias detection; set SF_ALIAS in next source if alias
- does end if space.
- * lex.c(yylex): deleted expanding_alias, rec_alias_cnt and
- rec_alias_table variables; check for recursive aliases by checking
- the source list; don't use EXPALIAS flag; if SF_ALIAS is set in
- current source, set ALIAS flag and clear SF_ALAIS; deleted global
- alias variable.
- * table.h: deleted EXPALIAS define.
- * main.c(shell): changed s->echo to set/clr of SF_ECHO in s->flags.
-
- * table.h: added aliases and keywords tables; deleted lexicals table
- (POSIX says they are separate).
- * syn.c(keywords,initkeywords): changed name of keywords() function
- to initkeywords(); changed all calls; add to keywords table instead
- of lexicals table.
- * main.c(main): initialized aliases/keywords tables; deleted
- initialization of lexicals table.
- * c_ksh.c(c_whence,c_alias,c_unalias),lex.c(yylex): use
- keywords/aliases tables instead of lexicals table; removed unneeded
- type == CALIAS checks.
-
- * var.c(getint): new function, largely take from strint().
- * var.c(strint): call getint() to do most of the work; if vq
- was an allocated string, free the string and clear the alloc
- flag.
- * var.c(intval): call getint() instead of strint().
-
- * mail.c(mcheck): use getint() instead of strint() when getting
- value of MAILCHECK.
-
- * var.c(skip_varname): added argument to allow array references;
- changed all calls.
- * var.c(set_array): remove valid variable name check - done in
- parse_args().
-
- * var.c(strint): check if getspec()/setspec() need to be called.
- * var.c(intval): remove getspec()/INTEGER checks - let strint() do it.
-
- * var.c(skip_wdvarname,is_wdvarname,is_wdvarassign): new
- functions.
- * lex.h(VARASN): new define indicating variable assignment expected,
- currently used to parse "x[1 & 2]" as one token - may be used
- in future in returning AWORD (assignment word) to the parser.
- * lex.c(yylex): Subst: case '[': use is_wdvarname() in determining
- whether to parse an array dereference; do not require an = after the
- dereference (typeset -r x[1 & 2] is legal).
- * syn.c(many functions): pass VARASN to token/musthave/tpeek/synio
- when ever the next token might be the first word of a simple
- command.
- * syn.c(get_command): case LWORD: use is_wdvarassign() to distinguish
- variable assignments from normal arguments; allow aliases after
- redirections and variable assignments; generate syntax error
- for "foo=bar bogusfunction()"; allow array variables in for
- and select statements.
- * lex.c: make global alias variable static (no longer used by
- get_command()).
-
- * syn.c(get_command): put MDPAREN into its own case.
-
- * lex.c(yylex): deleted place holder for tilde expansion.
-
- * tree.h(struct tree): added noexpand field for
- alias/export/readonly/typeset.
- * syn.c(newtp),tree.c(tcopy): initialize/copy noexpand field.
- * syn.c(get_command): case LWORD: set noexpand if assign_command()
- returns true.
- * syn.c(assign_command): new function - returns true if command
- is alias, export, readonly or typeset.
- * exec.c(execute): case TCOM: don't pass DOTILDE flag when
- expanding t->vars; don't do field splitting/globbing/tilde expansion
- of t->args if t->noexpand is set.
-
- * table.h: re-grouped the struct tbl flags into common, variable,
- funtion, builtin/alias, etc (some values overlap); new flag
- names: KEEPASN (was overloaded with TRACE) and NOEXPAND.
- * exec.c(comexec,builtin): changed TRACE to KEEPASN.
-
- * tree.c(tcopy): when copying t->str, use strsave(), not wdcopy()
- if not copying a TCASE.
-
- * c_ksh.c(c_typeset): added -p flag for POSIX export/readonly.
-
- * eval.c(expand): expand tilde in place; don't do tilde expansion
- on results of substitution (POSIX); only do tilde expansion
- if login name is unquoted (POSIX); don't check for fdo&DOTILDE
- when a word is completed.
- * eval.c(tilde): changed to return home directory of a given login name
- (taking care of null/+/-) (old version copied string, scanning
- for, and replacing, magic tildes).
-
- * exec.c(findcom): don't create commands table entries when
- not inserting; when doing access test of tracked alias,
- check for ISSET, not ALLOC (but test ALLOC before calling afree).
- * exec.c(search): use strcpy() instead of loop.
-
-Mon Aug 15 14:46:58 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_print): added at&t ksh -R flag; deleted -e flag;
- changed to use ksh_getopt().
- * main.c(initcoms[]): changed echo alias from 'print -' to 'print -R'.
-
- * sh.h: new variable procpid; added pid field to struct temp.
- * jobs.c: changed references to my_pid to procpid; deleted my_pid
- variable.
- * io.c(maketemp): initialize pid field from procpid.
- * main.c(remove_temps): only remove temporary files created by
- the current process.
-
-Sun Aug 14 11:47:05 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c: added var field to struct Expand and struct SubType; deleted
- struct SubType.name field.
- * var.c(expand): case OSUBST: use x.var/st->var field to save result
- of global() for use in case CSUBST - this avoids problems with
- x[i+=1] being evaluated twice; check to see if value is being
- assigned to non-variable (eg, ${*:=aja}) or read-only variable.
- * var.c(varsub): set value of xp->var; possibly generate error if
- FNOUNSET set when expanding ${#*}, ${#var}, or ${#array[*]}.
-
- * table.h: added struct tbl.areap field to get rid of lastarea
- problems; deleted lastarea variable; changted all refernces
- to lastarea to var->areap.
- * table.c(tenter): initialize areap field.
- * var.c(arraysearch): deleted area parameter; initialize areap field.
- * var.c(global,local,intval,setint): initialize areap field of vtemp.
-
-Fri Aug 12 10:54:51 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * expr.c: re-wrote e*() functions using single function and table;
- token() now does table lookup; added full C expressions (sans
- pre/post increment, sizeof).
-
- * table.h(INT_U,INT_L): new flags.
- * var.c(strval): handle INT_U.
- * c_ksh.c(c_typeset): add exclusions for INT_U/INT_L;
- add -U option for unsigned (non-at&t ksh).
-
- * var.c(set_array): use global() instead of local();
-
- * var.c(global): when parsing $123, don't limit number to 1000.
-
- * expr.c(v_evaluate): like old evaluate, but assigns result to
- specified variable.
- * expr.c(evaluate): changed to use v_evaluate().
- * expr.c(e0): when parsing literals, use strint() instead of setstr().
-
- * var.c(setstr): when assigning to integers, use v_evaluate() instead
- of strint().
-
-Thu Aug 11 11:33:17 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(strint): don't change anything until number completely
- parsed; don't clear ISSET flag if parsing fails; fail parse
- if non-integer/non-letter found; default base if copying from
- integer variable; set ISSET if parsing succeeds.
-
- * expr.c(tempvar): set vp->val.i to 0.
- * expr.c(token): when skipping a literal number, don't allow _;
- use isspace() to skip.
- * expr.c(asn): use strint()/setstr() instead of setint().
- * expr.c(e0): added unary ~ and + (posix).
-
- * var.c(global,local): always call substitute on contents of [..];
- free sub when finished eval.
-
- * ksh_limval.h: new file.
- * shf.c: use ksh_limval.h.
- * Makefile.in: added ksh_limval.h to HDRS.
-
-Wed Aug 10 10:57:01 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_whence): case CFUNC: print exported/traced/undefined,
- do not print function definition.
- * exec.c(findcom): new argument indicated if functions to be
- autoloaded; changed all calls.
-
- * misc.c(ksh_getopt): added # option modifier for typeset.
- * c_ksh.c(c_typeset): changed to use ksh_getopt(); added
- -L, -R, -Z, -l, -u flags; quote variable values when printing;
- generally re-arranged function.
- * table.h: added LJUST,RJUST,ZEROFIL,LCASE,RCASE; deleted FUNCT.
- * exec.c(findfunc): new function.
- * exec.c(define,findcom): use findfunc(); skeleton autoload code.
- * var.c(typeset): added two arguments for initial field width and
- base; changed all calls; deal with LJUST,.. flags; re-arrange to
- have one loop iterating over array; do readonly check before
- changing attributes.
- * var.c(strval): deal with LJUST,.. flags when getting integers.
- * var.c(setstr): deal with LJUST,.. flags when setting strings.
- * var.c(setstr): deal with LJUST,.. flags when setting strings.
- * var.c(arraysearch,tenter): initialize {new,p}->field to 0.
- * table.h: added struct tbl.field.
-
- * siglist.in: changed signal messages to be more or less the
- same as sys_siglist[]; moved SIGUNUSED before SIGBUS.
- * jobs.c(j_print): assume sigtrap[].mess always valid; use
- sigtrap[].mess directly for stopped processes.
-
- * aclocal.m4(KSH_SYS_SIGLIST): new macro like KSH_SYS_ERRLIST.
- * configure.in: use KSH_SYS_SIGLIST instead of AC_SYS_SIGLIST_DECLARED.
-
-Tue Aug 9 10:28:45 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * version.c: removed RCS logs since version numbers don't match
- release numbers.
-
- * configure.in: added AC_PROG_CPP
- * Makefile.in: added rules for generating siglist.out
- * siglist.in,siglist.sh: new files.
- * trap.c(inittraps,deftraps[]): deleted deftraps[]; initialize
- sigtraps[] directly by including siglist.out.
-
- * tree.h: added EXPRSUB for $((..)), re-numbered defines.
- * tree.c(tputS,wdscan): added case for EXPRSUB.
- * eval.c(expand,alt_count,alt_scan): added case for EXPRSUB.
- * lex.h: added SDDPAREN for $((..)).
- * lex.c(yylex): added case for SDDPAREN.
-
- * lex.c(yylex): case SPAREN: match parenthesis using counter instead
- of pushing/poping states.
-
- * lex.h: re-numbered S* defines to be sequential; added SREREAD.
- * lex.c(yyerror): pop SREREADs.
- * lex.c(getsc_): added case for SREREAD.
- * lex.c(arraysub): changed to save whatever is read and return a value
- indicating if brackets matched; changed all calls.
- * lex.c(yylex): if brackets in array reference are not balanced,
- or if array reference not followed by an =, re-read the input.
-
-Mon Aug 8 21:20:08 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h: fix lseek prototype (from sjg@zen.void.oz.au)
-
- * configure.in,jobs.c: added HAVE_SYSCONF; don't use sysconf() unless
- HAVE_SYSCONF defined (for NetBSD-Feb12 from sjg@zen.void.oz.au).
-
- * jobs.c(put_job): removed PJ_ON_END case and define (not used).
-
-Wed Jul 27 10:19:42 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-5.0.1 distribution
-
- * exec.c(comexec): when doing exec has no command, fall through
- and do variable assignments.
-
- * c_ksh.c(c_let): complain if there are no arguments.
-
- * exec.c(comexec): if XEXEC is set, exit after executing
- (builtin/function) command; deleted FERREXIT code; don't set
- exstat.
- * exec.c(execute): handle FERREXIT; set exstat to rv for all
- cases.
-
- * lex.c,syn.c: changed calls to errorf to yyerror (except the
- on in yyerror()).
- * lex.h(struct source): added errline field.
- * lex.c(yyerror): now a varargs function; if source->errline field is
- non-zero, print it instead of source->line.
- * syn.c(syntaxerr): set source->errline if read EOF in a multiline
- command.
-
-Tue Jul 26 11:22:06 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * lex.h(SYNTAXERR,INP): deleted macros.
- * lex.h(HISTORY): upped to 128 as per POSIX.
- * lex.h,syn.c(multiline): moved from lex.h to syn.c.
- * tree.c(vfptreef): added %R to format I/O redirections.
- * tree.c(pioact): don't output unit more than once; print unit
- only if it isn't the default for the action; print only
- one opening quote for quoted here documents; print <> for
- read-write (was ><).
- * syn.c(zzerr, syntaxerr): replaced zzerr function with new syntaxerr
- function; changed uses of SYNTAXERR to syntaxerr() calls; print
- out the last unused token; if in a multiline command when EOF
- encountered, print token that was unmatched.
-
- * tree.h(TBANG),lex.h(BANG): for POSIX ! keyword
- * tree.c(ptree),exec.c(execute): added case for TBANG.
- * syn.c(restab[]): added ! keyword.
- * syn.c(get_command): added case for BANG (!).
-
- * tree.h(XERROK): new define to allow non-zero exits to be
- ignored in certian circumstances (set -e).
- * exec.c(execute): pass XERROK to recursive execute() calls; set
- XERROK when evaluating conditional part of if/while/until/&&/||.
- * exec.c(comexec): pass XERROK on to functions; don't exit if
- XERROK is set.
-
- * jobs.c(async_pid): new variable needed since async_job may go
- away, but $! should still be expanded.
- * jobs.c(j_async): return async_pid.
- * jobs.c(j_set_async): set async_pid.
-
-Mon Jul 25 14:15:25 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(parse_args): changed to use ksh_getopt().
-
- * c_sh(c_set): deleted call to resetopts() - neither POSIX nor
- at&t ksh touch OPTIND when positional parameters are changed.
- * exec.c(comexec): changed resetopts() call to getopts_reset(1) - this
- is not a proper fix - should declare a local optind.
-
- * misc.c(builtin_getopt,ksh_getopt): renamed builtin_getopt to
- ksh_getopt (shorter); changed to use state structure instead
- of static variables; changed all calls; optionally allow + to
- introduce an option; don't skip lone - (or +) in arguments - set
- optind to point to it.
- * misc.c(ksh_getopt_reset): changed to use state structure instead
- of static variables.
- * sh.h(Getopt): new structure for ksh_getopt() state.
- * exec.c(call_builtin): call ksh_getopt_reset().
- * c_ksh.c(c_getopts,getopts_reset): new getopts implementation that is
- POSIX complient and uses ksh_getopt() routine.
- * var.c(setspec): call getopts_reset() when OPTIND set.
- * getopts.c: deleted file.
- * Makefile.in: deleted getopts.c and getopts.o.
- * options.h(FASCIST): deleted option.
-
-Thu Jul 21 09:52:03 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-4.9+mun.5 distribution
-
- * syn.c(get_command),shf.c(shf_fdopen,shf_sopen,shf_emptybuf):
- added cast to alloc()/aresize() calls.
- * sh.h: changed enum flags_enum to enum flags.
- * misc.c(change_flag): changed type of first argument to enum flag.
- * edit.c(set_editmode): change type of static array to enum flag.
-
- * edit.c(x_init): initialize tty chars to -1, except for werase,
- which is set to ^W.
- * edit(x_mode): split oldedchars structure declaration and
- initalization (some old compilers don't like them combined).
-
- * c_test.c: made -h work like -L.
-
-Wed Jul 20 11:12:52 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * config.h.top: moved compile options into options.h; include
- options.h.
- * options.h: new file.
-
- * c_ksh.c(c_fgbg): if !FPOSIX, set return job exit status.
-
- * jobs.c(j_jobs,j_notify): use JF_REMOVE to flag jobs to delete
- after all notification done (to prevent multiple + or - jobs).
-
- * jobs.c(put_job): new funtion, takes argument to specify where
- to put job; changed all calls to put_job_on_front and
- put_job_on_end to use this; put background processes just
- after stopped jobs (instead of at end) (POSIX).
- * jobs.c(put_job_on_front,put_job_on_end): deleted.
-
-Tue Jul 19 10:33:55 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * aclocal.m4(AC_MMAP): copied from autoconf's acspecific.m4 and
- modified to use the MAP_FILE flag if available.
-
- * misc.c(change_flag): ifdef use of FVI/FEMACS/FGMACS.
-
-Mon Jul 18 13:19:29 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(async): deleted.
- * var.c(global): call j_async() instead of using async global.
- * jobs.c(j_async,j_set_async()): new functions.
- * jobs.c(j_startjob): new function.
- * jobs.c(exchild,j_waitlast): call j_startjob() to start job.
- * jobs.c(j_sigchld): if any jobs aren't started, note signal
- occured and return without calling wait.
- * jobs.c(j_resume): allow un-reported dead jobs to be fg'd/bg'd;
- if backgrounding, set async job.
- * jobs.c(j_jobs,j_notify,j_waitj,check_job,remove_job): re-wrote to
- deal with posix `known processes'.
- * jobs.c(j_lookup()): if number specified, see if it is a lpid first,
- then check for pgrp.
- * jobs.c(new_job): added functionality of j_newjob().
- * jobs.c(j_newjob): deleted function and all calls.
-
- * tty.c(tty_init,tty_close): new functions which initialize
- tty_fd, tty_state and tty_devtty.
- * jobs.c(j_init,j_change): use tty_init()/tty_close(); changed
- references of ttyfd to tty_fd; moved tty_fd, tty_state and
- tty_devtty to tty.h; call tty_init() if !FMONITOR; save/restore
- tty modes on foreground job completion if FTALKING (was FMONITOR).
- * edit.h(X_chars): new structure for tty driver characters (replaces
- ed_erase, ed_kill, ed_werase, ed_intr, ed_quit); moved prototypes
- for emacs.c and vi.c from proto.h to edit.h; changed all references
- to ed_* to edchars.*.
- * edit.c(x_mode): use tty_state instead of cborig; re-initialize
- tty state from tty_state whenever entering xmode; save tty characters
- in edchars structure.
- * edit.c(x_init): now called from main(); initializes edchars, x_cols,
- and calls x_init_emacs.
- * emacs.c(x_init_emacs): changed erase,kill,werase,intr,quit arguments
- to X_chars argument.
-
-Fri Jul 15 10:35:13 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * io.c(restfd): only flush if fd is 2; use dup2() instead of
- fcntl(F_DUPFD) (2 system calls instead of 3).
-
- * ksh_wait.h(WEXITSTATUS): changed mask from 0x7f to 0xff.
-
- * tty.h: added TTY_state structure.
- * tty.c: new file - contains get_tty() and set_tty().
- * edit.c(x_init,x_mode): use get_tty() and set_tty().
- * jobs.c(j_waitj,j_resume): save/restore tty modes of stopped
- jobs, as per POSIX.1, B.2, job control; for foreground jobs,
- save tty state after successful completion, restore tty state
- after non-successful completion (signaled, non-0 exit, stopped).
-
- * misc.c(options): changed "alternations" to "braceexpand" (this
- is what bash uses - no need to invent new option names); changed
- ALTERNATIONS define to BRACEEXPAND, same for FALTERNATIONS to
- FBRACEEXPAND.
-
- * jobs.c(check_job): if process died of SIGINT or SIGPIPE, leave
- job state as PEXITED (not PSIGNALLED).
- * jobs.c(j_print): if printing short notice, ignore SIGPIPE the
- way SIGINT is ignored.
-
- * exec.c(comexec): flush shl_out after 'not found' message.
-
- * c_ksh(c_kill): re-wrote function (again) to handle posix
- options (-s, --, etc.) and posix -l output.
-
- * configure.in: added strcasecmp function check.
- * missing.c(strcasecmp): define strcasecmp function if not available.
- * trap.c(gettrap): use strcasecmp when comparing signal names.
-
- * var.c(global): expand $! to nothing if there haven't been any
- asynchronous processes started yet.
-
- * misc.c(options): added posix option (set automatically if
- POSIXLY_CORRECT env variable is set or if POSIXLY_CORRECT config
- define is defined)
- * var.c(special,setspec): added POSIXLY_CORRECT.
- * config.h.top: added POSIXLY_CORRECT define.
- * main.c(main): set FPOSIX if POSIXLY_CORRECT is defined.
- * POSIX: new file describing what the posix flag controls.
-
-Thu Jul 14 10:53:15 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c,sh.h(killpg): moved killpg define to sh.h.
-
- * jobs.c(exchild): set async variable when starting background
- processes.
- * jobs.c(j_resume): print [job-num] before command when backgrounding;
- print to stdout instead of stderr.
- * c_ksh.c(c_fgbg): call builtin_getopt to skip possible --, complain
- about unknown options.
-
- * jobs.c(held_sigchld): new global variable.
- * jobs.c(j_sigchld): if any jobs aren't started, set held_sigchld and
- return.
- * jobs.c(exchild,waitlast): after setting JF_START, if held_sigchld
- set, call j_sigchld().
-
- * jobs.c(exchild): added/initialized ppid field to struct job; deleted
- global is_child.
- * jobs.c(waitfor): don't wait for a process that isn't a child of
- the current process.
- * jobs.c(j_exit): kill stopped jobs owned by current process only.
-
- * jobs.c(check_job): don't do monitor stuff for XXCOM jobs, but do
- set up notification.
- * jobs.c(j_waitj): added JW_NOTIFY flag to print job notification
- messages.
-
- * jobs.c(exchild): remove !XPIPEI condition - we now close pipe so
- pipeline doesn't have to call waitlast().
- * exec.c(execute): case TPIPE: no need to restore 0 or call waitlast()
- since exchild() handles everything.
-
- * jobs.c(remove_job): set last_job to 0 if we are removing it.
- * jobs.c(waitlast): check if last_job is 0.
-
- * jobs.c(struct job): combined started, waiting, interactive
- field into flags field; added JF_* flags; changed JW_NONOTIFY
- to JW_NOTIFY and changed all calls to j_waitj() to reverse
- this flag.
-
- * jobs.c(exchild): ignore SIGTSTP, TTIN, TTOU for `command` jobs.
-
-Wed Jul 13 09:28:34 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): when checking if FMONITOR set on command line,
- use 127 instead of -1 (signed vs unsigned char problem).
-
- * tree.h: renumbered, XEXEC, XFORK, ... and DOBLANK, DOGLOB, ...
- to use bits in order (instead of 0 5 2 4...).
- * jobs.c(j_init): don't set sigtrap[SIGCHLD].sig_dfl = 1 as a
- forked child may be a shell that needs to trap SIGCHLD.
-
- * tree.h(XPCLOSE,XCCLOSE): flags for close in parent, close in child.
- * jobs.c(exchild): added third argument - a file descriptor - if
- flags has XPCLOSE, close fd in parent, if flags has XCCLOSE, close
- in child.
- * exec.c(execute): pass input side of pipe to exchild() so it can
- be closed in the child.
-
-Tue Jul 12 10:21:57 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * main.c(main): let ignoresig() handle SIGTERM.
- * jobs.c(exchild): let restoresigs handle SIGTERM.
-
- * lex.c(yylex): don't parse array references inside double quotes
- (partial fix).
-
- * emacs.c(x_print): use shprintf instead of shellf so the output
- of bind can be redirected.
-
- * trap.c(deftraps): added SIGINFO (from jconklin@netcom.com).
-
-Fri Jul 8 09:37:51 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-4.9+mun.4 distribution
-
- * Makefine.in: added $(LDSTATIC) to LDFALGS to make static
- linking easier (suggested by sjg); use cp -p when creating
- distributions to preserve file dates.
- * configure.in: set LDSTATIC in Makefile if present in environ
- when configure is run.
-
- * sigact.c(sigsuspend): when calling 4.2bsd sigpause, pass *mask,
- not mask.
-
- * main.c(main): fixed up initialization of PWD (free memory, print
- more informative message).
-
- * misc.c(getcwd): range check backwards.
-
- * c_sh.c(setsig): set sa_flags/sa_mask.
-
- * edit.c(init_editmode),main.c,proto.h: deleted function - not needed
- since VISUAL/EDITOR are special.
-
- * lex.c(set_prompt),table.h: take out PS3.
-
- * c_sh.c(c_umask): handle multiple actions in symbolic mode clauses
- (eg, u+r-w); handle X (eg, o+X); ignore s (eg, u+s).
-
- * shf.c(shf_fillbuf): continue reading if we get an EINTR.
- * shf.c(shf_emptybuf,shf_write,shf_putchar): continue writing if we
- get an EINTR.
-
-Thu Jul 7 10:19:24 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sigaction,sigprocmask: changed NULL third argument to
- (struct sigaction *) 0.
- * sh.h(kshpid): changed type from int to pid_t.
- * proto.h(do_ulimit): removed do_ulimit() declaration.
- * vi.c(complete_word): removed unused variable pos.
- * syn.c(pipeline,elsepart): removed unused variable c.
- * jobs.c(exchild): deleted variable s (assigned but not used).
- * history(hist_init),shf.c(shf_gets): changed variable e to end
- because there is a global e.
- * exec.c(do_selectargs): removed secondarg argument; changed return
- (char *) 1 to (char *) 0; changed all calls.
-
- * io.c(canseek): use fd argument instead of 0.
-
- * lex.c(readhere): don't use fixed sized buffer (line).
-
- * expand.h: changed multi-statement macros to use do {..} while (0);
- changed temporary variable vp to vp__ to avoid lint complaints.
-
- * aclocal.m4(KSH_DUP2_CHECK): define F_GETFD/F_SETFD if not
- already defined.
-
- * etc/profile, etc/ksh.kshrc: replaced with new versions from
- Simon J. Gerraty (sjg@zen.void.oz.au).
-
-Wed Jul 6 10:09:55 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(killpg),configure.in: restored use of killpg() - some
- systems don't understand kill(-pgrp, signal) (ultrix 2.2);
- added test for killpg() in configure.in.
-
- * trap.c(inittraps): changed initialization of sigtraps - was
- using -1 in deftraps[] as end of table marker but some systems
- (eg, ultrix 2.2) define signals with -1 values (SIGPWR).
-
- * Makefile.in(mandir,install): fixed mandir value; added /
- in man installation; prefixed ksh.1 with $(srcdir).
-
- * jobs.c(j_init): Ignore failure of TIOCSETD.
-
- * misc.c(options[]): changed "vicomplete" to "vitabcomplete".
-
- * emacs.c(x_e_putc,x_e_puts,x_debug_info): x_e_putc()/x_e_puts() are
- the x_putc()/x_puts() functions from ksh4.9 edit.c (they got lost
- in the merge); same for x_debug_info(); changed x_e_putc/x_e_puts
- to call x_putc/x_puts.
-
-Mon Jul 4 09:29:05 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-4.9+mun.3 distribution
-
- * main.c(remove_temps): use unlink() instead of remove(); delete
- remove() define.
-
- * sh.h(func_heredocs, struct env): added func_heredocs for here
- documents in functions; added func_parse field to struct env
- - set when a function is being parsed.
- * lex.c(readhere): if e.func_parse, save temp file in func_heredocs.
- * syn.c(get_command): increment/decrement func_parse when parsing
- functions.
- * main.c(remove_temps,reclaim,leave): added remove_temps(); make
- reclaim() call remove_temps(); make leave() clean up function
- here documents.
-
- * aclocal.m4(KSH_TIMES_CHECK): new test - define TIMES_BROKEN
- if times() doesn't exist or if it always returns 0.
- * acconfig.h(TIMES_BROKEN): new define.
- * missing.c(ksh_times): new function.
- * ksh_times.h: new file.
- * c_sh.c,jobs.c: changed <sys/times.h> to "ksh_times.h"
- * c_sh.c,ksh_time.h(CLK_TCK): moved CLK_TCK define from c_sh.c
- to ksh_time.h (needed in missing.c).
-
- * syn.c(get_command): case TIME: don't call pipeline() with CONTIN
- flag.
-
- * c_sh.c(c_times): combined some printfs().
-
- * jobs.c(j_jobs,j_kill,j_resume,waitfor): block SIGCHLD before
- calling j_lookup() or looking at jobs list - avoids potential
- problems with remove_job() being called in signal handler.
-
-Sun Jul 3 11:09:01 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * exec.c(do_selectargs, selread, pr_menu): re-wrote do_selectargs to
- let c_read() to most of the work; deleted selread; make pr_menu
- calculate width/ncolumns each call so select can be used recursively.
-
- * configure.in, aclocal.m4(KSH_TERMIOS_H, KSH_TERM_CHECK): replaced
- KSH_TERMIOS_H with KSH_TERM_CHECK; removed calls to
- tcgetpgrp/tcsetpgrp - there is a separate test for this.
-
- * main.c(main), sh.h: move getcwd() declaration to sh.h.
-
- * eval.c(expand,varsub): added XNULLSUB case to deal with "$@"
- (and "${foo[@]}") when $# (or ${#foo}) is 0.
-
- * eval.c(expand,varsub): removed free_me field - let reclaim() take
- care of it.
-
-Wed Mar 9 00:50:12 1994 Simon J. Gerraty (sjg@zen.void.oz.au)
-
- * var.c (setstr): don't set ALLOC flag if vp.s is NULL.
-
-Thu Jun 30 10:16:44 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_read): ignore null characters; use builtin_getopt()
- instead of explicit parsing; removed -e option (neither at&t ksh
- nor POSIX have this); added -s option (put line in history, at&t ksh);
- if no variable specified, use REPLY (at&t ksh).
-
- * exec.c(do_selectargs): use Xstring macros to deal with saving
- input (was static, growing, buffers); flush shl_out after
- shellf().
-
- * vi.c(expand_word,complete_word): deleted call to free_edstate
- since already done by restore_edstate().
- * var.c(global): in 'if !letter(c)' block, deleted !c from
- 'if (!c || !n[1])' - don't know why it was added since it makes
- no difference to what is returned.
-
- * syn.c(dogroup): removed onlydone argument since it is only
- used in the while/until statements, where "while command; done"
- is not allowed anyway; Changed all calls.
-
- * misc.c(options[]): allow -i to be specified on the command
- line.
-
- * exec.c(iosetup): if stderr (fd 2) is being re-directed,
- re-open shl_out to clear any errors.
- * main.c(quitenv): if restoring fd 2, clear any write errors
- * io.c(initio): initialize shl_out, shl_spare for writing
- (was SHF_GETFL).
-
- * main.c(main): ignore SIGQUIT if talking.
-
-Wed Jun 29 11:11:34 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_sh.c(c_exit): removed jobs/really quit stuff - exit should
- always exit.
- * main.c(shell): made reallyquit a local variable.
- * sh.h(reallyquit): deleted reallyquit
-
- * exec.c(comexec), main.c(main), misc.c(change_flag), jobs.c:
- ifdef'd use of FMONITOR.
- * sh.h, misc.c: define FMONITOR option only if JOBS defined.
-
- * c_sh.c(c_wait): POSIXized: option parsing (of no options);
- return 0 if not given any arguments; deal with multiple arguments.
- * jobs.c(j_lookup): changed second argument to return an integer
- error code, added defines for error codes, added error message
- array; changed all calls to use new conventions.
- * jobs.c(waitfor): returns -1 if job not found; added argument
- to specify if notification messages should be suppressed.
- * jobs.c(j_waitj): added flags argument instead of intr argument;
- added JW_STOPPEDWAIT flag to wait for stopped jobs to complete;
- added JW_NONOTIFY flag to suppress notification of normal
- job termination.
-
-Tue Jun 28 16:13:10 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ksh.c(c_jobs): added -n and -p options, allow job ids to be
- specified for -l option.
- * jobs.c(j_jobs): added new arguments to deal with -n and -p options.
-
- * shf.h(SHF_BSIZE): reduced size to 512 to reduce memory requirements
- (I/O is used mostly for one line messages).
-
- * config.h.bot: removed necessity for tty process groups to define
- JOBS, added necessity of signal blocking/pausing.
-
-Mon Jun 27 21:49:52 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * jobs.c(exchild,j_print,j_waitj,j_jobs,check_job): exchild() - removed
- commented out shf_flush() calls; j_print() - print a space between
- status reports when lflag < 0, changed flag argument to use
- long/medium/short defines; Changed Job.notify field to use
- long/medium/short defines; j_waitj() - instead of calling j_print(),
- set j->notify to print the job; j_jobs() - clear j->notify so user
- won't be notified twice if a job finishes before a jobs command;
- check_job() - put job on front of list only if it is stopped.
-
- * main.c(main): pass flag to j_init() indicating if -m flag set/cleared
- on command line; don't initialize ttyfd.
- * sh.h: delete ttyfd.
- * jobs.c(j_init,ttyfd,check_job): made ttyfd static; re-worked j_init()
- to initialize ttyfd, initialize FMONITOR if not set by command line,
- initialize shl_j for asynchronous job notification;
- check_job() - use shl_j, look through saved fds to find real
- standard-error.
-
- * jobs.c(TTY_PGRP, ttypgrps_ok): modified conditions so job control
- is useful without tty process groups; added ttypgrps_ok flag that
- indicates if tty process groups should be set up; modifications so
- job control useful if ttypgrps_ok not set.
-
- * main.c(main): set FTALKING if 0 and 2 are tty as specified in POSIX
- (was 0 and 1).
-
- * misc.c(parse_args): do POSIX option processing for -A, -c and -o
- (allow -onoglob, -ctrue).
- * main.c(main): don't set up shl_stdout before/after parse_args() since
- lone -o on command line no longer accepted; remove code to allow
- -c with no options to read from stdin (at&t khs does this but POSIX
- requires an option to -c).
-
-Thu Jun 23 17:46:54 NDT 1994 John Rochester (jr@panda.cs.mun.ca)
-
- * trap.c(cleartraps): added special case for clearing trap 0 from
- ksh-4.9 sources.
-
-Thu Jun 23 10:17:03 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(builtin_getopt): print error messages for unknown option,
- missing option; reset state if argv is 0.
- * c_ulimit.c(c_ulimit): let builtin_getopt() print error messages.
- * exec.c(call_builtin): call builtin_getopt() with 0 argv.
-
- * c_sh.c(c_unset): added -v option (POSIX); use builtin_getopt() to
- parse arguments; removed bogus comment about global() and special
- variables; don't allow read-only variables to be unset (POSIX).
-
- * var.c(unset, unsetspec): when unsetting a special variable, call
- unsetspec(); unsetspec() new function.
- * mail.c(mbset, mcheck): check that path is not 0 before calling stat
- (so mbset() can be called with 0 when MAIL is unset); deleted #if 0'd
- declarations of munset, mballoc and maddmsg.
-
- * misc.c(parse_args): pass argv+i+1 to set_array (not argv+i); when
- skipping arguments, leave i just before the NULL.
-
- * exec.c(echo): flush shl_out when done.
-
- * shf.c(shf_close): always used to return EOF.
-
- * trap.c(trapsig): skip error handlers when checking for PARSE or LOOP.
-
-Wed Jun 22 10:24:09 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * sh.h(C_IFSWS), misc.c(initctypes): added and initialized C_IFSWS
- (IFS white space).
- * c_sh.c(c_read): print continuation prompt if line ends in backslash;
- multiple non-white-space IFS chars delimit fields; strip trailing
- IFS-white-space from last variable; watch out for backslash followed
- by EOF.
- * eval.c(expand): only do field splitting on the results of
- parameter/command substition (POSIX, !v7-sh); multiple
- non-white-space IFS chars delimit fields.
-
- * eval.c(expand,alt_expand): removed NOALT tests since it could
- never be set; added return after call to alt_expand() in expand().
-
-Mon Jun 6 10:12:41 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * misc.c(setctypes, initctypes): setctypes - don't allow leading null
- in IFS (IFS="" could cause problems, 0 is already added);
- initctypes - don't use a leading null.
-
- * sh.h, eval.c: move definition of ifs0 from eval.c to sh.h; handle
- null ifs0.
- * var.c(setspec): set ifs0 to first character of IFS.
-
- * lex.c(yylex): when parsing ${..}, array references were not being
- null terminated.
-
-Fri Jun 3 12:28:06 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * var.c(export): changed to use memcpy() instead of loops.
-
- * eval.c(varsub, expand): check for #foo[@] in addition to #foo[*];
- handle ${foo[*]} and ${foo[@]} - added free_me field to struct Expand
- so pointer vector can get freed.
-
- * c_sh.c(c_dot), main.c(include): set up positional parameters if
- any are specified; Added argc,argv args to include(); changed all
- calls to include(); change include() to return 0 or 1 - caller
- can check exstat if desired; c_dot() should return 1 if can't open
- file (was -1).
-
- * c_sh.c(c_brkcont): warning message could call getn() with NULL - save
- original number and print it.
-
- * main.c(main): set $0 to first argument when -c used, ie,
- "sh -c cmd-string this-is-$0 argumernts..."
-
- * exec.c(iosetup): print "cannot open" if IOHERE fails.
-
- * io.c(errorf): set exstat to 1.
-
- * exec.c(search): assume mode is R_OK or X_OK (not 0/1 - 0 is F_OK, we
- want R_OK); changed all calls to pass R_OK/X_OK.
- sh.h: define R_OK,W_OK,X_OK,F_OK if not defined.
- eaccess(): changed all calls to use [RWXF]_OK.
-
- * sh.h(flag[], shell_flags[], Flag()): Renamed flag[] array to
- shell_flags[] to avoid conflicts with other uses of flag; Changed
- all references to flag[] to Flag(); defined Flag() to cast its arg
- to an int (for old pcc based C compilers).
-
- * vi.c(iswordch): use letnum() instead of isalnum || _.
-
- * misc.c(parse_args): call set_array() to deal with -A flag.
- * var.c(set_array): new function.
-
-
-Fri Jun 3 10:22:26 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * eval.c(substitute): afree(s).
-
- * var.c(global,local), sh.h: ARRAYMAX: new define - max index of an
- array; changed 511 constants to this; changed global() and local()
- to use array_ref_len() instead of arraysub().
-
- * expr.c(token): deleted unneeded arraysub() decl.
-
- * lex.c(arraysub), proto.h: made static, removed unused arguments,
- changed callers; removed prototype from proto.h.
-
- * ChangeLog: changed descriptions from func(file) to file(func).
-
-Wed Jun 1 09:17:50 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-4.9+mun.2 distribution
-
- * Makefile.in: added RCSFILES macro and rcs-ci target.
-
- * configure.in: add termio.h to the AC_HAVE_HEADERS() call.
-
- * sh.h, main.c, edit.c, misc.c: use EXTERN for aperm, x_cols,
- builtin_optind and builtin_optarg in sh.h, delete definitions
- in main.c, edit.c and misc.c.
-
- * io.c(maketemp): changed sizeof(PATH) to sizeof(path).
-
- * aclocal.m4(KSH_VOID,KSH_DUP2_CHECK): test that a void * variable
- can be used (Ultrix 2.2 compiler doesn't do this); added ifdef
- HAVE_FCNTL_H to dup2 test.
-
- * aclocal.m4, configure.in, sh.h, tree.c, io.c, shf.c: added
- new config test KSH_PROTOTYPES to check for function prototypes
- (MIPS RICS/os 5.0 C compiler isn't STDC and it can't mix <stddef.h>
- with <varargs.h>). Removed stdarg.h test (now redundant). Changed
- all varargs functions to use HAVE_PROTOTYPES instead of
- HAVE_STDARG_H && STDC.
-
- * eval.c(alt_scan): changed type of endc param from char to int to
- avoid problems with mixing prototype declarations and K&R
- definitions.
-
- * main.c(main), sh.h: added plain getcwd() decl to main(), removed
- ARGS() version from sh.h (some systems have getcwd() but don't
- declare it, some have getcwd() with a size_t arg 2, some have
- an int arg 2).
-
- * misc.c(memset,memmove): changed the second memset() to memmove().
-
- * c_sh.c(clocktos): changed #if CLK_TCK ... to if (CLK_TCK.. since
- CLK_TCK is not always defined to a number (may be a _sysconf())).
-
-Tue May 31 10:49:16 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * configure.in, Makefile.in: added code to set GCC_WARNFLAGS from
- $(srcdir)/Warn-flags if gcc is being used; Took -Wall, etc.
- out of CFLAGS, took -Dno_RCSids out of DEFS. Added install.sh to
- DISTFILES, grabbed copy of install.sh from autoconf (who grabbed
- it from X11R5).
-
- * io.c(errorf,shellf,shprintf),shf.c(shf_fprintf,shf_snprintf),
- tree.c(fptreef,snptreef): don't use ansi decls with old style
- varargs; changed ifdef __STDC__ to ifdef HAVE_STDARG_H.
-
- * jobs.c(j_init): changed getpgrp() call to getpgID(), defined getpgID()
- appropriately for BSD vs POSIX/SYSV getpgrp.
-
- * expand.h, ksh_dir.h, ksh_stat.h, ksh_time.h, ksh_wait.h, shf.h,
- tty.h: added RCS Id's.
-
- * acconfig.h: updated SIGSET_T comment: unisgned int -> unsigned.
-
- * aclocal.m4(KSH_CLOCK_T,KSH_TIME_T,KSH_SIGSET_T): make sure
- type is a word (same fix as was done for more_t, et.al.).
-
- * aclocal.m4(KSH_VOLATILE): check that the compiler can deal with
- volatile pointers (dec/pmax ultrix 4.2 compiler can't).
-
- * misc.c(parse_args): added skelatal code for dealing with -A.
-
- * var.c,proto.h(skip_varname): new function; deleted isassign()
- function, which is no longer called. Changed typeset(var.c)
- to use skip_varname().
-
- * var.c(strint): fail if base is not in the range 2..36; set variable
- base according to first base seen; generate an error if a non-alnum
- char is seen (1^A was the same as 11).
-
- * var.c(strval): for integer variables, output base if != 10.
-
- * sh.h: fixed typo in x_cols define (#defined -> #define).
-
-Fri May 27 16:49:29 NDT 1994 Micharl Rendell (michael@panda.cs.mun.ca)
-
- * made pdksh-4.9+mun.1 distribution
-
- * finished autoconf'ing source code.
-
-Fri May 20 16:47:06 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * c_ulimit.c(c_ulimit) (was do_ulimit.c(do_ulimit)): major rework;
- deal with combinations of getrusage and ulimit, use options at&t
- ksh uses (-SHa..).
- * misc.c(builtin_getopt): yet another getopt routine for builtin
- commands
- * misc.c(parse_args), c_sh.c(c_set), main.c(main): custom option
- parsing routine for command line/set options. Lots of changes
- to main() to incorporate this (easier to follow).
- * c_test.c(c_test): added -e (file exists) test.
-
-Fri May 5 12:16:46 NDT 1994 Michael Rendell (michael@panda.cs.mun.ca)
-
- * numerous changes from old Notes.4-9 file:
- - c_ksh.c:
- - calls to errorf identify what function the error is in
- (eg, errorf("print: bad -u option");)
- - added array stuff (lots of places)
- - table.c
- - lex.c
- - var.c: +arraysearch(), +basename()
- - c_sh.c(c_exit), main.c(shell), sh.h:
- - added reallyquit flag to deal with stopped jobs at exit time;
- only two exit commands (or eofs) in a row will work. in
- shell(), set exstat from execute value.
- - c_ksh.c(c_print):
- - handle \\ at end of string better (don't skip the null)
- - c_ksh.c(c_whence):
- - stop looking as soon as we get a failure
- - pass flag[FTRACKALL] to findcom() instead of 0
- - c_ksh.c(c_alias):
- - print '%s alias not found' if not found
- - c_ksh.c(c_jobs):
- - handle -l option (list pid)
- - c_ksh.c(c_kill):
- - two column -l output to try to keep it on one screen
- - c_sh.c(c_read):
- - skip IFS at start of line "echo ' a b' |(read a b; echo $a)"
- should print a, not nothing.
- - changed EOF check to set all vars to null (same way \n is
- handled)
- - eval.c(comsub):
- - after compile(), return if t is NULL
- - use setfileno() instead of fileno(x) = .. (see sh.h changes);
- - exec.c(iosetup):
- - set exstat if redirect fails
- - exec.c(fd_clexec):
- - check that fd >= 0
- - exec.c:
- - change SHARPBANG ifdef code - everyone uses scriptexec().
- ifdef is put around open/read/parse code in scriptexec().
- [code cleanup]
- - exec.c(search):
- - eaccess test out side of loop: must be regular file to exec it
- (like test in loop)
- - eval.c(expand):
- - added while getc() == 0 in XCOM
- [a null in the output of a file would be treated as eof and
- waitlast would not be called]
- - eval.c(trimsub):
- - '%' subst: use ATEMP, not APERM
- - eval.c(tilde): use Xinit et. al., instead of fixed length buffer
- - getopts.c(getopt): rename getopt() to ksh_getopt() to avoid
- problems with prototypes in system #include files.
- - io.c(fopenshf):
- - call clearerr(fd) if already open
- - use F_GETFL to determine appropriate mode for fdopen() call
- instead of opening everything for read/write
- - use ifdef _FSTDIO instead of ifdef _BSDI (_FSTDIO is used in
- 4.4bsd, NetBSD, FreeBSD and other non BSDI environs)
- - lex.c(ungetsc): don't decrement if str == null, remove nullstr hack
- - lex.c(yylex):
- - \ at eol: call Xfree before goto Again
- - use memset() to clear ident, instead of while loop
- - syn.c(get_command): renamed from command() to get_command() to
- avoid conflicts with command(main.c).
- - sym.c(get_command):
- - allow A=B <alias-name> to work (alias was not being expanded)
- - allow `if .. if .. fi fi' to work (no ; after group terminator
- (fi , esac, done, ), })
- - allow `alias FI=fi ; if .. if .. fi FI' to work (alias
- expansion after group terminator)
- - do not assume resize returns same pointer
- - tree.c(pioact):
- - handle IORDWR case
- - added leading quote for file in IOHERE case
- - var.c(special):
- - add MAILCHECK check
- - var.c(setspec):
- - add MAILCHECK case (doesn't do anything yet)
- - var.c(strint):
- - handle null vp->val.s
- - eval.c(sh.h, expand), misc.c(options[]):
- - enable alternations only if alternations flag set
- (set -o alternations). This is so (att ksh) scripts that don't
- expect alternations won't break.
- - added notify option (asynchronous job completion notification)
- - added vicomplete to enable tab char as file name completion
- char in vi (this is likely to go away - exits for historical
- reasons)
- - jobs.c, main.c, sh.c, trap.c:
- - define/use SIG_HDLR instead of void
- - eval.c(expand): alt_expand() does not return a value so don't test
- it, just return. Also changed decl of alt_expand() to reflect
- reality.
- - emacs.c(x_emacs): first return returns random value (i); change to
- return 0. Also changed the way interrupts are returned to called
- (return -2 means interrupt).
- - c_sh.c(c_brkcont): at&t ksh allows breaks/continues outside of
- loops, 4.9 prints an error and breaks out of all env's (if, case,
- etc.). Fixed to act like at&t (ie, allow bogus continues), except
- a warning message is printed. (Some HP-UX shell scripts actually
- have continues outside of loops...)
- - main.c(shell): parameter s should be volatile as it is used after a
- setjmp.
- - edit.c(promptlen): handle tabs, backspaces...
- - cleaner fix to the ^C/source->line problem: in pprompt(lex.c),
- convert ! to source->line+1 (same in promptlen(edit.c)), increment
- source->line after a (non-empty, non-eof) line has been read
- (before call to histsave()). To be pedantic, also adjust
- position of source->line++ in SHIST in case PS9 is ever used.
- Remove code in shell(main.c) that does the source->line--,
- remove the source->line-- for eof and empty line in from
- getsc_(lex.c).
- - trap.c(sigtrap[]): do not depend on signal number matching position
- in initialization array. Use second table in which order does not
- matter to initialize sigtrap[] array. Easier to read/port, and
- generally less fragile. requires call to inittraps() in main.c.
- - trap.c(cleartraps): need to clear Sigact flags/mask after use
- (actually, declare a local struct sigact and use that instead of
- Sigact)
- - exec.c(execute): case TSELECT: no USE_SIGACT code for call to
- signal(); case TPIPE: don't call waitlast() if XXCOM since
- waitlast() will be called in expand(); 4.9 code that set and
- then cleared the XEXEC flag in the TPIPE case not added since
- it was ifdef'd out, also the code to not exit if XPIPEI flag
- set was not added; 4.9 XXWHL flag not added (don't flush stdin
- if in a while loop) since this problem fixed (I hope) by shf stuff.
- - ttyfd{sh.h/lex.c}: use EXTERN/_I_ to initialize ttyfd. Remove from
- lex.c
- - interrupted reads: instead of testing sigchld_caught after reads
- fail, continue them if errno == EINTR.
- - edit.c(x_getc): check for EINTR, and continue reading if so.
- - lex.c(getsc_): check for EINTR, and continue reading if so.
- (don't check return of x_read() - check has already been done)
- - exec.c(selread): check for EINTR, and continue reading if so.
- - history changes:
- - history.c:
- - histrpl(): bounds check doesn't take global flag into
- account - move check into loop and past loop.
- - c_fc(): if pattern is the empty string, histrpl()
- goes into infinate loop. Start searching for = after first
- char (this is what at&t ksh seems to do).
- - c_fc(): `fc -l first' should list at most 16
- commands according to at&t manual.
- - findhist(): re-wrote: shorter, easier to follow. Now
- returns an int. (used only by vi code)
- - use COMPLEX_HISTORY's allocated history array in
- EASY_HISTORY: common init_histvec(), sethistfile() and
- sethistsize() functions.
- In the process, hist_open() went away. Use histsize
- instead of HISTORY in hist_init() and hist_finish()
- #ifdefs in lex.h, table.h,
- var.c disappear, history variable definitions in lex.c
- disappear.
- - hist_init(COMPLEX_HISTORY): move hstarted = 1 to after the
- FTALKING test.
- - hist_finish(): don't open hname if its null
- - histrpl(): made static, use ARGS in decl
- - made current and curpos static
- - changes to allow embedded newlines in commands:
- - histsave(): trash only trailing newline
- - hist_init(): read in null terminated lines instead of
- newline terminated
- - hist_finish(): write null terminated lines
- - make multiple line command appear in single history line
- (EASY_HISTORY only):
- - added histappend() to append new command to last
- command
- - added call to histappend() in getsc_(lex.c) (also: only
- adjust source->line if not multiline).
- - lex.h:
- - remove second decl of history if !EASY_HISTORY
- - tree.c(ptree): case TCOM: check if t->vars or t->args is 0
- - vi.c(x_vi): ^D anywhere in command line is eof ($ foobar^D exits).
- at&t ksh ignores ^D in middle of line
- - edit.c:
- - don't need to include string.h - included in stdh.h
- - init_editmode(): in at&t ksh, VISUAL takes precenence over
- EDITOR, so put it first. Also, at&t ksh doesn't use FCEDIT so
- trash it.
- - moved initialization of ed_* from x_read() to x_init() since
- thats where they are set from tty structs.
- - x_init(): set ed_intrc, ed_quitc for _BSD & _POSIX_TERM ifdefs
- - send output to shlout (instead of stdout - at&t ksh writes to
- stderr)
- - made x_do_init static.
- - exit.c(x_getc), lex.c(yylex): restart interrupted reads in
- x_getc(), changed read-restart in yylex() to only effect call
- to read().
- - syn.c(thenpart): then THEN is not optional - generate a syntax
- error if no THEN. (ie, `if true ; fi' is not legal).
- - syn.c(get_command): don't accept keywords after re-directory (eg,
- `> /dev/null if true ; then echo hi ; fi' is not legal).
- - vi.c: handle \ and ^[ in command mode ala at&t ksh (filename
- completion)
- - syn.c(thenpart), syn.c(elsepart): calling token(0) when they want a
- keyword (always worked 'cause tpeek() is always called before, with
- the keyword flag). Fix: call token(KEYWORD|ALIAS) (at&t ksh does
- alias expansion here). Question: pass CONTIN as well?
- - syn.c(get_command): LWORD/MPAREN case: do alias expansion when
- getting open brace ({). CASE case: ditto for `in' and `esac'.
- IF case: ditto for `fi'. FUNCTION case: dito for open brace ({).
- - syn.c(dogroup): alias expansion when getting `do' and `done'.
- - syn.c(wordlist): alias expansion when getting `in'.
- - syn.c(nested): alias expansion when getting `)', `}'
- - syn.c(casepart): alias expansion when getting `esac' or `;;'.
- Also removed use of cf variable - it does nothing.
- - eval.c(expand): case CSUBST: '#'/'%' - increment st so nested
- substitutions work.
- - var.c(typeset): INTEGER && no assignment: memory was being freed
- and then used (there was even a comment saying it was being
- done...)
- - lex.c, lex.h, exec.c, main.c:
- added shf_{open,fdopen,close,gets}() routines so stdio wasn't
- used. When reading a command file under osf/1, stdio would
- mess up the read pointer when a child exited: the exit flushed
- all open files and flushing a file open for reading changes the
- current read position (does a seek to where the next char would
- be read). This position is then used by the parent process,
- who thinks the read position is still at the end of the buffer
- it read.
- - c_sh.c:
- use shf_*() routines avoids two bugs in read:
- - on sunos 4.1.3, a read would gobble up a stdio buffer and
- never put it back (ie, lseek backwards). Neither a
- fflush() nor a fseek(x, 0L, 1) fixed the problem.
- (see Bug 26)
- - on linux, stdio knows its current offset and seeks there
- before reading a buffer. This causes grief when the shell
- replaces file descriptors behind stdio's back (ie, all the
- time).
- $ read x << EOF
- hi
- EOF
- $ cat > /dev/tty << EOF
- 1:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- 2:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- 3:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- EOF
- $
- the cat picks up reading at the offset where the read
- command left off (ie, at bcdefg... - the 1:a are skipped).
- - exec.c(comexec): built-in c_exec && no args: close the saved fd's
- (were thrown away). Also, set close-on-exec flag for fd's > 2,
- as per at&t manual.
- - lex.c(yylex): only accept 1 digit before a redirection (eg, 1> is
- ok, 1abc> is not)
- - exec.c(iosetup): only accept 1 digit after a dup-redirection
- (eg, >&1 is ok, >&1abc is not)
- - exec.c(iosetup): use O_APPEND flag for >> redirections; use O_CREAT
- flag for <> redirections. (re-organized to accumulate open() flags
- and do one open() call); changed error message to know about dup
- failing.
- - c_sh.c(c_umask): umask should have leading 0 - doesn't when umask
- has 3 digits (eg, `umask 222; umask' prints 222 instead of 0222)
- - c_sh.c(setsig): declare local struct sigaction and use it so
- sa_flags doesn't have to be cleared (also to try to keep away from
- global vars).
- - main.c(main):
- - don't go set TALKING if name starts with -.
- - read $HOME/.profile (not .profile)
- - main.c(main): re-wrote option parsing code
- - edit.c(init_editmode): don't check FCEDIT
- - if set -o vi/emacs/gmacs on command line, don't set edit mode from
- FCEDIT/EDITOR/etc.
- - var.c(setspec): FCEDIT should not magicly change edit mode; VISUAL
- and EDITOR should (EDITOR only if VISUAL is not set)
- - changed noclobber char from ! to | (this is what at&t ksh uses)
- - exec.c(iosetup): use O_EXCL flag if FNOCLOBBER set and >| not used
- - c_sh.c(c_set): don't clear FERREXIT if FTALKING is set; although
- some ksh manuals say -e is ignored for interactive shells, they
- all seem to honour the -e flag for interactive shells.
- - vi.c: reset history position to the end after a line is modified
- - `(( 1 + 2 ))' no longer prints `+: bad expression'!
- - lex.c(yylex): added parenthesis counting so `(( ((1+2)) ))' no
- longer generates a syntax error
- - expr.c(intvar): if strint() fails, give bad number error
- (`let 1+foo' should fail)
- - `echo hi 1abc123> /dev/tty' no longer interpreted as
- `echo hi 1> /dev/tty' (is `echo hi 1abc123 > /dev/tty')
- - `echo hi 1<> /tmp/does-not-exist' now works (used to say cannot
- open)
- - c_sh.c(c_umask): umask now takes symbolic arguments (g-r, +w, etc.)
- - c_ksh.c(c_whence): pass flag[FTRACKALL] to findcom() instead of 1.
- - `echo hi >< bar' now produces an error
- - jobs.c(j_lookup): now checks for ambiguous job specifications;
- callers now get an error message.
- - c_ksh.c(c_fgbg): multiple jobs can be specified
- - emacs.c(x_transpose): move past transposed chars like (gnu) emacs
- does
- - main.c(main): don't copy initcoms (messes up memory allocated for
- shf_iob[] in initio(), should not be necessary)
- - main.c(main), var.c(import), var.c(typeset), c_ksh.c(c_alias),
- expr.c(token), misc.c(strnsave): added strnsave() function; use it
- instead of writing nulls in the middle of strings; main() no longer
- copies startup commands before executing them.
- - vi.c: wbuf[] no longer a fixed size (was hard coded to 80 chars).
- - alloc.c(aresize): if passed a null pointer, don't free it
- - expand.h: restored usage description and NOTE from previous version
- - alloc.c, table.h, table.c:
- - changed struct fields named `free' to nfree (struct table) and
- freelist (struct Block) to allow memory debugging
- (involves #defining free)
- - main.c(main): smart initialization of PWD (ensures it is always
- valid).
- - lex.h, table.h, tree.h: removed redundant function declarations
- (were also in proto.h)
- - sh.h: increased LINE from 256 to 1024
- - main.c(include), sh.h(E_INC), c_sh.c(c_return): added hack so a
- return in a included file returns to the includer instead of
- exiting the shell. Very useful in $ENV scripts and profiles,
- eg, so the whole script does not have to be parsed for
- non-interactive shells.
- This is not compatible with the at&t ksh, whose man page says
- return is the same as exit outside of functions. May be modified
- in the future. (note that at&t ksh parses a .'ed file before
- executing anything, so a premature return would not speed its
- parsing, which is why the return hack was added to pdksh)
- - exec.c(iosetup): don't save fd if already saved (and don't
- generate an error)
- - exec.c(findcom): in if (..ALLOC && eaccess), test for
- ALLOC redundant - always call afree()
diff --git a/bin/ksh/IAFA-PACKAGE b/bin/ksh/IAFA-PACKAGE
deleted file mode 100644
index dbd1af45086..00000000000
--- a/bin/ksh/IAFA-PACKAGE
+++ /dev/null
@@ -1,18 +0,0 @@
-$OpenBSD: IAFA-PACKAGE,v 1.7 1999/07/14 13:37:23 millert Exp $
-
-Title: pdksh
-Version: 5.2.14
-Description: A public domain implementation of the Korn shell (ksh88),
- a UNIX command line interpreter / scripting language; the few
- missing ksh features are being added and the shell is being
- POSIXized.
-Author: (Eric Gisin), (Charles Forsyth), (John R MacMillan),
- sjg@zen.void.oz.au (Simon J. Gerraty),
- michael@cs.mun.ca (Michael Rendell), (plus many others)
-Maintained-by: michael@cs.mun.ca (Michael Rendell)
-Maintained-at: ftp://ftp.cs.mun.ca:/pub/pdksh/
-Platforms: Written in C, runs on most UNIX boxes (uses GNU autoconf;
- works best in a POSIX or BSD environment). Also runs on OS/2
- and (using cygwin32 package) on win95/NT
-Copying-Policy: Freely Redistributable (mostly public domain, some copyrighted)
-Keywords: pdksh, ksh, Korn, shell, command line interpreter
diff --git a/bin/ksh/NEWS b/bin/ksh/NEWS
deleted file mode 100644
index 93faac92178..00000000000
--- a/bin/ksh/NEWS
+++ /dev/null
@@ -1,662 +0,0 @@
-Version 5.2.14
-
-* bug fixes
- * test: -nt(-ot) now succeed if second (first) file doesn't exist and the
- other does.
- * time: now accepts the -p (posix) option.
- * vi: failed redo (.) commands no longer return the line to the shell.
- * emacs: bind commands in .profile/$ENV no longer overridden by tty
- settings.
- * heredocs: now saved in memory to avoid temp files disappear too soon.
- * time: commands at the end of a pipeline can now be timed.
- * on startup: MAILCHECK,TMOUT,SECONDS values from environment are honoured.
- * trap: exit traps now executed in subshells (without explicit exit call).
- * eval: if given empty command while in non-posix mode, exit status is
- that of last command substitution (if any).
- * trap: if first argument is "exit", it is taken as a command not a signal.
- * pwd: config test & code to work around bug in hpux 10.x getcwd().
- * RANDOM: seed based on both time and pid; different sequence in sub shells.
- * typeset -f: now pretty-prints $(..) and $((..)) correctly.
- * fixed bug in memory allocation which can lead to core dumps.
- * set -o: no longer prints options that have no names.
- * emacs: <esc>. in very fist command no longer dumps core.
- * .: can now dot non-regular files (eg, /dev/null).
- * parsing: bar(); no longer dumps core when function bar is run.
- * variable substitution: ${#array[*]} now prints number of set elements
- in the array (used to print largest index, not what ksh88 did).
- * job control: resuming suspended gnu su no longer hoses su'd shell.
- * job control: fixed possible core dump when waiting for jobs.
-
-* LINENO variable now supported.
-* port to cygwin environment on win95/winnt.
-
-
-Version 5.2.13
-
-* bug fixes
- * functions: $0 in sh-style functions is now the same as the shell's $0.
- * .: fixed possible core dump on clean up.
- * test: a lone -t argument now does a isatty(1) test if not in posix mode.
- * alias: PS2 no longer printed when expanding alias foo="cmd; ".
- * set/typeset/getopts: can have options prefixed with both + and -.
- * typeset -f: now reproduces functions correctly ("function F" vs "F()").
- * alias: options can start with +.
- * set -A: a -- marking end of options is now skipped.
- * errexit option (-e) ignored when reading profile and $ENV files.
- * test: '-x f' now fails for root if f is a file and has no x bits set.
- * $_: set to last arg in interactive shells only.
- * PATH: if $PATH not set on startup, it is set to the default path.
- * extended globbing: allow (pat|pat) within @(...) and ${foo#...} patterns.
- * emacs: ^[_ now behaves as it does in at&t ksh (word from _last_ command).
- * MAIL/MAILCHECK: fixed bug that prevented the `new mail' messages.
- * ${..%..} and ${..#..} now work if compiled as sh.
- * sh: fd's greater than 2 are passed on to executed commands.
- * syntax: accepts "if (( 1 )) then" (also [[ ]]): no ; required before then.
- * substitution: accepts (and ignores) leading : in %, %%, #, ## substitions.
- * .: doting directories no longer allowed.
- * editing: completion after "cmd " now completes files (was command).
-
-
-$OpenBSD: NEWS,v 1.15 2007/08/02 11:05:54 fgsch Exp $
-
-Version 5.2.12
-
-* bug fixes
- * editing: shell recognizes window resizes on Dec alphas (config problem).
- * alias: no longer dumps core if alias is in a command substitution.
- * alias: everything after ;\n or \n\n was ignored in aliases.
- * exec: temp files used by here docs in functions now cleaned up on exec.
- * possible core dump when cleaning up environment fixed.
- * vi: set -o vi-show8 now does what it was supposed to do (cat -v like).
- * job control: process group synchronization (needed on systems with
- broken setpgrp()) now works when the pipeline contains built in commands.
- * vi: if set -o vi-tabcomplete, tab works in command mode as well.
- * set/typeset: unset parameters are only reported if they have attributes.
-
-
-Version 5.2.11
-
-* bug fixes
- * aliases: expansion was reading an extra character (bug added in 5.2.10).
-
-
-Version 5.2.10
-
-* bug fixes
- * parsing: handling of backslash-newline fixed (esp. in here documents).
- * read: prints prompt if non-interactive and input is a tty.
-
-
-Version 5.2.9
-
-* bug fixes
- * config: using LDSTATIC no longer generates config error.
- * config: can compile as sh again (--enable-shell=sh).
- * config: should compile on machines with broken "gcc -g"
- * config: fixed test for broken S_IFIFO.
- * config: fixed test for getwd() routine.
- * config: better NeXT support (signal list generated correctly, clock_t
- type detected, enable job control in rlogin sessions)
- * parsing: assignments containing brackets ([]) not treated as commands.
- * editing: terminal column width determined correctly on startup.
- * vi: long prompts truncated (more or less) correctly.
- * file completion: files of the form ~user (no /'s) expanded correctly.
-
-* at&t ksh method for delimiting hidden characters in prompt added (i.e.,
- start prompt with non-printing char and \r, use char to delimit esc codes).
-
-
-Version 5.2.8
-
-* bug fixes
- * configuration: handle FreeBSD's strange S_ISSOCK.
- * test: added == operator.
- * configuration: fixed opendir/dirent usage.
- * redirections before subshells handled correctly.
- * COLUMNS/LINES are no longer exported when they are automatically set.
- * mail checks and PS1/PS4 expansions removed if compiled as sh.
- * subcommands in PS1 no longer generate bogus warning messages.
- * environment variables not longer messed up on 16-bit machines.
- * unset: now returns non-zero if variable/function isn't set.
- * select: only prints menu first time, if REPLY is null or on blank line.
- * check for `cannot execute' improved, error message says why.
- * typeset: now reports variables with attributes but now value.
- * vi/emacs file completion: does directory listing on zero length names.
- * arithmetic: non-numeric parameters expanded recursively.
- * arithmetic: identifiers in unevaluated part of ?:,&&,|| parsed correctly.
- * functions: unsetting a function within itself is now safe.
- * arrays: unsetting element 0 of an array no longer kills the whole array.
- * co-processes now behave like ksh93 co-processes (and less like ksh88).
-
-* functions declared with "function foo" are treated differently (from those
- declared with "foo()"): $0 is (not) set to the function name, assignments
- before function calls aren't (are) kept in the parent shell.
-
-* vi: added vi-esccomplete option for people who want ESC-ESC completion.
-
-* vi/emacs: now notice window size changes (but not while editing a line).
-
-* emacs: <esc># now does the comment/uncomment thing.
-
-* arithmetic: ++, -- and , added.
-
-
-Version 5.2.7
-
-* bug fixes
- * vi: commands can be longer that 16 chars...
-
-
-Version 5.2.6
-
-* bug fixes
- * break/continue: if too big a number is given, last enclosing loop is used.
- * set: set +o now generates a set command that can be saved and executed.
- * COLUMNS/LINES are now exported when they are automatically set.
- * emacs: completion: space not added after directory names.
- * vi: # command inserts # after each newline; # on commented line
- undoes the commenting.
- * some regression tests made less sensitive to their environment.
- * should compile on os/2 again.
-
-
-Version 5.2.5
-
-* bug fixes
- * configuration: if sig_setjmp() being used, use sigjmp_buf.
- * configuration: test for times() fixed.
- * configuration: ANSI usage of setjmp() and offsetof().
- * echo/print: octal number in \ sequence must start with a 0.
- * echo: don't treat a lone minus as an option.
- * typeset -f: correctly prints functions with select statements.
- * vi: / with no pattern repeats last search.
- * vi: repeat counts no longer effect file completion/expansion.
- * vi: tab-completion now also works in command mode.
- * emacs/vi: ^O key now read as ^O on suns/alphas (was eaten by tty driver).
- * emacs: now has file expansion (^[*).
- * emacs: ^O goes to next command, not next next command.
- * COLUMNS/LINES: environment variables now set on start up.
- * variables: command line assignments can't change readonly variables.
- * arithmetic: giving multiple bases (5#4#3) no longer allowed.
- * arithmetic: when assigning a non-integer variables, base no longer shown.
- * history: fixed replacement bug introduced in last release.
- * history: -1 refers to the previous command, not current fc command.
- * parsing: correctly handles command substitutions starting with a newline.
-
-* full command completion added (both vi and emacs).
-
-
-Version 5.2.4
-
-* bug fixes
- * PS1 imported from environment again.
- * vi handles prompts with embedded newlines.
- * errors redirecting stderr aren't lost.
- * redirection errors for <&n no longer reported as to >&n.
- * don't do globbing on re-direction targets if not interactive (POSIX).
- * pattern matching in [[ foo = foo*bar ]] now works again.
- * HUP signals are passed on to jobs running in the foreground.
- * $? now valid (ie, not 0) in trap handlers, `...` expressions, etc.
- * noclobber doesn't effect redirections to non-regular files (eg, /dev/null)
- * \newline in here-document delimiters handled correctly.
- * typeset -f now reports unloaded autoload functions properly.
- * ~,~+,~- are not expanded if HOME,PWD,OLDPWD are unset.
- * vi completion/expansion: * not appeded if word contains $.
- * cd: error message contains correct directory string.
- * vi expansion list: printed in column form ala at&t ksh.
- * ^C while reading .profile/$ENV nolonger causes shell to exit.
- * option errors for build-in commands now include command name.
- * emacs completion/expansion: ' and " are treated as word delimiters.
- * fc: replacements (a=b) no longer truncates the command.
- * alias: alias -t -r now cleans out the tracked alias table.
-
-* compile-time configuration changed: configure script --enable-XXX options
- replace the old options.h file. Use "configure --help" for information
- on what the options do (they are basicly the same as what was in the
- options.h file). Shell can be configured as a (almost) plain bourne
- shell using the --enable-shell=sh (also generates appropriate man page).
- Installed name of program (ksh or sh) can be modified using configure's
- --program-* options.
-
-* ulimit: added -p (maxproc) option.
-
-* case statements can use the old syntax of {,} instead of in,esac.
-
-* extended file globbing added (eg, f*(bar|Bar) matches f, fbar fBarbar, etc).
-
-* trim expressions can be of the form ${parameter#pattern1|pattern2|...}.
-
-* if compiled as sh, $ENV included only if posix option is set.
-
-* vi: U command added (undo all changes on line).
-
-* the Bugs script has been replaced by a new regression testing system, kept
- in the tests/ directory (contains a perl script which sets up a test
- environment and runs tests, and a bunch of tests).
-
-
-Version 5.2.3
-
-* bug fixes
- * arrays: set -A and unset now unset whole array.
- * history(complex version): fixed core caused by uninitialized hist_source.
- * getopts: will continue parsing options if called after error.
- * getopts: doesn't print shell name twice in error message.
- * posix: if posix option is set, $0 is always the name of the shell.
- * history: "fc -s foo" now finds foo if it is the most recent command.
- * let: expression errors no longer cause scripts to exit.
- * PS1: does not go into infinite loop if there is an expansion error.
- * configure: memmove/bcopy test has a change of working now.
- * configure: check for flock(), undefine COMPLEX_HISTORY if not found.
- * substitution: tilde substitution works in word part of ${var[-+=?]word}.
- * history: "fc <number>" now edits <number>, not <number> to most recent.
- * cd: two argument form works again.
- * special commands taking assignments (alias,set,etc.): field splitting,
- file globbing, etc. suppressed only for args that look like assignments.
- * command: -V now finds reserved words.
-
-* added support for Korn's /dev/fd tests
-
-* new compile time option: DEFAULT_ENV - if defined, it names a file to
- include if $ENV is not set.
-
-* test -o option: if option starts with a !, the test is negated. The test
- always fails if the option doesn't exist (so [ -o foo -o -o !foo ] is true
- iff option foo exists).
-
-* new option: set -o nohup (currently on by default) - if set, running jobs
- are not kill -HUP'd when a login shell exits; if clear, they are. In
- future, this will be clear by default (to act like at&t ksh) - if you don't
- (won't) like this, add "[ -o !nohup ] && set -o nohup" to your .profile.
-
-Version 5.2.2
-
-* bug fixes
- * included c_test.h in distribution (opps).
-
-Version 5.2.1
-
-* bug fixes
- * emacs: buffer no longer overflowed when completing file names/commands.
- * emacs: <ESC><tty-erase-char> now bound to delete-back-word (was ...-char).
- * emacs: ignores a space char after ^V (version), as in at&t ksh.
- * emacs: ^O bound to newline-and-next, ^X^Y bound to list-file.
- * emacs: emacs words now include underscore.
- * vi: set -o markdirs, directories and ^[= now get along.
- * cd: -P no longer leaves .. and . in PWD.
- * cd: if CDPATH set and can't cd, error doesn't contain any of CDPATH.
- * cd: sets PWD properly, on machines without getwd().
- * configuration: unistd.h test fixed (include sys/types before dirent.h).
- * configuration: detects memmove/bcopy's that don't handle overlaps.
- * [[ ... ]] does lazy evaluation (eg, [[ ! -f foo || $(<foo) = bar ]] does
- not evaluate $(<foo) if foo doesn't exist).
-
-
-Version 5.2.0
-
-* bug fixes
- * vi: completion now allows globbing characters.
- * vi: can deal with very long prompts.
- * vi: . (redo) works after j, k, return.
- * vi: [dyc]% causing backwards motion now gets correct start/end position.
- * vi: complete_word (<ESC>\) no longer rings bell on ambiguous matches.
- * vi: globbing doesn't append * if last component of file has globbing chars.
- * emacs: most commands now take arguments, arguments can be multi digit.
- * emacs: newline-and-next command works more correctly.
- * after set -u, trimming substitutions no longer automatically fail.
- * set -i no longer reports an internal error.
- * FPATH: no longer incorrectly complains about function not being defined.
- by a file; when it connectly complains, shell name in error is correct.
- * set -a; set -o allexport: these now do something.
- * shell deals with non-blocking input (clears non-blocking flag).
- * autoconf: fixed memmove/memcpy tests.
- * ! translation in prompt now done before parameter substitution.
- * siglist.sh works around bug in bash 1.4.3.
- * correct positional parameters accessible in local assignments.
- * (sleep 100&) no longer waits for sleep to complete.
-
-* fc -s option added (same as -e -).
-
-* vi: ^V command (version) added.
-
-* vi: @<char> macros added (@X executes vi commands in alias _X).
-
-* emacs: bind -l lists all command names.
-
-* emacs: goto-history command added.
-
-* emacs: search-char function changed to search-char-forward;
- added search-char-backward (bound to <ESC>^]).
-
-* cd and pwd take -L and -P options; added set -o physical option
- (PWD,OLDPWD no longer readonly).
-
-* new command line -l option tells shell it is a login session.
-
-* os2 changes completed.
-
-* uses autoconf 2.x (was using 1.x).
-
-Version 5.1.3
-
-* bug fixes
- * fixed bug in arithmetic expression evaluation (||,&& caused core dump).
- * ulimit code now uses rlim_t or quad_t, if appropriate.
- * vi: file completion in command mode of single character filename works.
- * vi: file completion with markdirs set resulted in two trailing /'s.
- * vi: completion/expansion/listing acts like at&t ksh when expand fails.
- * vi: ~ takes count.
- * lines from history file are no longer negative (easy history).
- * Makefile now uses manual extension consistently.
- * fc now allows out of range relative (negative) numbers.
- * functions with elif now printed correctly.
- * FPATH now searched if PATH search fails, as in at&t ksh.
-
-* typeset -f output is readable (and more correct)
-
-* compiles under SCO unix
-
-* more os/2 changes integrated
-
-Version 5.1.2
-
-* bug fixes
- * for i; do ...; done now accepted.
- * leading non-white-space IFS chars no longer ignored (now delimit fields).
- * fixed globbing code so echo /usr/*/make works.
-
-Version 5.1.1
-
-* bug fixes
- * { ..;} allowed instead of do ..;done in for/select loops
- * EOF after ; or & no longer causes syntax error
- * complex history: when shrinking history file, keeps inside buffer space.
- * vi editing: `v' on modified line no longer changes command numbering.
- * ^C in vi/emacs no longer prints two newlines.
- * long arguments (> 255) with globbing characters don't cause core dumps.
-
-* new (un)option, KSH, which compiles out ksh code (for producing minimal sh).
-
-* os/2 changes partly merged.
-
-Version 5.1.0
-
-* bug fixes
- * problem caused by _POSIX_VDISABLE on BSDI machines fixed
- * exit status set to 127 if command file could not be opened
- * profile files processed if basename argv[0] starts with (was $0)
- * PWD now imported properly from environment.
- * emacs code now either uses dynamic buffers or does overflow checking.
- * emacs forward-word and delete-forward-word now work like other emacs's.
- * ^C/^\ in vi/emacs work like at&t ksh (prompt reprinted, even if trapped).
- * history number to command mapping now constant (numbers used to change).
- * configuration: BSD tty now used on ultrix (avoids type ahead problem)
- * eof in the middle of multiline commands now ignored if ignoreeof set.
- * vi space command now works again.
- * pointer mismatch compiler warning for waitpid() call dealt with.
- * emacs internal memory error in command completion fixed.
- * autoloaded functions now work first try.
- * SECONDS parameter now acts like in at&t ksh.
-
-* sense of vi-show8 option changed: 8-bit characters are printed as is by
- default; turning on vi-show8 now causes chars with 8th bit set to be
- prefixed with M-.
-
-* missing sections in man page added (now basicly complete)
-
-* emacs ^V command added: prints ksh version
-
-* vi g command added: moves to most recent history
-
-Version 5.0.10
-
-* bug fixes
- * [[ ]] construct unbroken.
- * the newline after a here document marker is now read properly.
- * blank lines no longer cause $? to be set to 0.
- * mail checking now uses atime/mtime instead of size.
- * changing attributes of exported parameters no longer causes core dump.
- * the last command in a file does not have to end in a newline.
- * empty expressions now treated as 0 (previously generated an error).
- * nul bytes stripped from input.
- * 0241 (M-!) in a command substitution no longer lost.
- * when read used in startup file, line continuation no longer causes crash.
- * very long commands in history no longer cause vi to overwrite memory.
- * easy history: when saving history, avoid going past the end of history.
- * emacs mode no longer entered if EDITOR/VISUAL set to null string.
- * command -p disabled in restricted mode.
- * closed file descriptors are re-closed after a redirection.
- * lone [ (test command) no longer causes globbing code to search directory.
- * if TIMES_BROKEN is defined, ksh_times no longer recurses infinitely.
- * `r r' no longer repeats r command forever.
- * make depend no longer generates backslash followed by a blank line.
- * globbing code now deals with symlinks that point to non-existent files.
- * if the ] is missing in a pattern, the [ matches the [ character.
- * syntax errors in test no longer have two newlines.
- * in vi, G now goes to the oldest history (was newest).
- * configuration: test for sys_siglist now harder for optimizers to break.
- * configuration: look for clock_t in sys/times.h.
- * configuration: use _SIGMAX, if available, for # of signals.
- * SIGHUP now causes builtin read command to exit.
- * wait builtin now returns whenever a trapped signal occurs as per POSIX.
-
-* v command now works in vi; anchored searches now work in vi mode (/^ptrn);
- multi-line commands displayed correctly by history.
-
-* echo is now schizophrenic: accepts -n/-e/-E and backslash sequences.
-
-* test -H file added (checks for context dependent files on HPs).
-
-* set -o gmacs and markdirs honoured.
-
-* ansi arrow keys in default emacs key bindings.
-
-* ulimit now takes arithmetic expression (as per Korn book).
-
-* co-processes changed to be more compatible with at&t ksh.
-
-Version 5.0.9
-
-* bug fixes
- * FOO is put in the environment for FOO=bar exec blah.
- * compiles under QNX and with dmake.
- * the file pattern [!a--]* is now invalid (POSIX) (used to match everything)
- * echo "${foo:-"a"}*" no longer the same as echo a*.
- * alternation (brace expansion) fixes:
- * brace expansion done after variable expansion, as in csh/at&t ksh.
- * `echo a{b,c' no longer gives "Missing }" error (it echos a{b,c).
- * expansion only done if there is a comma (ie, `echo {a}' prints {a}).
- * globbing/expansion code passes 0x80 unharmed.
- * "echo ${XX=a*b}" no longer sets XX to "a\200*b".
- * "echo ${unset-a*b}" no longer has \200 in the error message.
- * bad substitution error generated for things like ${x:a}, ${x^a}, etc.
- * `x="a cdef"; echo ${x#a c}' now prints "def" instead of "a a cdef".
- * on systems where /etc/passwd//// is a valid name, echo /etc/pass*/ no
- longer matches /etc/passwd.
- * trace output (set -x) flushed correctly, PS4 initialized.
- * ulimit output ungarbled, code to use {set,get}ulimit (if available)
- enabled.
- * tilde expansion done in word part of ${foo-~/bar}
- * when reading stdin (ie, ksh -s), no longer reads too much.
- * shell handles i/o redirection and errors in builtin commands as per
- POSIX (still have to sort out variable assignment errors).
- * starting jobs that save/change/restore tty settings in the background
- no longer messes up tty settings when job finishes.
- * the pattern [a'-'z] now matches three characters, not 26, and
- the pattern [ab']'] also matches three characters.
-
-* a mostly complete man page! (work is still in progress)
-
-* quoting inside $(..) mostly works.
-
-* error reporting has been orthogonalized.
-
-* brace expansion on by default (can be disabled with set +o braceexpand, or
- set -o posix).
-
-* output of "set -o" now fits on a normal screen.
-
-* co-processes added (|&, read -p, print -p, etc.).
-
-* restricted mode added (for what its worth).
-
-* vi now prints meta characters with M- prefix, unless vi-show8 option is on.
-
-Version 5.0.8
-
-* bug fixes
- * two problems in fc (introduced in 5.0.7)
- * install target in Makefile missing a dollar
-
-Version 5.0.7
-
-* POSIX command command added
-
-* a few bug fixes
- * now compiles with various options undefined (eg, VI, EMACS, JOBS).
- * fixed typos in Makefile.in (maxext -> manext) and ksh.1 (\f -> \fP).
- * CLK_TCK defined to correct value for FreeBSD 1.1.5 (and earlier?).
- * original process group restored when an exec is done.
- * the exit value of set is that of the last $(...) on the command line.
- * ditto for a command with no command (eg, x=`false`).
- * command variable assignments done before path search (so PATH=... x works)
- and are added as they are processed (so A=1 B=$A works).
- * variable assignments infront of function calls are exported to programs
- inside the function.
- * aliases with trailing space are only honoured in command contexts
- if in posix mode.
-
-* make depend target added; install target warns if ksh not in /etc/shells.
-
-* set -o bgnice now does something.
-
-* vi mode: ESC is no longer a file completion command (too annoying).
-
-Version 5.0.6
-
-* most reported bugs/problems fixed (all but two).
-
-* temporary files now created in $TMPDIR (if it is a sane path).
-
-Version 5.0.5
-
-* function parsing POSIXized (function bodies can be any compound command,
- redirections after functions effect function invocation, not the
- instantiation, the () in a function definition now parsed as two tokens).
-
-* exit bultin now does stopped jobs check.
-
-* set -p/-o priviliged supported.
-
-* test builtin now believed to be completely posix.
-
-* a default path is now used when PATH is not set (defined in options.h).
-
-Version 5.0.4
-
-* configuration checks for buggy opendir()s and setpgrp()s.
-
-* autoloading functions now supported.
-
-* functions can safely redefine themselves.
-
-Version 5.0.3
-
-* hash command changed to "alias -t"; whence -p added; print -s added
- (all as in at&t ksh); unalias -a added (POSIX).
-
-* test builtin POSIX complient
-
-* TMOUT parameter supported (at&t ksh: timeout interactive shells)
-
-Version 5.0.2
-
-* trap/error handling changed to eliminate longjmp()s from signal handlers;
- trap ERR added.
-
-* ksh conditional expressions ([[ .. ]]) supported.
-
-* arithmetic expressions (let, $((..)), etc.) now understand full C
- integer expressions (except ++/-- and sizeof()).
-
-* typeset -L -R -Z -u -l added (as in at&t ksh)
-
-* at&t/posix $(( .. )) arithmetic expansions supported.
-
-Version 5.0.1
-
-* set -e no longer effects commands executed as part of if/while/until/&&/||/!
- condition.
-
-* posix ! keyword now recognized.
-
-* posix getopts; if not in posix mode, getopts will accept options starting
- with + (at&t kshism)
-
-* syntax error messages improved (says what was unexpected/unmatched)
-
-Version 4.9+mun.5
-
-* all known bugs related to job control fixed:
- * fg,bg,jobs,wait,kill commands fully POSIX complient
- * signals are no longer reported for foreground jobs killed by SIGINT and
- SIGPIPE
- * pipeline process groups now created more reliablely (was a problem
- if first process exited before second process exec'd).
- * "(: ; cat /etc/termcap) | sleep" nolonger hangs
-
-* save/restore tty mode if command succeeds/fails, respectively. Edit
- mode (emacs,vi) no longer use old tty mode information
-
-* test command: added -h
-
-* alternations option renamed to braceexpand (eg, use set -o braceexpand).
- Old usage (set -o alternations) still accepted (will disappear in next
- version).
-
-* trap/kill now accept upper and lower case signal names.
-
-Version 4.9+mun.3
-
-* here documents in functions now work properly
-
-* read command: added -s option, use REPLY if no variable specified
-
-* don't accept "while command; done" as a valid command
-
-* fg,bg,jobs,wait,kill commands mostly POSIX complient.
-
-* unset command: added POSIX -v option
-
-* set command: added -A option
-
-* handle ${array[@]} and ${array[*]}
-
-* compiles with old bsd 4.2 compiler (pcc)
-
-* new versions of etc/profile and etc/ksh.profile
-
-Version 4.9+mun.2 (versus 4.9)
-
-* directory/file structure has been re-arranged:
- * moved files from sh directory up a level, deleted sh directory
- * created misc directory, old ChangeLog,README,.. files moved to misc
-
-* now uses GNU autoconf for compilation.
-
-* no longer uses stdio FILE *'s for I/O redirection (most stdio
- usage has been removed). Solves many porting problems caused by
- dup'd file descriptors, forked processes and exiting.
-
-* removed lint from code (compiles with very few warning with gcc -O -Wall
- -Wno-comment)
-
-* has array support (needs work but is pretty functional).
-
-* ulimit command now more functional on more machines. Compatible with at&t ksh.
-
-* command line and set option parsing cleaned up, POSIXized.
-
-* POSIX IFS handling.
-
-* many many small bug fixes (see ChangeLog)