diff options
author | Michael Biebl <biebl@debian.org> | 2013-07-23 01:01:14 +0200 |
---|---|---|
committer | Michael Biebl <biebl@debian.org> | 2013-07-23 01:01:14 +0200 |
commit | a400789c367fd3cd8d0f9588ca2af72dcac47c9c (patch) | |
tree | 8c1caa6308f9e720e1e461da321107e6dc29f256 /ylwrap | |
parent | f5638ea86a8626b7e0e471d720359cb4e3d8cb1c (diff) | |
download | rsyslog-a400789c367fd3cd8d0f9588ca2af72dcac47c9c.tar.gz |
Imported Upstream version 7.4.3upstream/7.4.3
Diffstat (limited to 'ylwrap')
-rwxr-xr-x | ylwrap | 38 |
1 files changed, 16 insertions, 22 deletions
@@ -3,7 +3,8 @@ scriptversion=2011-08-25.18; # UTC -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, +# 2007, 2009, 2010, 2011 Free Software Foundation, Inc. # # Written by Tom Tromey <tromey@cygnus.com>. # @@ -31,7 +32,7 @@ scriptversion=2011-08-25.18; # UTC 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 ;; --basedir) @@ -62,25 +63,10 @@ EOF ;; esac -get_dirname () -{ - case $1 in - */*|*\\*) printf '%s\n' "$1" | sed -e 's,\([\\/]\)[^\\/]*$,\1,';; - # Otherwise, we want the empty string (not "."). - esac -} - -quote_for_sed () -{ - # FIXME: really we should care about more than '.' and '\'. - sed -e 's,[\\.],\\&,g' -} # The input. input="$1" shift -# 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. @@ -140,7 +126,11 @@ if test $ret -eq 0; then y_tab_nodot="yes" fi - input_rx=`get_dirname "$input" | quote_for_sed` + # 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" @@ -156,7 +146,7 @@ if test $ret -eq 0; then fi if test -f "$from"; then # If $2 is an absolute path name, then just use that, - # otherwise prepend '../'. + # otherwise prepend `../'. case "$2" in [\\/]* | ?:[\\/]*) target="$2";; *) target="../$2";; @@ -172,11 +162,15 @@ if test $ret -eq 0; then realtarget="$target" target="tmp-`echo $target | sed s/.*[\\/]//g`" fi - # Munge "#line" or "#" directives. + # Edit out `#line' or `#' directives. + # # We don't want the resulting debug information to point at - # an absolute srcdir. + # 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/'\ @@ -185,7 +179,7 @@ if test $ret -eq 0; then -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - sed -e "/^#/!b" -e "s,$input_rx,$input_sub_rx," -e "s,$from,$2," \ + sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? # Check whether header files must be updated. |