From: Wayne Davison Date: Sun, 19 Feb 2006 23:31:56 +0000 (+0000) Subject: Changed parse_chmod() to return the pointer to the new items on X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/15b03ab1a84ccf4d68963725b20f955d56e5731f Changed parse_chmod() to return the pointer to the new items on success. --- diff --git a/chmod.c b/chmod.c index 8a6adfd8..53aa0595 100644 --- a/chmod.c +++ b/chmod.c @@ -21,9 +21,10 @@ struct chmod_mode_struct { #define STATE_2ND_HALF 2 /* Parse a chmod-style argument, and break it down into one or more AND/OR - * pairs in a linked list. We use a state machine to walk through the - * options. */ -int parse_chmod(const char *modestr, struct chmod_mode_struct **root_mode_ptr) + * pairs in a linked list. We return a pointer to new items on succcess + * (appending the items to the specified list), or NULL on error. */ +struct chmod_mode_struct *parse_chmod(const char *modestr, + struct chmod_mode_struct **root_mode_ptr) { int state = STATE_1ST_HALF; int where = 0, what = 0, op = 0, topbits = 0, topoct = 0, flags = 0; @@ -153,7 +154,7 @@ int parse_chmod(const char *modestr, struct chmod_mode_struct **root_mode_ptr) if (state == STATE_ERROR) { free_chmod_mode(first_mode); - return 0; + return NULL; } if (!(curr_mode = *root_mode_ptr)) @@ -164,7 +165,7 @@ int parse_chmod(const char *modestr, struct chmod_mode_struct **root_mode_ptr) curr_mode->next = first_mode; } - return 1; + return first_mode; }