Annotation of coherent/d/bin/sh/Changes.1992, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.