perl 2.0 patch 1: removed redundant debugging code in regexp.c perl-2.001
authorLarry Wall <larry@wall.org>
Tue, 28 Jun 1988 03:41:16 +0000 (03:41 +0000)
committerLarry Wall <larry@wall.org>
Tue, 28 Jun 1988 03:41:16 +0000 (03:41 +0000)
commitffd30a0b488495f48bc676c58309803860e1e715
treef506dd49e16d31e3f5d297122f9a478550d9f6d2
parenta4de7c03d0bdc29d9d3a18abad4ac2628182ed7b
perl 2.0 patch 1: removed redundant debugging code in regexp.c

If you used ++ on a variable that had the value '' (as opposed to
being undefined) it would increment the numeric part but not
invalidate the string part, which could then give false results.

Berkeley recently sent out a patch that disables setuid #! scripts
because of an inherent problem in the semantics as they are
currently defined.  If you have installed that patch, your setuid
and setgid bits are useless on scripts.  I've added a means
for perl to examine those bits and emulate setuid/setgid scripts
itself in what I believe is a secure manner.  If normal perl
detects such a script, it passes it off to another version of
perl that runs setuid root, and can run the script under the
desired uid/gid.  This feature is optional, and Configure will
ask if you want to do it.

Some machines didn't like config.h when it said #/*undef SYMBOL.
Config.h.SH now is smart enough to tuck the # inside the comment.

There were several small problems in Configure: the return code from
ar was hidden by a piped call to sed, so if ar failed it went
undetected.  The Cray uses a program called bld instead of ar.
Let's hear it for compatibilty.  At least one version of gnucpp
adds a space after symbol interpolation, which was giving the
C preprocessor detector fits.  There was a call to grep '-i' that
needed to have the -i protected by a backslash.  Also, Configure
should remove the UU subdirectory that it makes while running.

"make realclean" now knows about the alternate patch extension ~.

In the manual page, I fixed some quotes that were ugly in troff,
and did some clarification of LIST, study, tr and unlink.

regexp.c had some redundant debugging code.

tr/x/y/ could dump core if y is shorter than x.  I found this out
when I tried translating a bunch of characters to space by saying
something like y/a-z/ /.
152 files changed:
Changes [new file with mode: 0644]
Configure
EXTERN.h
INTERN.h
MANIFEST
Makefile.SH
README
Wishlist
arg.c
arg.h
array.c
array.h
cmd.c
cmd.h
config.h.SH
dump.c
eg/ADB [new file with mode: 0644]
eg/README [new file with mode: 0644]
eg/changes [new file with mode: 0644]
eg/dus [new file with mode: 0644]
eg/findcp [new file with mode: 0644]
eg/findtar [new file with mode: 0644]
eg/g/gcp [new file with mode: 0644]
eg/g/gcp.man [new file with mode: 0644]
eg/g/ged [new file with mode: 0644]
eg/g/ghosts [new file with mode: 0644]
eg/g/gsh [new file with mode: 0644]
eg/g/gsh.man [new file with mode: 0644]
eg/myrup [new file with mode: 0644]
eg/nih [new file with mode: 0644]
eg/rmfrom [new file with mode: 0644]
eg/scan/scan_df [new file with mode: 0644]
eg/scan/scan_last [new file with mode: 0644]
eg/scan/scan_messages [new file with mode: 0644]
eg/scan/scan_passwd [new file with mode: 0644]
eg/scan/scan_ps [new file with mode: 0644]
eg/scan/scan_sudo [new file with mode: 0644]
eg/scan/scan_suid [new file with mode: 0644]
eg/scan/scanner [new file with mode: 0644]
eg/shmkill [new file with mode: 0644]
eg/van/empty [new file with mode: 0644]
eg/van/unvanish [new file with mode: 0644]
eg/van/vanexp [new file with mode: 0644]
eg/van/vanish [new file with mode: 0644]
eval.c [new file with mode: 0644]
form.c
form.h
handy.h
hash.c
hash.h
lib/getopt.pl [new file with mode: 0644]
lib/importenv.pl [new file with mode: 0644]
lib/stat.pl [new file with mode: 0644]
makedepend.SH
makedir.SH
malloc.c
patchlevel.h
perl.h
perl.man.1
perl.man.2
perl.y
perldb
perldb.man
perlsh [new file with mode: 0644]
perly.c
regexp.c [new file with mode: 0644]
regexp.h [new file with mode: 0644]
search.c [deleted file]
search.h [deleted file]
spat.h
stab.c
stab.h
str.c
str.h
t/TEST
t/base.cond
t/base.if
t/base.lex
t/base.pat
t/base.term
t/cmd.elsif
t/cmd.for
t/cmd.mod
t/cmd.subval
t/cmd.while
t/comp.cmdopt
t/comp.cpp
t/comp.decl
t/comp.multiline
t/comp.script
t/comp.term
t/io.argv
t/io.dup [new file with mode: 0644]
t/io.fs
t/io.inplace
t/io.pipe [new file with mode: 0644]
t/io.print
t/io.tell
t/op.append
t/op.auto
t/op.chop
t/op.cond
t/op.crypt [deleted file]
t/op.delete [new file with mode: 0644]
t/op.do
t/op.each
t/op.eval
t/op.exec
t/op.exp
t/op.flip
t/op.fork
t/op.goto
t/op.int
t/op.join
t/op.list
t/op.magic
t/op.oct
t/op.ord
t/op.pat
t/op.push
t/op.regexp [new file with mode: 0644]
t/op.repeat
t/op.sleep
t/op.split
t/op.sprintf
t/op.stat
t/op.study [new file with mode: 0644]
t/op.subst
t/op.time
t/op.unshift
t/re_tests [new file with mode: 0644]
toke.c [new file with mode: 0644]
util.c
util.h
version.c
x2p/EXTERN.h
x2p/INTERN.h
x2p/Makefile.SH
x2p/a2p.h
x2p/a2p.man
x2p/a2p.y
x2p/a2py.c
x2p/handy.h
x2p/hash.c
x2p/hash.h
x2p/s2p
x2p/s2p.man
x2p/str.c
x2p/str.h
x2p/util.c
x2p/util.h
x2p/walk.c