SF bug [#461674] struct 'p' format doesn't work (maybe)

Rewrote the 'p' description.
This commit is contained in:
Tim Peters 2001-09-15 18:09:22 +00:00
parent e0007821cd
commit 88091aae7e
1 changed files with 11 additions and 7 deletions

View File

@ -94,13 +94,17 @@ For unpacking, the resulting string always has exactly the specified
number of bytes. As a special case, \code{'0s'} means a single, empty number of bytes. As a special case, \code{'0s'} means a single, empty
string (while \code{'0c'} means 0 characters). string (while \code{'0c'} means 0 characters).
The \character{p} format character can be used to encode a Pascal The \character{p} format character encodes a "Pascal string", meaning
string. The first byte is the length of the stored string, with the a short variable-length string stored in a fixed number of bytes.
bytes of the string following. If count is given, it is used as the The count is the total number of bytes stored. The first byte stored is
total number of bytes used, including the length byte. If the string the length of the string, or 255, whichever is smaller. The bytes
passed in to \function{pack()} is too long, the stored representation of the string follow. If the string passed in to \function{pack()} is too
is truncated. If the string is too short, padding is used to ensure long (longer than the count minus 1), only the leading count-1 bytes of the
that exactly enough bytes are used to satisfy the count. string are stored, If the string is shorter than count-1, it is padded
with null bytes so that exactly count bytes in all are used. Note that
for \function{unpack()}, the \character{p} format character consumes count
bytes, but that the string returned can never contain more than 255
characters.
For the \character{I}, \character{L}, \character{q} and \character{Q} For the \character{I}, \character{L}, \character{q} and \character{Q}
format characters, the return value is a Python long integer. format characters, the return value is a Python long integer.