diff options
-rw-r--r-- | lang/gawk/files/patch-sec1 | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/lang/gawk/files/patch-sec1 b/lang/gawk/files/patch-sec1 new file mode 100644 index 00000000000..e1b57b97639 --- /dev/null +++ b/lang/gawk/files/patch-sec1 @@ -0,0 +1,163 @@ +diff -ur gawk-3.0.6.orig/doc/gawk.texi gawk-3.0.6/doc/gawk.texi +--- doc/gawk.texi.orig Tue Aug 8 02:57:43 2000 ++++ doc/gawk.texi Sun May 27 04:30:53 2001 +@@ -16550,8 +16550,7 @@ + arranges to clean up any temporary files on program exit or upon an + interrupt. + +-@c 2e: For the temp file handling, go with Darrel's ig=${TMP:-/tmp}/igs.$$ +-@c 2e: or something as similar as possible. ++@c 2e: For the temporary file handling, use mktemp with $@{TMPDIR:-/tmp@}. + + The next part loops through all the command line arguments. + There are several cases of interest. +@@ -16576,7 +16575,7 @@ + @itemx --file + @itemx --file= + @itemx -Wfile= +-The file name is saved to the temporary file @file{/tmp/ig.s.$$} with an ++The file name is saved to a temporary file with an + @samp{@@include} statement. + The @code{sed} utility is used to remove the leading option part of the + argument (e.g., @samp{--file=}). +@@ -16584,7 +16583,7 @@ + @item --source + @itemx --source= + @itemx -Wsource= +-The source text is echoed into @file{/tmp/ig.s.$$}. ++The source text is echoed into a temporary file. + + @item --version + @itemx -Wversion +@@ -16596,16 +16595,11 @@ + or @samp{-Wsource}, were supplied, then the first non-option argument + should be the @code{awk} program. If there are no command line + arguments left, @code{igawk} prints an error message and exits. +-Otherwise, the first argument is echoed into @file{/tmp/ig.s.$$}. ++Otherwise, the first argument is echoed into a temporary file. + + In any case, after the arguments have been processed, +-@file{/tmp/ig.s.$$} contains the complete text of the original @code{awk} +-program. +- +-The @samp{$$} in @code{sh} represents the current process ID number. +-It is often used in shell programs to generate unique temporary file +-names. This allows multiple users to run @code{igawk} without worrying +-that the temporary file names will clash. ++the complete text of the original @code{awk} program ++is contained in a temporary file. + + @cindex @code{sed} utility + Here's the program: +@@ -16620,13 +16614,25 @@ + # Arnold Robbins, arnold@@gnu.org, Public Domain + # July 1993 + ++# Temporary file handling modifications for Owl by ++# Jarno Huuskonen and Solar Designer, still Public Domain ++# May 2001 ++ ++if [ ! -x /bin/mktemp ]; then ++ echo "$0 needs mktemp to create temporary files." ++ exit 1 ++fi ++ ++STEMPFILE=`/bin/mktemp $@{TMPDIR:-/tmp@}/igawk.s.XXXXXX` || exit 1 ++ETEMPFILE=`/bin/mktemp $@{TMPDIR:-/tmp@}/igawk.e.XXXXXX` || exit 1 ++ + if [ "$1" = debug ] + then + set -x + shift + else + # cleanup on exit, hangup, interrupt, quit, termination +- trap 'rm -f /tmp/ig.[se].$$' 0 1 2 3 15 ++ trap 'rm -f $STEMPFILE $ETEMPFILE' EXIT HUP INT QUIT TERM + fi + + while [ $# -ne 0 ] # loop over arguments +@@ -16643,28 +16649,28 @@ + + -[vF]*) opts="$opts '$1'" ;; + +- -f) echo @@include "$2" >> /tmp/ig.s.$$ ++ -f) echo @@include "$2" >> $STEMPFILE + shift;; + + @group + -f*) f=`echo "$1" | sed 's/-f//'` +- echo @@include "$f" >> /tmp/ig.s.$$ ;; ++ echo @@include "$f" >> $STEMPFILE ;; + @end group + + -?file=*) # -Wfile or --file + f=`echo "$1" | sed 's/-.file=//'` +- echo @@include "$f" >> /tmp/ig.s.$$ ;; ++ echo @@include "$f" >> $STEMPFILE ;; + + -?file) # get arg, $2 +- echo @@include "$2" >> /tmp/ig.s.$$ ++ echo @@include "$2" >> $STEMPFILE + shift;; + + -?source=*) # -Wsource or --source + t=`echo "$1" | sed 's/-.source=//'` +- echo "$t" >> /tmp/ig.s.$$ ;; ++ echo "$t" >> $STEMPFILE ;; + + -?source) # get arg, $2 +- echo "$2" >> /tmp/ig.s.$$ ++ echo "$2" >> $STEMPFILE + shift;; + + -?version) +@@ -16679,19 +16685,19 @@ + shift + done + +-if [ ! -s /tmp/ig.s.$$ ] ++if [ ! -s $STEMPFILE ] + then + if [ -z "$1" ] + then + echo igawk: no program! 1>&2 + exit 1 + else +- echo "$1" > /tmp/ig.s.$$ ++ echo "$1" > $STEMPFILE + shift + fi + fi + +-# at this point, /tmp/ig.s.$$ has the program ++# at this point, $STEMPFILE has the program + @c endfile + @c @end group + @end example +@@ -16776,7 +16782,7 @@ + @end group + @end example + +-The stack is initialized with @code{ARGV[1]}, which will be @file{/tmp/ig.s.$$}. ++The stack is initialized with @code{ARGV[1]}, which will be @file{$STEMPFILE}. + The main loop comes next. Input lines are read in succession. Lines that + do not start with @samp{@@include} are printed verbatim. + +@@ -16825,7 +16831,7 @@ + @group + close(input[stackptr]) + @} +-@}' /tmp/ig.s.$$ > /tmp/ig.e.$$ ++@}' $STEMPFILE > $ETEMPFILE + @end group + @c endfile + @c @end group +@@ -16852,7 +16858,7 @@ + @example + @c @group + @c file eg/prog/igawk.sh +-eval gawk -f /tmp/ig.e.$$ $opts -- "$@@" ++eval gawk -f $ETEMPFILE $opts -- "$@@" + + exit $? + @c endfile |