📄 changelog.0
字号:
* 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 distributionThu 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 redundent 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 (redundent) 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()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -