[gmime/gmime-2-4] Optimized g_mime_strdup_trim() and updated parser to use it
- From: Jeffrey Stedfast <fejj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gmime/gmime-2-4] Optimized g_mime_strdup_trim() and updated parser to use it
- Date: Wed, 24 Oct 2012 03:29:43 +0000 (UTC)
commit 81c6188cf2f8545eeb0935e5e2091d526736c66c
Author: Jeffrey Stedfast <fejj gnome org>
Date: Mon Feb 20 12:02:46 2012 -0500
Optimized g_mime_strdup_trim() and updated parser to use it
2012-02-20 Jeffrey Stedfast <fejj gnome org>
* gmime/gmime-common.c (g_mime_strdup_trim): Optimized.
* gmime/gmime-parser.c (header_parse): Use g_mime_strdup_trim()
instead of reimplementing the same logic here.
ChangeLog | 7 +++++++
gmime/gmime-common.c | 12 ++++--------
gmime/gmime-parser.c | 26 ++++----------------------
3 files changed, 15 insertions(+), 30 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 99ea655..52bb052 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-02-20 Jeffrey Stedfast <fejj gnome org>
+
+ * gmime/gmime-common.c (g_mime_strdup_trim): Optimized.
+
+ * gmime/gmime-parser.c (header_parse): Use g_mime_strdup_trim()
+ instead of reimplementing the same logic here.
+
2012-02-19 Jeffrey Stedfast <fejj gnome org>
* gmime/gmime-encodings.c (g_mime_content_encoding_from_string):
diff --git a/gmime/gmime-common.c b/gmime/gmime-common.c
index 6e0f53a..513174b 100644
--- a/gmime/gmime-common.c
+++ b/gmime/gmime-common.c
@@ -68,7 +68,8 @@ char *
g_mime_strdup_trim (const char *str)
{
register const char *inptr = str;
- const char *start, *end;
+ register const char *end;
+ const char *start;
while (is_lwsp (*inptr))
inptr++;
@@ -77,13 +78,8 @@ g_mime_strdup_trim (const char *str)
end = inptr;
while (*inptr) {
- while (*inptr && !is_lwsp (*inptr))
- inptr++;
-
- end = inptr;
-
- while (is_lwsp (*inptr))
- inptr++;
+ if (!is_lwsp (*inptr++))
+ end = inptr;
}
return g_strndup (start, (size_t) (end - start));
diff --git a/gmime/gmime-parser.c b/gmime/gmime-parser.c
index be30b25..5867e6d 100644
--- a/gmime/gmime-parser.c
+++ b/gmime/gmime-parser.c
@@ -34,6 +34,7 @@
#include "gmime-parse-utils.h"
#include "gmime-stream-mem.h"
#include "gmime-multipart.h"
+#include "gmime-common.h"
#include "gmime-part.h"
#if GLIB_MAJOR_VERSION > 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 14)
@@ -915,10 +916,8 @@ static void
header_parse (GMimeParser *parser, HeaderRaw **tail)
{
struct _GMimeParserPrivate *priv = parser->priv;
- register char *inptr, *end;
+ register char *inptr;
HeaderRaw *header;
- char *start;
- size_t hlen;
*priv->headerptr = '\0';
inptr = priv->headerbuf;
@@ -937,28 +936,11 @@ header_parse (GMimeParser *parser, HeaderRaw **tail)
return;
}
- hlen = inptr - priv->headerbuf;
-
header = g_slice_new (HeaderRaw);
header->next = NULL;
- header->name = g_strndup (priv->headerbuf, hlen);
-
- /* skip over leading lwsp */
- inptr++;
- while (is_lwsp (*inptr))
- inptr++;
-
- /* cut trailing lwsp */
- start = inptr;
- end = inptr;
-
- while (*inptr) {
- if (!is_lwsp (*inptr++))
- end = inptr;
- }
-
- header->value = g_strndup (start, (size_t) (end - start));
+ header->name = g_strndup (priv->headerbuf, (size_t) (inptr - priv->headerbuf));
+ header->value = g_mime_strdup_trim (inptr + 1);
header->offset = priv->header_offset;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]