Use single-quotes to avoid escape sequences (\\n).
Signed-off-by: Masahiro Yamada <[email protected]>
---
Makefile | 8 ++++----
arch/powerpc/Makefile | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 87a9eef3fb4b..d09600f7a036 100644
--- a/Makefile
+++ b/Makefile
@@ -1643,12 +1643,12 @@ help:
@echo ''
@$(if $(boards), \
$(foreach b, $(boards), \
- printf " %-27s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \
+ printf ' %-27s - Build for %s\n' $(b) $(subst _defconfig,,$(b));) \
echo '')
@$(if $(board-dirs), \
$(foreach b, $(board-dirs), \
- printf " %-16s - Show %s-specific targets\\n" help-$(b) $(b);) \
- printf " %-16s - Show all of the above\\n" help-boards; \
+ printf ' %-16s - Show %s-specific targets\n' help-$(b) $(b);) \
+ printf ' %-16s - Show all of the above\n' help-boards; \
echo '')
@echo ' make V=n [targets] 1: verbose build'
@@ -1684,7 +1684,7 @@ $(help-board-dirs): help-%:
@echo 'Architecture specific targets ($(SRCARCH) $*):'
@$(if $(boards-per-dir), \
$(foreach b, $(boards-per-dir), \
- printf " %-24s - Build for %s\\n" $*/$(b) $(subst _defconfig,,$(b));) \
+ printf ' %-24s - Build for %s\n' $*/$(b) $(subst _defconfig,,$(b));) \
echo '')
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index dac7ca153886..f49ac05eae20 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -353,7 +353,7 @@ define archhelp
echo ' (minus the .dts extension).'
echo
$(foreach cfg,$(generated_configs),
- printf " %-27s - Build for %s\\n" $(cfg) $(subst _defconfig,,$(cfg));)
+ printf ' %-27s - Build for %s\n' $(cfg) $(subst _defconfig,,$(cfg));)
endef
PHONY += install
--
2.39.2
On Wed, Aug 30, 2023 at 10:00 AM Nicolas Schier <[email protected]> wrote:
>
> On Tue 29 Aug 2023 20:35:31 GMT, Masahiro Yamada wrote:
> > Use single-quotes to avoid escape sequences (\\n).
> >
> > Signed-off-by: Masahiro Yamada <[email protected]>
> > ---
>
> Is this really necessary? Testing w/ GNU Make 4.3, bash 5.2.15 or
> dash 0.5.12-6 and a stupid Makefile snippet I cannot see any difference
> between these three:
>
> print:
> @printf "hello med single-backslash and double quotes\n"
> @printf 'hello med single-backslash and single quotes\n'
> @printf "hello med double-backslash and double quotes\\n"
>
> Only double-backslash+n in single-quotes does not work, for obvious
> reasons.
You are right.
I was misunderstanding the backslash-escaping in double-quotes.
I always used single-quotes when I wanted to avoid
escape sequences.
The following POSIX spec applies here:
2.2.3 Double-Quotes
The <backslash> shall retain its special meaning as an escape character
(see Escape Character (Backslash)) only when followed by one of the
following characters when considered special:
$ ` " \ <newline>
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
All of "\\n", "\n", '\n' are the same.
--
Best Regards
Masahiro Yamada
...
> All of "\\n", "\n", '\n' are the same.
and \\n (without any quote characters at all).
Personally I'd use 'format' for printf.
To make it obvious that nothing is to be expanded.
But it isn't really worth changing existing 'stuff'.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)