Re: [GUILT PATCH 1/5] get_series: Remove comments from end of series lines
- From
- Josef Sipek <jsipek@fsl.cs.sunysb.edu>
- Date
- Jul 31, 2007, 03:50 UTC
- Message-ID
- <20070731035018.GC12918@filer.fsl.cs.sunysb.edu>
- In-Reply-To
- <11858514812742-git-send-email-eclesh@ucla.edu>
On Mon, Jul 30, 2007 at 08:11:17PM -0700, Eric Lesh wrote: ...
Show 8 quoted lines
> @@ -290,14 +296,17 @@ series_insert_patch()
> # usage: series_remove_patch <patchname>
> series_remove_patch()
> {
> - grep -v "^$1\$" < "$series" > "$series.tmp"
> + grep -v "^$1[[:space:]]*#*" < "$series" > "$series.tmp"
> mv "$series.tmp" "$series"
> }I haven't tested it, but I believe that this change would be very bad...suppose you have series with patches "foo" and "foo-2". Now if you try to remove foo, the regexp would end up being:
"^foo[ ]*#*"
This would match both patches!
Show 6 quoted lines
> # usage: series_rename_patch <oldname> <newname>
> series_rename_patch()
> {
> - awk -v old="$1" -v new="$2" \
> + # Rename the patch, but preserve comments on the line
> + old=$(grep -e "^$1[[:space:]]*" $series)This could match multiple lines.
> + new=$(echo "$old" | sed -e "s,^$1,$2,")
One more comment about sed...there are a number of place in guilt that take patch names and create regexps from them, but don't make sure things get properly escaped. I guess all the sed changes should be done in one go.
Also, beware that this is in a function, so setting $new and $old affects the _all_ of guilt. One way around it would be a force subshell to execute using parenthesis around the contents of the function body.
Show 17 quoted lines
> + awk -v old="$old" -v new="$new" \
> '{ if ($0 == old) print new; else print $0 }' \
> "$series" > "$series.tmp"
>
> diff --git a/regression/050-series.sh b/regression/050-series.sh
> index eb23540..4c47e9d 100755
> --- a/regression/050-series.sh
> +++ b/regression/050-series.sh
> @@ -26,7 +26,7 @@ modify
> add
>
> remove
> -mode
> +mode # and text
> #sure
> DONE
> }Good :)
Jeff.
-- NT is to UNIX what a doughnut is to a particle accelerator.