[gmime] Fixed html filter to convert last line even if it doesn't end with a \n
- From: Jeffrey Stedfast <fejj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gmime] Fixed html filter to convert last line even if it doesn't end with a \n
- Date: Tue, 19 Feb 2013 14:38:28 +0000 (UTC)
commit f6e4705af82328fef61eabd5dd8a8d1424743758
Author: Jeffrey Stedfast <fejj gnome org>
Date: Tue Feb 19 09:37:25 2013 -0500
Fixed html filter to convert last line even if it doesn't end with a \n
2013-02-19 Jeffrey Stedfast <fejj gnome org>
* gmime/gmime-filter-html.c (html_convert): Fixed to convert the
last line of input even if it doesn't end with a \n.
ChangeLog | 5 +++++
gmime/gmime-filter-html.c | 25 +++++++++++--------------
2 files changed, 16 insertions(+), 14 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 3a333b6..88b9859 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-19 Jeffrey Stedfast <fejj gnome org>
+
+ * gmime/gmime-filter-html.c (html_convert): Fixed to convert the
+ last line of input even if it doesn't end with a \n.
+
2013-02-18 Jeffrey Stedfast <fejj gnome org>
* README: Bumped version
diff --git a/gmime/gmime-filter-html.c b/gmime/gmime-filter-html.c
index 9a00fb0..75c0fc1 100644
--- a/gmime/gmime-filter-html.c
+++ b/gmime/gmime-filter-html.c
@@ -321,7 +321,7 @@ html_convert (GMimeFilter *filter, char *in, size_t inlen, size_t prespace,
g_mime_filter_set_size (filter, inlen * 2 + 6, FALSE);
- inptr = in;
+ start = inptr = in;
inend = in + inlen;
outptr = filter->outbuf;
outend = filter->outbuf + filter->outsize;
@@ -331,11 +331,13 @@ html_convert (GMimeFilter *filter, char *in, size_t inlen, size_t prespace,
html->pre_open = TRUE;
}
- start = inptr;
- while (inptr < inend && *inptr != '\n')
- inptr++;
-
- while (inptr < inend) {
+ do {
+ while (inptr < inend && *inptr != '\n')
+ inptr++;
+
+ if (inptr == inend && !flush)
+ break;
+
html->column = 0;
depth = 0;
@@ -416,18 +418,13 @@ html_convert (GMimeFilter *filter, char *in, size_t inlen, size_t prespace,
outptr = g_stpcpy (outptr, "<br>");
}
- *outptr++ = '\n';
+ if (inptr < inend)
+ *outptr++ = '\n';
start = ++inptr;
- while (inptr < inend && *inptr != '\n')
- inptr++;
- }
+ } while (inptr < inend);
if (flush) {
- /* flush the rest of our input buffer */
- if (start < inend)
- outptr = writeln (filter, start, inend, outptr, &outend);
-
if (html->pre_open) {
/* close the pre-tag */
outptr = check_size (filter, outptr, &outend, 10);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]