changeset 1010:3c30228ae095 HEAD

Missing ')' wasn't reported correctly.
author Timo Sirainen <tss@iki.fi>
date Tue, 21 Jan 2003 23:43:23 +0200
parents fb83ce2a26c3
children cdfd647b0cbb
files src/lib-imap/imap-parser.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-parser.c	Tue Jan 21 23:02:30 2003 +0200
+++ b/src/lib-imap/imap-parser.c	Tue Jan 21 23:43:23 2003 +0200
@@ -508,6 +508,7 @@
 	return TRUE;
 }
 
+/* ARG_PARSE_NONE checks that last argument isn't only partially parsed. */
 #define IS_UNFINISHED(parser) \
         ((parser)->cur_type != ARG_PARSE_NONE || \
 	 (parser)->cur_list != parser->root_list)
@@ -534,8 +535,13 @@
 		return -1;
 	} else if ((!IS_UNFINISHED(parser) && count > 0 &&
 		    parser->root_list->size >= count) || parser->eol) {
-		/* all arguments read / end of line. ARG_PARSE_NONE checks
-		   that last argument isn't only partially parsed. */
+		/* all arguments read / end of line. */
+		if (parser->list_arg != NULL) {
+			parser->error = "Missing ')'";
+			*args = NULL;
+			return -1;
+		}
+
 		if (count >= parser->root_list->alloc) {
 			/* unused arguments must be NIL-filled. */
 			parser->root_list = LIST_REALLOC(parser,