/* Copyright (c) 2013-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "buffer.h"
#include "hex-binary.h"
#include "qp-decoder.h"
#include "istream-private.h"
#include "istream-qp.h"
struct qp_decoder_istream {
};
bool close_parent)
{
(struct qp_decoder_istream *)stream;
if (close_parent)
}
{
(struct qp_decoder_istream *)stream;
const unsigned char *data;
const char *error;
int ret;
for (;;) {
/* remove skipped data from buffer */
}
/* stream buffer still at maximum */
return -2;
}
/* if something is already decoded, return as much of it as
we can */
/* only return up to max_buffer_size bytes, even when buffer
actually has more, as not to confuse the caller */
}
/* need to read more input */
if (ret <= 0) {
return ret;
/* end of quoted-printable stream. verify that the
ending is ok. */
return -1;
}
"Invalid quoted-printable input trailer: %s", error);
return -1;
}
"Invalid quoted-printable input 0x%s: %s",
return -1;
}
}
}
static void
{
(struct qp_decoder_istream *)stream;
const char *error;
/* seeking backwards - go back to beginning and seek
forward from there. */
}
}
{
i_stream_get_fd(input), 0);
}