Git fork

CodingGuidelines: quote assigned value in 'local var=$val'

Dash bug https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097
lets the shell erroneously perform field splitting on the expansion
of a command substitution during declaration of a local or an extern
variable.

The explanation was stolen from ebee5580 (parallel-checkout: avoid
dash local bug in tests, 2021-06-06).

Signed-off-by: Junio C Hamano <gitster@pobox.com>

+12
+12
Documentation/CodingGuidelines
··· 192 192 so we write "variable=value" and then "export variable" on two 193 193 separate lines. 194 194 195 + - Some versions of dash have broken variable assignment when prefixed 196 + with "local", "export", and "readonly", in that the value to be 197 + assigned goes through field splitting at $IFS unless quoted. 198 + 199 + (incorrect) 200 + local variable=$value 201 + local variable=$(command args) 202 + 203 + (correct) 204 + local variable="$value" 205 + local variable="$(command args)" 206 + 195 207 - Use octal escape sequences (e.g. "\302\242"), not hexadecimal (e.g. 196 208 "\xc2\xa2") in printf format strings, since hexadecimal escape 197 209 sequences are not portable.