mercurial/help/internals/wireprotocol.txt
changeset 37319 36d17f37db91
parent 37299 e9aadee698cf
child 37393 afcfdf53e4b5
--- 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.