|
|
1.1 ! root 1: sh/Changes ! 2: steve's sh source change log, begun 6/19/92 ! 3: ! 4: Fri Jun 19 22:21:10 1992 PDT ! 5: Makefile ! 6: Added -DYYMAXDEPTH=300 to y.tab.c compilation. ! 7: Comeau C++ required a greater stack depth for its script. ! 8: exec3.c ! 9: Added code to allow redirection with built-in "eval". ! 10: Deleted code to execute ':' comment lines with the empty ! 11: function s_colon, this now happens in yylex(). ! 12: In s_read(), set readflag before yylex() to tell it not ! 13: to ignore comments. ! 14: Minor cosmetic changes. ! 15: extern.c ! 16: Added global readflag, used by s_read() and yylex(). ! 17: lex.c ! 18: In yylex(), the previous code ate '#'-delimited comments ! 19: to the following newline. Now it eats both '#'- and ':'- ! 20: delimited comments, unless doing a "read". ! 21: Minor cosmetic changes. ! 22: sh.h ! 23: Added extern readflag, added #include <string.h> and deleted ! 24: string function declarations, defined index() and rindex() ! 25: as macros calling strchr() and strrchr(). ! 26: ! 27: Wed Jun 24 16:53:48 1992 PDT ! 28: eval.c ! 29: V3.2.9: Improved handling of nested shell variable evaluation: ! 30: ${x-${y}foo} ! 31: now does something reasonable. ! 32: ! 33: Wed Jul 1 09:15:59 1992 PDT ! 34: exec3.c ! 35: lex.c ! 36: V3.3.0: Retracted above change for ':'-delimited comments, ! 37: because e.g. "echo foo : 2 3 4" should echo ": 2 3 4". ! 38: ! 39: Wed Jul 1 15:36:07 1992 PDT ! 40: eval.c ! 41: V3.3.1: In evalvar(), if a variable name does not begin ! 42: with a legal character, evalvar() now realizes ! 43: that it is not a variable and passes it unchanged ! 44: instead of complaining. Thus, ! 45: echo "foo.$/" ! 46: used to produce an "Illegal variable name" error, ! 47: now it prints ! 48: foo.$/ ! 49: This is desirable for AT&T compatability, ! 50: says Gary Comeau via norm. ! 51: tab.c ! 52: Added comments to identify table positions. ! 53: ! 54: Thu Jul 9 14:09:12 1992 PDT ! 55: eval.c ! 56: V3.3.2: In evalvar(), added code so that e.g. ! 57: x=${FOO-"zap"} ! 58: strips off the quotes on "zap", as requested by hal. ! 59: The way this evalvar() code works in general is disgraceful. ! 60: exec3.c ! 61: var.c ! 62: Changed getwd() to _getwd(), in keeping with libc change. ! 63: ! 64: Wed Jul 29 12:22:18 1992 PDT ! 65: exec3.c ! 66: V3.3.3: Builtin with redirection such as ! 67: eval /lib/cpp '$1' >baz ! 68: did not return correct exit status. The parent ! 69: process now waits for the child to exit and takes its status. ! 70: ! 71: Fri Aug 21 09:48:41 1992 PDT ! 72: Makefile ! 73: V3.3.4: removed -VSINU from CFLAGS. ! 74: sh.h ! 75: Redefined NODE so that -VSINU compilation is no longer needed. ! 76: ! 77: Fri Aug 28 12:16:29 1992 PDT ! 78: eval.c ! 79: V3.3.5: changed the handling of shell variable assignments ! 80: of the form ! 81: a=${b=c} ! 82: and the related forms with "-?+" instead of "=". ! 83: First, an optional ':' before the "-=+" is now ignored, so ! 84: a=${b:=c} ! 85: now works (as in Unix) rather than complaining ! 86: about an illegal variable name. ! 87: Second, a variable set with an empty value (e.g. "foo=") ! 88: is now regarded as unset rather than set, so that e.g. ! 89: foo= ! 90: baz=${foo=whatever} ! 91: used to set baz to the (empty) value of foo, ! 92: but sets baz (and foo) to the value "whatever". ! 93: This is consistent with Interactive Unix /bin/sh. ! 94: ! 95: Mon Aug 31 11:44:57 1992 PDT ! 96: exec3.c ! 97: V3.3.6: in s_break, delete reset() after ! 98: "break" or "continue" error message. Previously, ! 99: "break" or "continue" outside of a loop terminated ! 100: shell execution; now the error is nonfatal. ! 101: This is consistent with SV /bin/sh, according to vlad. ! 102: ! 103: Mon Aug 31 12:30:03 1992 PDT ! 104: main.c ! 105: V3.3.7: case RUEXITS, changed to make "${foo?whatever}" ! 106: exit as it should when foo is not set. ! 107: User Richard Lindner reported the bug, ! 108: I broke sh when I made a change requested by piggy. ! 109: ! 110: Mon Sep 28 15:04:19 1992 PDT ! 111: V3.3.8: relinked with new libc.a containing execve() ! 112: changes to understand interpreter script specifications. ! 113: No change to sh source per se. ! 114: ! 115: Thu Oct 1 17:24:57 1992 PDT ! 116: eval.c ! 117: V3.3.9: in evalcom(), save slret and restore it in cloned ! 118: child process so that grave commands referencing $? work ! 119: as expected. ! 120: ! 121: Fri Oct 2 17:19:19 1992 PDT ! 122: exec1.c ! 123: V3.4.0: in comscom(), case FASSG and case FIORS|FASSG, ! 124: set slret to 0 if command is just an assignment. Thus, ! 125: false; x1=$?; x2=$? ! 126: now sets x2 to 0 rather than 1. ! 127: ! 128: Wed Oct 28 13:55:04 1992 PST ! 129: exec1.c ! 130: V3.4.1: in pipescom(), add conditionals to test pipev[0|1] ! 131: before closing it. If fd 0 or 1 is closed before the dup2 ! 132: call, the pipe call can set pipev[01] to 0 or 1, and the ! 133: close (intended to close the extra fd) can actually close ! 134: the working fd. This fixes a bug reported by user Blatchey.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.