commit e4ace86e387a9496d31c8f7fb628689eb3ecdcd9
Author: Oswald Buddenhagen <[email protected]>
Date: Wed Sep 25 18:53:18 2013 +0200
make next_arg() more readable & efficient
src/drv_imap.c | 42 +++++++++++++++++++++++-------------------
1 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
index abfc760..798320d 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -458,33 +458,37 @@ imap_refcounted_done_box( imap_store_t *ctx ATTR_UNUSED,
struct imap_cmd *cmd, i
}
static char *
-next_arg( char **s )
+next_arg( char **ps )
{
- char *ret;
+ char *ret, *s;
- if (!s || !*s)
+ assert( ps );
+ s = *ps;
+ if (!s)
return 0;
- while (isspace( (unsigned char) **s ))
- (*s)++;
- if (!**s) {
- *s = 0;
+ while (isspace( (unsigned char)*s ))
+ s++;
+ if (!*s) {
+ *ps = 0;
return 0;
}
- if (**s == '"') {
- ++*s;
- ret = *s;
- *s = strchr( *s, '"' );
+ if (*s == '"') {
+ ++s;
+ ret = s;
+ s = strchr( s, '"' );
} else {
- ret = *s;
- while (**s && !isspace( (unsigned char) **s ))
- (*s)++;
+ ret = s;
+ while (*s && !isspace( (unsigned char)*s ))
+ s++;
}
- if (*s) {
- if (**s)
- *(*s)++ = 0;
- if (!**s)
- *s = 0;
+ if (s) {
+ if (*s)
+ *s++ = 0;
+ if (!*s)
+ s = 0;
}
+
+ *ps = s;
return ret;
}
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
isync-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/isync-devel