diff options
author | Eric Wong <e@80x24.org> | 2021-05-09 11:16:13 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-05-09 18:23:17 +0000 |
commit | 54bc9f163df414237eeb153b4c3c70ca0e9a61f4 (patch) | |
tree | 2ed8c1e42d8f8224c5775c0cdb53a6755b46a0b3 /t | |
parent | 36fa9327fd83085d9384e3d1941d9ca678308149 (diff) | |
download | public-inbox-54bc9f163df414237eeb153b4c3c70ca0e9a61f4.tar.gz |
git always quotes with leading zeros to ensure the octal representation is 3 characters long. We enforce that to match low ASCII characters (e.g. [x01-\x06]) that don't need the range provided by 3 characters. git_unquote now does a single pass so it won't get fooled by decoded backslashes into parsing a digit as an octal character. git_unquote is also capped to "\377" so we don't overflow a byte.
Diffstat (limited to 't')
-rw-r--r-- | t/git.t | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -168,5 +168,7 @@ is(git_quote($s = "Eléanor"), '"El\\303\\251anor"', 'quoted octal'); is(git_quote($s = "hello\"world"), '"hello\"world"', 'quoted dq'); is(git_quote($s = "hello\\world"), '"hello\\\\world"', 'quoted backslash'); is(git_quote($s = "hello\nworld"), '"hello\\nworld"', 'quoted LF'); +is(git_quote($s = "hello\x06world"), '"hello\\006world"', 'quoted \\x06'); +is(git_unquote($s = '"hello\\006world"'), "hello\x06world", 'unquoted \\x06'); done_testing(); |