diff --git a/lib/strings.nix b/lib/strings.nix index f8b01ec1ebc5..7142a156e393 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -998,7 +998,11 @@ rec { ::: */ - escapeC = list: replaceStrings list (map (c: "\\x${toLower (lib.toHexString (charToInt c))}") list); + escapeC = + list: + replaceStrings list ( + map (c: "\\x${fixedWidthString 2 "0" (toLower (lib.toHexString (charToInt c)))}") list + ); /** Escape the `string` so it can be safely placed inside a URL diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index d17231061d69..b072f058d727 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -851,8 +851,8 @@ runTests { }; testEscapeC = { - expr = strings.escapeC [ " " ] "Hello World"; - expected = "Hello\\x20World"; + expr = strings.escapeC [ "\n" " " ] "Hello World\n"; + expected = "Hello\\x20World\\x0a"; }; testEscapeURL = testAllTrue [