[pacman-dev] [PATCH v2 1/1] contrib: Unify quoting in error messages

Dave Reisner d at falconindy.com
Thu Sep 5 14:28:27 EDT 2013


On Thu, Sep 05, 2013 at 01:54:41PM -0400, Aaron Lindsay wrote:
> This fixes error messages to display the contents of variables rather
> than the variable name by replacing backticks with single quotes (m4
> eats backticks). It also removes $"" localization from error messages to
> eliminate security holes.
> 
> For instance, `rankmirrors nonexistent_file' will now display:
> 	'nonexistent_file' does not exist.
> rather than:
> 	$1 does not exist.
> 
> Signed-off-by: Aaron Lindsay <aaron at aclindsay.com>
> ---
>  contrib/bacman.sh.in         |  2 +-
>  contrib/paclog-pkglist.sh.in |  2 +-
>  contrib/rankmirrors.sh.in    | 10 +++++-----
>  contrib/updpkgsums.sh.in     |  2 +-
>  4 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/contrib/bacman.sh.in b/contrib/bacman.sh.in
> index 5435e40..33e3920 100644
> --- a/contrib/bacman.sh.in
> +++ b/contrib/bacman.sh.in
> @@ -124,7 +124,7 @@ fi
>  
>  if [[ ! -d $pkg_dir ]]; then
>  	error "package %s is found in pacman database," "${pkg_name}"
> -	plain "       but \`%s' is not a directory" "${pkg_dir}"
> +	plain "       but '%s' is not a directory" "${pkg_dir}"
>  	exit 1
>  fi
>  
> diff --git a/contrib/paclog-pkglist.sh.in b/contrib/paclog-pkglist.sh.in
> index 9b3abad..b6f4ffe 100755
> --- a/contrib/paclog-pkglist.sh.in
> +++ b/contrib/paclog-pkglist.sh.in
> @@ -43,7 +43,7 @@ if [[ $1 ]]; then
>  		version
>  		exit 0
>  	elif [[ ! -e $logfile ]]; then
> -		printf $"target not found: %s\n" "$1"
> +		printf "target not found: '%s'\n" "$1"

I suppose this was intentional because we're reusing pacman's
translations (which we, for some reason, trust). Notice the TEXTDOMAIN
and TEXTDOMAINDIR vars at the top of the script....

>  		exit 1
>  	fi
>  fi
> diff --git a/contrib/rankmirrors.sh.in b/contrib/rankmirrors.sh.in
> index 875a143..5555edf 100644
> --- a/contrib/rankmirrors.sh.in
> +++ b/contrib/rankmirrors.sh.in
> @@ -127,7 +127,7 @@ while [[ $1 ]]; do
>  			verbose) VERBOSE=1 ; shift ;;
>  			url) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; shift 2;;
>  			repo) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; shift 2;;
> -			*) err "\`$1' is an invalid argument."
> +			*) err "'$1' is an invalid argument."
>  		esac
>  	elif [[ ${1:0:1} = - ]]; then
>  
> @@ -146,7 +146,7 @@ while [[ $1 ]]; do
>  					u) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; snum=2;;
>  					r) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; snum=2;;
>  					n) [[ $2 ]] || err "Must specify number." ; NUM="$2" ; snum=2;;
> -					*) err "\`-$1' is an invald argument." ;;
> +					*) err "'$1' is an invalid argument." ;;
>  				esac
>  			done
>  			shift $snum
> @@ -157,7 +157,7 @@ while [[ $1 ]]; do
>  		[[ $linearray ]] || err "File is empty."
>  		shift
>  	else
> -		err "\`$1' does not exist."
> +		err "'$1' does not exist."
>  	fi
>  done
>  
> @@ -169,7 +169,7 @@ done
>  # Single url handling
>  if [[ $CHECKURL ]]; then
>  	url="$(getfetchurl "$URL")"
> -	[[ $url = fail ]] && err "url \`$URL' is malformed."
> +	[[ $url = fail ]] && err "url '$URL' is malformed."
>  	[[ $VERBOSE ]] && echo "Testing $url..."
>  	time=$(gettime "$url")
>  	echo "$URL : $time"
> @@ -193,7 +193,7 @@ for line in  "${linearray[@]}"; do
>  		server="${line#*= }"
>  		server="${server%%#*}"
>  		url="$(getfetchurl "$server")"
> -		[[ $url = fail ]] && err "url \`$URL' is malformed."
> +		[[ $url = fail ]] && err "url '$URL' is malformed."
>  		time=$(gettime "$url")
>  		timesarray+=("$time $server")
>  
> diff --git a/contrib/updpkgsums.sh.in b/contrib/updpkgsums.sh.in
> index ffea96b..4d35357 100644
> --- a/contrib/updpkgsums.sh.in
> +++ b/contrib/updpkgsums.sh.in
> @@ -67,7 +67,7 @@ fi
>  
>  # Check $PWD/ for permission to unlink the $buildfile and write a new one
>  if [[ ! -w . ]]; then
> -	printf $'==> ERROR: No write permission in `%s\'\n' "$PWD"
> +	printf "==> ERROR: No write permission in '%s'\n" "$PWD"
>  	exit 1
>  fi
>  
> -- 
> 1.8.4
> 
> 


More information about the pacman-dev mailing list