📄 changelog
字号:
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 varibale).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.Tue Oct 29 11:34:58 NST 1996 Michael Rendell (michael@panda.cs.mun.ca) * made pdksh-5.2.12 distributionFri 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 distributionTue 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 distributionMon 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 distributionMon 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 distributionMon 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 redundent 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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -