Annotation of coherent/d/bin/sh/Changes.1992, revision 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.