mirror of
https://github.com/qpdf/qpdf.git
synced 2024-06-01 01:40:51 +00:00
ascii85: ignore whitespace between ~ and > (fixes #973)
This commit is contained in:
parent
27980894bd
commit
806922f643
|
@ -1,5 +1,8 @@
|
||||||
2023-09-03 Jay Berkenbilt <ejb@ql.org>
|
2023-09-03 Jay Berkenbilt <ejb@ql.org>
|
||||||
|
|
||||||
|
* ascii85 parser: ignore spaces everywhere including between ~
|
||||||
|
and >. Fixes #973.
|
||||||
|
|
||||||
* Bug fix: with --pages, if one of the external files had warnings
|
* Bug fix: with --pages, if one of the external files had warnings
|
||||||
but the main file did not, the warning was previously not taken
|
but the main file did not, the warning was previously not taken
|
||||||
into consideration when determining the exit status.
|
into consideration when determining the exit status.
|
||||||
|
|
|
@ -19,6 +19,17 @@ Pl_ASCII85Decoder::write(unsigned char const* buf, size_t len)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < len; ++i) {
|
for (size_t i = 0; i < len; ++i) {
|
||||||
|
switch (buf[i]) {
|
||||||
|
case ' ':
|
||||||
|
case '\f':
|
||||||
|
case '\v':
|
||||||
|
case '\t':
|
||||||
|
case '\r':
|
||||||
|
case '\n':
|
||||||
|
QTC::TC("libtests", "Pl_ASCII85Decoder ignore space");
|
||||||
|
// ignore whitespace
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (eod > 1) {
|
if (eod > 1) {
|
||||||
break;
|
break;
|
||||||
} else if (eod == 1) {
|
} else if (eod == 1) {
|
||||||
|
@ -30,16 +41,6 @@ Pl_ASCII85Decoder::write(unsigned char const* buf, size_t len)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (buf[i]) {
|
switch (buf[i]) {
|
||||||
case ' ':
|
|
||||||
case '\f':
|
|
||||||
case '\v':
|
|
||||||
case '\t':
|
|
||||||
case '\r':
|
|
||||||
case '\n':
|
|
||||||
QTC::TC("libtests", "Pl_ASCII85Decoder ignore space");
|
|
||||||
// ignore whitespace
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '~':
|
case '~':
|
||||||
eod = 1;
|
eod = 1;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -20,4 +20,10 @@ $td->runtest("partial decode",
|
||||||
$td->EXIT_STATUS => 0},
|
$td->EXIT_STATUS => 0},
|
||||||
$td->NORMALIZE_NEWLINES);
|
$td->NORMALIZE_NEWLINES);
|
||||||
|
|
||||||
$td->report(2);
|
$td->runtest("newline between ~ and >",
|
||||||
|
{$td->COMMAND => "echo '\@<5skEHbu7\$3~\n>' | ascii85"},
|
||||||
|
{$td->STRING => "asdfqwer\n",
|
||||||
|
$td->EXIT_STATUS => 0},
|
||||||
|
$td->NORMALIZE_NEWLINES);
|
||||||
|
|
||||||
|
$td->report(3);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user