From: Jeff Sipek Date: Wed, 07 May 2014 21:15:02 GMT Subject: Re: [GUILT 24/28] disp no longer processes backslashes. Message-ID: <20140507211502.GC1459@meili.valhalla.31bits.net> In-Reply-To: <1395387126-13681-25-git-send-email-cederp@opera.com> On Fri, Mar 21, 2014 at 08:32:02AM +0100, Per Cederqvist wrote: > Only one invocation of "disp" or "_disp" actually needed backslash > processing. In quite a few instances, it was wrong to do backslash > processing, as the message contained data derived from the user. > > Created the new function "disp_e" that should be used when backslash > processing is required, and changed "disp" and "disp_" to use printf s/disp_/_disp/ otherwise LGTM > code %s instead of "%b". > > Signed-off-by: Per Cederqvist > --- > guilt | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/guilt b/guilt > index ca922aa..36cfd1e 100755 > --- a/guilt > +++ b/guilt > @@ -36,15 +36,24 @@ usage() > exit 1 > } > > -# echo -n is a bashism, use printf instead > +# Print arguments, but no trailing newline. > +# (echo -n is a bashism, use printf instead) > _disp() > { > - printf "%b" "$*" > + printf "%s" "$*" > } > > -# echo -e is a bashism, use printf instead > +# Print arguments. > +# (echo -E is a bashism, use printf instead) > disp() > { > + printf "%s\n" "$*" > +} > + > +# Print arguments, processing backslash sequences. > +# (echo -e is a bashism, use printf instead) > +disp_e() > +{ > printf "%b\n" "$*" > } > > @@ -117,7 +126,7 @@ else > > disp "" > disp "Example:" > - disp "\tguilt push" > + disp_e "\tguilt push" > > # now, let's exit > exit 1 > -- > 1.8.3.1 > -- We have joy, we have fun, we have Linux on a Sun...