[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Quilt-dev] [PATCH] Substitute sed with configured path
From: |
Martin Quinson |
Subject: |
Re: [Quilt-dev] [PATCH] Substitute sed with configured path |
Date: |
Tue, 24 Dec 2013 19:35:34 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hello,
thanks for this patch.
I have one question, out of curiosity. Why do you set SED to @SED@ and
then call $SET. Wouldn't it be more efficient to directly call @SED@ ?
I mean that instead of doing that:
> - | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
> + | $SED -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
I would do that:
> + | @SED@ -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
Do I miss something here?
Thanks again for this patch, that's a pity that our --with-sed option
was not functionnal.
Bye, Mt.
On Tue, Dec 24, 2013 at 08:42:57AM -0600, Kent R. Spillner wrote:
> configure.ac calls QUILT_COMPAT_PROG_PATH(SED, sed)
> allowing users to provide their own path to sed via
> --with-sed=. However, nothing was actually using SED.
> This patch updates Makefile.in to substitute @SED@ in
> all .in files, and updates everything in bin/ and quilt/
> to actually support this substitution.
>
> With this change it is possible to configure quilt to
> explicitly use GNU sed on systems where GNU sed is
> available but not installed by default (e.g. OpenBSD).
>
> Signed-off-by: Kent R. Spillner <address@hidden>
> ---
> Makefile.in | 1 +
> bin/patch-wrapper.in | 5 +++--
> bin/quilt.in | 4 +++-
> quilt/annotate.in | 6 ++++--
> quilt/diff.in | 4 +++-
> quilt/grep.in | 4 +++-
> quilt/header.in | 4 +++-
> quilt/import.in | 4 +++-
> quilt/mail.in | 24 +++++++++++++-----------
> quilt/refresh.in | 4 +++-
> quilt/scripts/inspect.in | 4 +++-
> quilt/scripts/patchfns.in | 18 ++++++++++--------
> quilt/setup.in | 8 +++++---
> 13 files changed, 57 insertions(+), 33 deletions(-)
>
> diff --git a/Makefile.in b/Makefile.in
> index 8040653..cd7c2b9 100644
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -257,6 +257,7 @@ $(patsubst %.in,%,$(wildcard bin/*.in quilt/*.in
> quilt/scripts/*.in)) :: Makefil
> -e 's:@PERL''@:$(PERL):g' \
> -e 's:@BASH''@:$(BASH):g' \
> -e 's:@PATCH''@:$(PATCH):g' \
> + -e 's:@SED''@:$(SED):g' \
> -e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \
> -e 's:@VERSION''@:$(VERSION):g' \
> -e 's:@RELEASE''@:$(RELEASE):g' \
> diff --git a/bin/patch-wrapper.in b/bin/patch-wrapper.in
> index 358856a..489fbca 100755
> --- a/bin/patch-wrapper.in
> +++ b/bin/patch-wrapper.in
> @@ -7,6 +7,7 @@
> # used directly, and no quilt metadata will get created.
>
> address@hidden@
> address@hidden@
> original_options=("$@")
>
> # GNU patch recognizes these environment variables
> @@ -69,9 +70,9 @@ find_pipe_patch() {
> patch=${patch//\[/\\[}
> patch=${patch//\]/\\]}
> set -- $(stat -c $'%a %N\n' /proc/*/fd/* 2>/dev/null \
> - | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
> + | $SED -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
> set -- $(stat -c $'%a %N\n' $1/* 2>/dev/null \
> - | sed -nre "s,^500 \`.*' -> \`(.*)',\\1,p")
> + | $SED -nre "s,^500 \`.*' -> \`(.*)',\\1,p")
> [ $# -eq 1 ] || set -- "$patch"
> echo "$1"
> }
> diff --git a/bin/quilt.in b/bin/quilt.in
> index 2271833..51773a3 100644
> --- a/bin/quilt.in
> +++ b/bin/quilt.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # unset posix strict conformance variable since patch cannot be run
> # non-interactively when it's set.
> unset POSIXLY_CORRECT
> @@ -44,7 +46,7 @@ usage()
> quilt_commands \
> | sort \
> | column | column -t \
> - | sed -e $'s/^/\t/'
> + | $SED -e $'s/^/\t/'
> echo $"
> Global options:
>
> diff --git a/quilt/annotate.in b/quilt/annotate.in
> index 0366f5a..c71e02b 100644
> --- a/quilt/annotate.in
> +++ b/quilt/annotate.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -40,7 +42,7 @@ empty_file()
> {
> local file=$1
> [ -s "$file" ] \
> - && sed -e 's:.*::' "$file"
> + && $SED -e 's:.*::' "$file"
> }
>
> annotation_for()
> @@ -140,7 +142,7 @@ fi
>
> if [ address@hidden = 0 ]
> then
> - sed -e 's:^:'$'\t'':' "address@hidden"
> + $SED -e 's:^:'$'\t'':' "address@hidden"
> exit 0
> fi
>
> diff --git a/quilt/diff.in b/quilt/diff.in
> index 6b4f9d6..4894fff 100644
> --- a/quilt/diff.in
> +++ b/quilt/diff.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -82,7 +84,7 @@ included.
> colorize() {
> if [ -n "$opt_color" ]
> then
> - sed -e '
> + $SED -e '
> s/^\(Index:\|---\|+++\|\*\*\*\)
> .*/'$color_diff_hdr'&'$color_clear'/
> t ; s/^+.*/'$color_diff_add'&'$color_clear'/
> t ; s/^-.*/'$color_diff_rem'&'$color_clear'/
> diff --git a/quilt/grep.in b/quilt/grep.in
> index 0c32fcf..81eb774 100644
> --- a/quilt/grep.in
> +++ b/quilt/grep.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -120,7 +122,7 @@ find "address@hidden:-.}" \( \
> -type f -print0 \
> | xargs -0 grep $opt_H "address@hidden" \
> | if [ address@hidden -eq 0 ]; then
> - sed -e 's,^./,,'
> + $SED -e 's,^./,,'
> else
> cat
> fi
> diff --git a/quilt/header.in b/quilt/header.in
> index a3bbcbc..88daa11 100644
> --- a/quilt/header.in
> +++ b/quilt/header.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -52,7 +54,7 @@ maybe_strip_trailing_whitespace()
> {
> if [ -n "$opt_strip_trailing_whitespace" ]
> then
> - sed -e 's:[ '$'\t'']*$::'
> + $SED -e 's:[ '$'\t'']*$::'
> else
> cat
> fi
> diff --git a/quilt/import.in b/quilt/import.in
> index cc9deed..5d68678 100644
> --- a/quilt/import.in
> +++ b/quilt/import.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -65,7 +67,7 @@ merge_patches()
> if [ -z "$opt_desc" ]
> then
> local diff=$(diff -u $old_desc $new_desc \
> - | sed -e '1,2d')
> + | $SED -e '1,2d')
> if [ -n "$diff" ]
> then
> printf $"Patch headers differ:\n" >&2
> diff --git a/quilt/mail.in b/quilt/mail.in
> index 109782a..12fc2eb 100644
> --- a/quilt/mail.in
> +++ b/quilt/mail.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> +SED = @SED@
> +
> : ${EDITOR:=vi}
>
> # Read in library functions
> @@ -146,7 +148,7 @@ process_mail()
> else
> local from_date=$(LC_ALL=POSIX date "+%a %b %e %H:%M:%S %Y")
> echo "From $opt_sender_address $from_date"
> - sed -e 's/^From />From /' $tmpfile
> + $SED -e 's/^From />From /' $tmpfile
> echo
> fi
> rm -f $tmpfile
> @@ -305,7 +307,7 @@ Could not determine the envelope sender address. Please
> use --sender." >&2
> ;;
> esac
> fi
> -opt_sender_address=$(echo "$opt_sender" | sed -re 's:.*<([^<>]+)>.*:\1:')
> +opt_sender_address=$(echo "$opt_sender" | $SED -re 's:.*<([^<>]+)>.*:\1:')
>
> if [ -z "$opt_charset" ]
> then
> @@ -360,7 +362,7 @@ then
> # Is the first paragraph short enough to be used as the subject?
> if [ -z "$subject" ]
> then
> - local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header)
> + local para=$($SED -e $'/^[ \t]*$/q' $tmpdir/header)
> if [ ${#para} -gt 0 -a ${#para} -lt 150 ]
> then
> subject=$(echo "$para" | join_lines)
> @@ -378,7 +380,7 @@ then
> fi
>
> subject=$(echo "$subject" \
> - | sed -e
> $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i')
> + | $SED -e
> $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i')
> echo "Replace-Subject: $subject"
>
> # Add recipients defined by some recognized keywords
> @@ -391,7 +393,7 @@ then
> set -- "$*"
> set -- ${*// /\\|}
>
> - sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \
> + $SED -n -e "/\<${LOGNAME:-$(whoami)}@/d" \
> -e 's/^\(\(To\|'"$*"'\):[
> '$'\t'']*\)\([^"]*\(,[^"]*\)\+[^" '$'\t'']\)\([ '$'\t'']*<.*>\)/\1"\3"\5/I' \
> -e 's/^To:\(address@hidden)/Recipient-To:\1/Ip' \
> -e 's/^\('"$*"'\):\(address@hidden)/Recipient-Cc:\2/Ip' \
> @@ -483,7 +485,7 @@ then
> if [ -z "$opt_subject" ]
> then
> opt_subject="Re: $(formail -x Subject: < "$opt_reply_to" \
> - | sed -e 's/^ *\([rR][eE]: *\)*//')"
> + | $SED -e 's/^ *\([rR][eE]: *\)*//')"
> fi
> fi
>
> @@ -557,7 +559,7 @@ subject_prefix=${subject_prefix//\'/\'\'}
> subject_prefix=${subject_prefix//\//\\\/}
> p=${subject_prefix//@num@/$(printf %0*d ${#total} 0)}
> p=${p//@total@/$total}
> -sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \
> +$SED -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \
> -e '/^Subject-Prefix:/d' \
> $introduction \
> | $QUILT_DIR/scripts/edmail --charset $opt_charset \
> @@ -573,7 +575,7 @@ fi
> # increment the timestamp by one second and wait with sending until
> # that time has arrived. This allows MUAs to show the messages in the
> # correct order.
> -last_ts=$(date '+%s' -d "$(sed -ne $'s/^Date:[ \t]*//p' $introduction)")
> +last_ts=$(date '+%s' -d "$($SED -ne $'s/^Date:[ \t]*//p' $introduction)")
>
> num=1
> for patch in "address@hidden"; do
> @@ -607,7 +609,7 @@ for patch in "address@hidden"; do
> gsub(/'\''/, "'\'\''", s)
> print options[n] " " r "='\''" s "'\'' \\"
> } }
> ' $body)"
> -# echo "$modify" | sed -e 's/^/>> /' >&2
> +# echo "$modify" | $SED -e 's/^/>> /' >&2
> p=${subject_prefix//@num@/$(printf %0*d ${#total} $num)}
> p=${p//@total@/$total}
>
> @@ -641,7 +643,7 @@ for patch in "address@hidden"; do
> --replace-header Date="\"$new_date\"" \
> To Cc Bcc \
> "$modify" \
> - | sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \
> + | $SED -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \
> -e '/^Subject-Prefix:/d' \
> | $QUILT_DIR/scripts/edmail --remove-empty-headers \
> | process_mail ) 2> $tmpdir/err
> @@ -649,7 +651,7 @@ for patch in "address@hidden"; do
> status=$?
> if [ -s $tmpdir/err ]
> then
> - sed -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2
> + $SED -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2
> fi
> if [ $status -ne 0 ]
> then
> diff --git a/quilt/refresh.in b/quilt/refresh.in
> index 6c6b4d0..29cf57e 100644
> --- a/quilt/refresh.in
> +++ b/quilt/refresh.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -285,7 +287,7 @@ then
> function print_diffstat(arr, i) {
> if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \
> -p$num_strip_level \
> - $tmp_patch | sed -e s:^:"'" prefix ":"))
> + $tmp_patch | $SED -e s:^:"'" prefix ":"))
> exit 1
> }
> { prefix=""
> diff --git a/quilt/scripts/inspect.in b/quilt/scripts/inspect.in
> index e8eff26..0d0b868 100644
> --- a/quilt/scripts/inspect.in
> +++ b/quilt/scripts/inspect.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> : address@hidden@}
>
> if ! [ -r $QUILT_DIR/scripts/patchfns ]
> @@ -162,7 +164,7 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
> then
> ( cd $RPM_BUILD_DIR
> find . -type f \
> - | sed -e 's:^.\/::' \
> + | $SED -e 's:^.\/::' \
> | xargs md5sum \
> ) > $tmpdir/more-md5sums
> fi
> diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in
> index e89474f..0a56090 100644
> --- a/quilt/scripts/patchfns.in
> +++ b/quilt/scripts/patchfns.in
> @@ -7,6 +7,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> export TEXTDOMAIN=quilt
> export address@hidden@
>
> @@ -79,19 +81,19 @@ trap run_exit_handlers EXIT
> # Quote a string for use in a basic regular expression.
> quote_bre()
> {
> - echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g'
> + echo "$1" | $SED -e 's:\([][^$/.*\\]\):\\\1:g'
> }
>
> # Quote a string for use in an extended regular expression.
> quote_re()
> {
> - echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g'
> + echo "$1" | $SED -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g'
> }
>
> # Quote a string for use in a globing pattern.
> quote_glob()
> {
> - echo "$1" | sed -e 's:\([][*?\\]\):\\\1:g'
> + echo "$1" | $SED -e 's:\([][*?\\]\):\\\1:g'
> }
>
> patch_file_name()
> @@ -326,7 +328,7 @@ cat_series()
> {
> if [ -e $SERIES ]
> then
> - sed -e '/^#/d' -e 's/^[ '$'\t'']*//' \
> + $SED -e '/^#/d' -e 's/^[ '$'\t'']*//' \
> -e 's/[ '$'\t''].*//' -e '/^$/d' $SERIES
> else
> return 1
> @@ -514,7 +516,7 @@ find_patch()
>
> local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/}
> local bre=$(quote_bre "$patch")
> - set -- $(sed -e
> "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([
> "$'\t'"]\|$\)/!d" \
> + set -- $($SED -e
> "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([
> "$'\t'"]\|$\)/!d" \
> -e 's/[ '$'\t''].*//' $SERIES)
> if [ $# -eq 1 ]
> then
> @@ -657,7 +659,7 @@ files_in_patch()
> then
> find "$path" -type f \
> -a ! -path "$(quote_glob "$path")/.timestamp" |
> - sed -e "s/$(quote_bre "$path")\///"
> + $SED -e "s/$(quote_bre "$path")\///"
> fi
> }
>
> @@ -918,8 +920,8 @@ next_filename()
> {
> local patch=$1 base num
> base=$(echo "$patch" \
> - | sed -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e
> 's:(\.diff?|\.patch)$::')
> - num=$(echo "$base" | sed -nre 's:.*-([0-9]+)$:\1:'p)
> + | $SED -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e
> 's:(\.diff?|\.patch)$::')
> + num=$(echo "$base" | $SED -nre 's:.*-([0-9]+)$:\1:'p)
> [ -n "$num" ] || num=1
> echo "${base%-$num}-$((num+1))${patch#$base}"
> }
> diff --git a/quilt/setup.in b/quilt/setup.in
> index 0930a89..fa4ad44 100644
> --- a/quilt/setup.in
> +++ b/quilt/setup.in
> @@ -6,6 +6,8 @@
> #
> # See the COPYING and AUTHORS files for more details.
>
> address@hidden@
> +
> # Read in library functions
> if [ "$(type -t patch_file_name)" != function ]
> then
> @@ -75,12 +77,12 @@ create_symlink() {
> fi
>
> set -- "$(echo "$PWD/$target" | \
> - sed -r -e 's://:/:g' \
> + $SED -r -e 's://:/:g' \
> -e ':again' \
> -e 's:/[^/]+/\.\.(/|$):\1:g' \
> -e 'tagain')" \
> "$(echo "$PWD/$link" | \
> - sed -r -e 's://:/:g' \
> + $SED -r -e 's://:/:g' \
> -e ':again' \
> -e 's:/[^/]+/\.\.(/|$):\1:g' \
> -e 'tagain')"
> @@ -88,7 +90,7 @@ create_symlink() {
> do
> set -- "${1#*/}" "${2#*/}"
> done
> - up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g')
> + up=$(echo "${2%/*}" | $SED -re 's:[^/]+:..:g')
> set -- "${up:+$up/}$1"
> set -- "${1%/}"
> ln -s "${1:-.}" "$link"
> --
> 1.8.4.5
>
>
> _______________________________________________
> Quilt-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/quilt-dev
--
Data and source codes are to scientific experimental studies what
proofs are to mathematics. They thus need to be reviewed and shared.