"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "config/ylwrap" between
wcalc-2.4.1.tar.gz and wcalc-2.5.tar.gz

About: Wcalc is a natural-expression command-line calculator.

ylwrap  (wcalc-2.4.1):ylwrap  (wcalc-2.5)
#! /bin/sh #! /bin/sh
# ylwrap - wrapper for lex/yacc invocations. # ylwrap - wrapper for lex/yacc invocations.
scriptversion=2011-08-25.18; # UTC scriptversion=2013-01-12.17; # UTC
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, # Copyright (C) 1996-2013 Free Software Foundation, Inc.
# 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
# #
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option) # the Free Software Foundation; either version 2, or (at your option)
# any later version. # any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
skipping to change at line 33 skipping to change at line 32
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under # configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program. # the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report # This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to # bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>. # <automake-patches@gnu.org>.
get_dirname ()
{
case $1 in
*/*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';;
# Otherwise, we want the empty string (not ".").
esac
}
# guard FILE
# ----------
# The CPP macro used to guard inclusion of FILE.
guard ()
{
printf '%s\n' "$1" \
| sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \
-e 's/__*/_/g'
}
# quote_for_sed [STRING]
# ----------------------
# Return STRING (or stdin) quoted to be used as a sed pattern.
quote_for_sed ()
{
case $# in
0) cat;;
1) printf '%s\n' "$1";;
esac \
| sed -e 's|[][\\.*]|\\&|g'
}
case "$1" in case "$1" in
'') '')
echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 echo "$0: No files given. Try '$0 --help' for more information." 1>&2
exit 1 exit 1
;; ;;
--basedir) --basedir)
basedir=$2 basedir=$2
shift 2 shift 2
;; ;;
-h|--h*) -h|--h*)
cat <<\EOF cat <<\EOF
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
skipping to change at line 67 skipping to change at line 98
EOF EOF
exit $? exit $?
;; ;;
-v|--v*) -v|--v*)
echo "ylwrap $scriptversion" echo "ylwrap $scriptversion"
exit $? exit $?
;; ;;
esac esac
# The input. # The input.
input="$1" input=$1
shift shift
case "$input" in # We'll later need for a correct munging of "#line" directives.
input_sub_rx=`get_dirname "$input" | quote_for_sed`
case $input in
[\\/]* | ?:[\\/]*) [\\/]* | ?:[\\/]*)
# Absolute path; do nothing. # Absolute path; do nothing.
;; ;;
*) *)
# Relative path. Make it absolute. # Relative path. Make it absolute.
input="`pwd`/$input" input=`pwd`/$input
;; ;;
esac esac
input_rx=`get_dirname "$input" | quote_for_sed`
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot=false
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot=true
fi
# The parser itself, the first file, is the destination of the .y.c
# rule in the Makefile.
parser=$1
# A sed program to s/FROM/TO/g for all the FROM/TO so that, for
# instance, we rename #include "y.tab.h" into #include "parse.h"
# during the conversion from y.tab.c to parse.c.
sed_fix_filenames=
# Also rename header guards, as Bison 2.7 for instance uses its header
# guard in its implementation file.
sed_fix_header_guards=
pairlist= while test $# -ne 0; do
while test "$#" -ne 0; do if test x"$1" = x"--"; then
if test "$1" = "--"; then
shift shift
break break
fi fi
pairlist="$pairlist $1" from=$1
# Handle y_tab.c and y_tab.h output by DOS
if $y_tab_nodot; then
case $from in
"y.tab.c") from=y_tab.c;;
"y.tab.h") from=y_tab.h;;
esac
fi
shift
to=$1
shift shift
sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;"
sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$t
o"`"|g;"
done done
# The program to run. # The program to run.
prog="$1" prog=$1
shift shift
# Make any relative path in $prog absolute. # Make any relative path in $prog absolute.
case "$prog" in case $prog in
[\\/]* | ?:[\\/]*) ;; [\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog="`pwd`/$prog" ;; *[\\/]*) prog=`pwd`/$prog ;;
esac esac
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$ dirname=ylwrap$$
do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $re t' do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $re t'
trap "ret=129; $do_exit" 1 trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2 trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13 trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15 trap "ret=143; $do_exit" 15
mkdir $dirname || exit 1 mkdir $dirname || exit 1
cd $dirname cd $dirname
case $# in case $# in
0) "$prog" "$input" ;; 0) "$prog" "$input" ;;
*) "$prog" "$@" "$input" ;; *) "$prog" "$@" "$input" ;;
esac esac
ret=$? ret=$?
if test $ret -eq 0; then if test $ret -eq 0; then
set X $pairlist for from in *
shift do
first=yes to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"`
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot="no"
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot="yes"
fi
# The directory holding the input.
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
# Quote $INPUT_DIR so we can use it in a regexp.
# FIXME: really we should care about more than `.' and `\'.
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
while test "$#" -ne 0; do
from="$1"
# Handle y_tab.c and y_tab.h output by DOS
if test $y_tab_nodot = "yes"; then
if test $from = "y.tab.c"; then
from="y_tab.c"
else
if test $from = "y.tab.h"; then
from="y_tab.h"
fi
fi
fi
if test -f "$from"; then if test -f "$from"; then
# If $2 is an absolute path name, then just use that, # If $2 is an absolute path name, then just use that,
# otherwise prepend `../'. # otherwise prepend '../'.
case "$2" in case $to in
[\\/]* | ?:[\\/]*) target="$2";; [\\/]* | ?:[\\/]*) target=$to;;
*) target="../$2";; *) target=../$to;;
esac esac
# We do not want to overwrite a header file if it hasn't # Do not overwrite unchanged header files to avoid useless
# changed. This avoid useless recompilations. However the # recompilations. Always update the parser itself: it is the
# parser itself (the first file) should always be updated, # destination of the .y.c rule in the Makefile. Divert the
# because it is the destination of the .y.c rule in the # output of all other files to a temporary file so we can
# Makefile. Divert the output of all other files to a temporary # compare them to existing versions.
# file so we can compare them to existing versions. if test $from != $parser; then
if test $first = no; then realtarget=$target
realtarget="$target" target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
target="tmp-`echo $target | sed s/.*[\\/]//g`"
fi fi
# Edit out `#line' or `#' directives.
#
# We don't want the resulting debug information to point at
# an absolute srcdir; it is better for it to just mention the
# .y file with no path.
#
# We want to use the real output file name, not yy.lex.c for
# instance.
#
# We want the include guards to be adjusted too.
FROM=`echo "$from" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
TARGET=`echo "$2" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ # Munge "#line" or "#" directives. Don't let the resulting
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? # debug information point at an absolute srcdir. Use the real
# output file name, not yy.lex.c for instance. Adjust the
# include guards too.
sed -e "/^#/!b" \
-e "s|$input_rx|$input_sub_rx|" \
-e "$sed_fix_filenames" \
-e "$sed_fix_header_guards" \
"$from" >"$target" || ret=$?
# Check whether header files must be updated. # Check whether files must be updated.
if test $first = no; then if test "$from" != "$parser"; then
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
echo "$2" is unchanged echo "$to is unchanged"
rm -f "$target" rm -f "$target"
else else
echo updating "$2" echo "updating $to"
mv -f "$target" "$realtarget" mv -f "$target" "$realtarget"
fi fi
fi fi
else else
# A missing file is only an error for the first file. This # A missing file is only an error for the parser. This is a
# is a blatant hack to let us support using "yacc -d". If -d # blatant hack to let us support using "yacc -d". If -d is not
# is not specified, we don't want an error when the header # specified, don't fail when the header file is "missing".
# file is "missing". if test "$from" = "$parser"; then
if test $first = yes; then
ret=1 ret=1
fi fi
fi fi
shift
shift
first=no
done done
else
ret=$?
fi fi
# Remove the directory. # Remove the directory.
cd .. cd ..
rm -rf $dirname rm -rf $dirname
exit $ret exit $ret
# Local Variables: # Local Variables:
# mode: shell-script # mode: shell-script
 End of changes. 26 change blocks. 
90 lines changed or deleted 112 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS