Emphasize role of count for Pascal string.

This commit is contained in:
Georg Brandl 2010-07-10 10:23:40 +00:00
parent b382337ed6
commit 93eb42e805
1 changed files with 9 additions and 11 deletions

View File

@ -259,18 +259,16 @@ then :exc:`struct.error` is raised.
In 3.0, some of the integer formats wrapped out-of-range values and In 3.0, some of the integer formats wrapped out-of-range values and
raised :exc:`DeprecationWarning` instead of :exc:`struct.error`. raised :exc:`DeprecationWarning` instead of :exc:`struct.error`.
The ``'p'`` format character encodes a "Pascal string", meaning a short The ``'p'`` format character encodes a "Pascal string", meaning a short
variable-length string stored in a fixed number of bytes. The count is the total variable-length string stored in a *fixed number of bytes*, given by the count.
number of bytes stored. The first byte stored is the length of the string, or The first byte stored is the length of the string, or 255, whichever is
255, whichever is smaller. The bytes of the string follow. If the string smaller. The bytes of the string follow. If the string passed in to
passed in to :func:`pack` is too long (longer than the count minus 1), only the :func:`pack` is too long (longer than the count minus 1), only the leading
leading count-1 bytes of the string are stored. If the string is shorter than ``count-1`` bytes of the 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 ``count-1``, it is padded with null bytes so that exactly count bytes in all
used. Note that for :func:`unpack`, the ``'p'`` format character consumes count are used. Note that for :func:`unpack`, the ``'p'`` format character consumes
bytes, but that the string returned can never contain more than 255 bytes. ``count`` bytes, but that the string returned can never contain more than 255
bytes.
For the ``'?'`` format character, the return value is either :const:`True` or For the ``'?'`` format character, the return value is either :const:`True` or
:const:`False`. When packing, the truth value of the argument object is used. :const:`False`. When packing, the truth value of the argument object is used.