Re: [PATCH] CodingGuidelines: use octal escapes, not hex

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes:
> On Tue, Jun 13, 2023 at 1:44 PM Jonathan Tan <jonathantanmy@xxxxxxxxxx> wrote:
> > Hexadecimal escapes in shell scripts are not portable across shells (in
> > particular, "dash" does not support them). Write in the CodingGuidelines
> > document that we should be using octal escapes instead.
> >
> > Signed-off-by: Jonathan Tan <jonathantanmy@xxxxxxxxxx>
> > ---
> > diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
> > @@ -188,6 +188,9 @@ For shell scripts specifically (not exhaustive):
> > + - Use octal escape sequences (e.g. "\302\242"), not hexadecimal (e.g.
> > +   "\xc2\xa2"), as the latter is not portable.
> 
> The shell itself doesn't interpret these sequences, so this
> description feels too generic. Perhaps it would make more sense to
> cite specific tools for which octal sequences are needed for
> portability reasons, such as `printf`, `sed`, `tr`, etc.

Ah...good point. I checked with "echo" in "dash" and assumed that it
was "dash" that was interpreting the escapes, but indeed it is the
"echo" (and "printf") builtins in "dash" that are actually interpreting
them. What do you think of the following in the commit message:

  Hexadecimal escapes in shell scripts are not portable across shell builtins (in
  particular, the "printf" of "dash" does not support them). Write in the CodingGuidelines
  document that we should be using octal escapes instead.

and in the CodingGuidelines doc:

+ - Use octal escape sequences (e.g. "\302\242"), not hexadecimal (e.g.
+   "\xc2\xa2"), as the latter is not portable across some shell builtins like printf.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux