diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2019-03-10 10:55:54 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2019-03-10 11:00:06 +0200 |
commit | ddf85fb13b49c218a8c33d6eda52d23a888aba60 (patch) | |
tree | 1942d2b2d9a1f16fe8b7beee5ba259cdeb6dd3ea | |
parent | 57d9a048fecafa6ba73810c14802720b2873264d (diff) | |
download | mailutils-ddf85fb13b49c218a8c33d6eda52d23a888aba60.tar.gz mailutils-ddf85fb13b49c218a8c33d6eda52d23a888aba60.tar.bz2 |
Fix encoding of empty input by DOT filter.
* libmailutils/filter/dot.c (_dot_encoder): Don't emit additional
empty line on empty input (i.e. if mu_filter_lastbuf arrives when
dfa is in dot_encode_init state).
* libmailutils/tests/dot.at: Test empty input.
-rw-r--r-- | libmailutils/filter/dot.c | 3 | ||||
-rw-r--r-- | libmailutils/tests/dot.at | 8 | ||||
-rw-r--r-- | libmailutils/tests/testsuite.at | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/libmailutils/filter/dot.c b/libmailutils/filter/dot.c index 1e41df12c..d3a3aab34 100644 --- a/libmailutils/filter/dot.c +++ b/libmailutils/filter/dot.c @@ -180,3 +180,3 @@ _dot_encoder (void *xd, size_t osize; - int *state = xd; + enum dot_encode_state *state = xd; @@ -231,2 +231,3 @@ _dot_encoder (void *xd, { + case dot_encode_init: case dot_encode_lf: diff --git a/libmailutils/tests/dot.at b/libmailutils/tests/dot.at index 1516a1bf8..7be7bb6b2 100644 --- a/libmailutils/tests/dot.at +++ b/libmailutils/tests/dot.at @@ -50,2 +50,10 @@ AT_CLEANUP +AT_SETUP([DOT empty input]) +AT_KEYWORDS([DOT empty input]) +AT_CHECK([fltst dot encode read < /dev/null], +[0], +[. +]) +AT_CLEANUP + AT_SETUP([DOT reversibility]) diff --git a/libmailutils/tests/testsuite.at b/libmailutils/tests/testsuite.at index db284fd86..5e302ee6a 100644 --- a/libmailutils/tests/testsuite.at +++ b/libmailutils/tests/testsuite.at @@ -217,5 +217,5 @@ m4_include([htmlent.at]) m4_include([xml.at]) +m4_include([dot.at]) m4_include([crlf.at]) m4_include([crlfdot.at]) -m4_include([dot.at]) |