mirror of https://github.com/python/cpython
Ignore whitespace between formats (not internal to a count+format).
This commit is contained in:
parent
ab0abdcef8
commit
e20aef574a
|
@ -61,6 +61,9 @@ and Python values should be obvious given their types:
|
||||||
A format character may be preceded by an integral repeat count; e.g.\
|
A format character may be preceded by an integral repeat count; e.g.\
|
||||||
the format string \code{'4h'} means exactly the same as \code{'hhhh'}.
|
the format string \code{'4h'} means exactly the same as \code{'hhhh'}.
|
||||||
|
|
||||||
|
Whitespace characters between formats are ignored; a count and its
|
||||||
|
format must not contain whitespace though.
|
||||||
|
|
||||||
For the \code{'s'} format character, the count is interpreted as the
|
For the \code{'s'} format character, the count is interpreted as the
|
||||||
size of the string, not a repeat count like for the other format
|
size of the string, not a repeat count like for the other format
|
||||||
characters; e.g. \code{'10s'} means a single 10-byte string, while
|
characters; e.g. \code{'10s'} means a single 10-byte string, while
|
||||||
|
|
|
@ -61,6 +61,9 @@ and Python values should be obvious given their types:
|
||||||
A format character may be preceded by an integral repeat count; e.g.\
|
A format character may be preceded by an integral repeat count; e.g.\
|
||||||
the format string \code{'4h'} means exactly the same as \code{'hhhh'}.
|
the format string \code{'4h'} means exactly the same as \code{'hhhh'}.
|
||||||
|
|
||||||
|
Whitespace characters between formats are ignored; a count and its
|
||||||
|
format must not contain whitespace though.
|
||||||
|
|
||||||
For the \code{'s'} format character, the count is interpreted as the
|
For the \code{'s'} format character, the count is interpreted as the
|
||||||
size of the string, not a repeat count like for the other format
|
size of the string, not a repeat count like for the other format
|
||||||
characters; e.g. \code{'10s'} means a single 10-byte string, while
|
characters; e.g. \code{'10s'} means a single 10-byte string, while
|
||||||
|
|
|
@ -38,6 +38,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include "mymath.h"
|
#include "mymath.h"
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
|
||||||
/* Exception */
|
/* Exception */
|
||||||
|
@ -981,6 +982,8 @@ calcsize(fmt, f)
|
||||||
s = fmt;
|
s = fmt;
|
||||||
size = 0;
|
size = 0;
|
||||||
while ((c = *s++) != '\0') {
|
while ((c = *s++) != '\0') {
|
||||||
|
if (isspace(c))
|
||||||
|
continue;
|
||||||
if ('0' <= c && c <= '9') {
|
if ('0' <= c && c <= '9') {
|
||||||
num = c - '0';
|
num = c - '0';
|
||||||
while ('0' <= (c = *s++) && c <= '9') {
|
while ('0' <= (c = *s++) && c <= '9') {
|
||||||
|
@ -1075,6 +1078,8 @@ struct_pack(self, args)
|
||||||
res = restart = PyString_AsString(result);
|
res = restart = PyString_AsString(result);
|
||||||
|
|
||||||
while ((c = *s++) != '\0') {
|
while ((c = *s++) != '\0') {
|
||||||
|
if (isspace(c))
|
||||||
|
continue;
|
||||||
if ('0' <= c && c <= '9') {
|
if ('0' <= c && c <= '9') {
|
||||||
num = c - '0';
|
num = c - '0';
|
||||||
while ('0' <= (c = *s++) && c <= '9')
|
while ('0' <= (c = *s++) && c <= '9')
|
||||||
|
@ -1179,6 +1184,8 @@ struct_unpack(self, args)
|
||||||
str = start;
|
str = start;
|
||||||
s = fmt;
|
s = fmt;
|
||||||
while ((c = *s++) != '\0') {
|
while ((c = *s++) != '\0') {
|
||||||
|
if (isspace(c))
|
||||||
|
continue;
|
||||||
if ('0' <= c && c <= '9') {
|
if ('0' <= c && c <= '9') {
|
||||||
num = c - '0';
|
num = c - '0';
|
||||||
while ('0' <= (c = *s++) && c <= '9')
|
while ('0' <= (c = *s++) && c <= '9')
|
||||||
|
|
Loading…
Reference in New Issue