diff -r 9954d0e2ad00 -r 36d17f37db91 mercurial/help/internals/wireprotocol.txt --- a/mercurial/help/internals/wireprotocol.txt Mon Apr 02 17:06:42 2018 +0530 +++ b/mercurial/help/internals/wireprotocol.txt Fri Mar 30 14:52:32 2018 -0700 @@ -699,26 +699,16 @@ formatting strings with additional formatters, hence why ``%%`` is required to represent the literal ``%``. -The raw frame consists of a series of data structures representing -textual atoms to print. Each atom begins with a struct defining the -size of the data that follows: +The frame payload consists of a CBOR array of CBOR maps. Each map +defines an *atom* of text data to print. Each *atom* has the following +bytestring keys: -* A 16-bit little endian unsigned integer denoting the length of the - formatting string. -* An 8-bit unsigned integer denoting the number of label strings - that follow. -* An 8-bit unsigned integer denoting the number of formatting string - arguments strings that follow. -* An array of 8-bit unsigned integers denoting the lengths of - *labels* data. -* An array of 16-bit unsigned integers denoting the lengths of - formatting strings. -* The formatting string, encoded as UTF-8. -* 0 or more ASCII strings defining labels to apply to this atom. -* 0 or more UTF-8 strings that will be used as arguments to the - formatting string. - -TODO use ASCII for formatting string. +msg + (bytestring) The formatting string. Content MUST be ASCII. +args (optional) + Array of bytestrings defining arguments to the formatting string. +labels (optional) + Array of bytestrings defining labels to apply to this atom. All data to be printed MUST be encoded into a single frame: this frame does not support spanning data across multiple frames.