]> git.sur5r.net Git - openocd/commitdiff
Add argument parsing errors in command.h, use in parse_type routines.
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 17 Jun 2009 00:30:44 +0000 (00:30 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 17 Jun 2009 00:30:44 +0000 (00:30 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@2258 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/helper/command.c
src/helper/command.h

index bb3de2cec1e958990de17efa934535663635ebf0..10ff523f1401ec1dabf077514525473d826d520f 100644 (file)
@@ -867,13 +867,15 @@ long jim_global_long(const char *variable)
        int parse##name(const char *str, type *ul) \
        { \
                if (!*str) \
-                       return ERROR_COMMAND_SYNTAX_ERROR; \
+                       return ERROR_COMMAND_ARGUMENT_INVALID; \
                char *end; \
                *ul = func(str, &end, 0); \
                if (*end) \
-                       return ERROR_COMMAND_SYNTAX_ERROR; \
-               if (*ul == max || (min && min == *ul)) \
-                       return ERROR_COMMAND_SYNTAX_ERROR; \
+                       return ERROR_COMMAND_ARGUMENT_INVALID; \
+               if (*ul == max) \
+                       return ERROR_COMMAND_ARGUMENT_OVERFLOW; \
+               if (min && min == *ul) \
+                       return ERROR_COMMAND_ARGUMENT_UNDERFLOW; \
                return ERROR_OK; \
        }
 DEFINE_PARSE_NUM_TYPE(_ulong, unsigned long , strtoul, 0, ULONG_MAX)
@@ -889,9 +891,9 @@ DEFINE_PARSE_NUM_TYPE(_llong, long long, strtoll, LLONG_MIN, LLONG_MAX)
                if (ERROR_OK != retval) \
                        return retval; \
                if (n > max) \
-                       return ERROR_COMMAND_SYNTAX_ERROR; \
+                       return ERROR_COMMAND_ARGUMENT_OVERFLOW; \
                if (min) \
-                       return ERROR_COMMAND_SYNTAX_ERROR; \
+                       return ERROR_COMMAND_ARGUMENT_UNDERFLOW; \
                *ul = n; \
                return ERROR_OK; \
        }       
index e4908dd0e2ca4ff6d875be8cdb251d403238b02b..565a83e68bc0d071a72965af41ae43dc7012d80c 100644 (file)
@@ -98,6 +98,9 @@ extern void process_jim_events(void);
 #define                ERROR_COMMAND_CLOSE_CONNECTION          (-600)
 #define                ERROR_COMMAND_SYNTAX_ERROR                      (-601)
 #define                ERROR_COMMAND_NOTFOUND                          (-602)
+#define                ERROR_COMMAND_ARGUMENT_INVALID          (-603)
+#define                ERROR_COMMAND_ARGUMENT_OVERFLOW         (-604)
+#define                ERROR_COMMAND_ARGUMENT_UNDERFLOW        (-605)
 
 extern int fast_and_dangerous;