Jeff King <peff@xxxxxxxx> writes: > Those encodings don't necessarily need to be the same, because they're > about transport. Inside each process we'd have the raw bytes, and encode > them as appropriate to whatever sub-program we're going to pass to (or > not at all if we skip the shell for sub-processes, which is usually a > good idea). Yes, I share the same feeling. It does not help that the series defines its own notion of arg_needs_armor() and uses it to set a field called requires_armor that is not yet used, the definition of "armor"ing being each byte getting encoded as two hexadecimal digits without any sign (which makes me wonder what a receiver of "deadbeef" would do---did it receive an armored string or a plain one???). I do not understand why these strings are not passed as opaque sequences of bytes and instead converted at this low a layer.