⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelog.0

📁 一个开放源代码的 AT&T 的 Korn Shell 的复制品, 支持大多数 ksh89 的特性。
💻 0
📖 第 1 页 / 共 5 页
字号:
	  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 newlineSun 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -