mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* photoid.c: Include ttyio.h.
* parse-packet.c (skip_rest): Removed. Changed all callers to use the new iobuf_skip_reset. Orginal patch by Florian Weimer. * iobuf.c (iobuf_skip_rest): New. Orginal patch by Florian Weimer. Added new argument PARTIAL.
This commit is contained in:
parent
eda1b80760
commit
87e3264f77
7 changed files with 75 additions and 35 deletions
37
util/iobuf.c
37
util/iobuf.c
|
@ -2120,3 +2120,40 @@ translate_file_handle ( int fd, int for_write )
|
|||
#endif
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
iobuf_skip_rest(IOBUF a, unsigned long n, int partial)
|
||||
{
|
||||
if ( partial ) {
|
||||
for (;;) {
|
||||
if (a->nofast || a->d.start >= a->d.len) {
|
||||
if (iobuf_readbyte (a) == -1) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
unsigned long count = a->d.len - a->d.start;
|
||||
a->nbytes += count;
|
||||
a->d.start = a->d.len;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
unsigned long remaining = n;
|
||||
while (remaining > 0) {
|
||||
if (a->nofast || a->d.start >= a->d.len) {
|
||||
if (iobuf_readbyte (a) == -1) {
|
||||
break;
|
||||
}
|
||||
--remaining;
|
||||
} else {
|
||||
unsigned long count = a->d.len - a->d.start;
|
||||
if (count > remaining) {
|
||||
count = remaining;
|
||||
}
|
||||
a->nbytes += count;
|
||||
a->d.start += count;
|
||||
remaining -= count;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue