On Sat, 2 Feb 2013 12:39:11 -0500 Dave Reisner <[email protected]> wrote:
> On Sat, Feb 02, 2013 at 10:16:19AM -0500, Andrew Gregory wrote: > > This prevents multiple spaces between values from being > > parsed as empty values. > > > > Signed-off-by: Andrew Gregory <[email protected]> > > --- > > src/pacman/conf.c | 15 ++++++--------- > > 1 file changed, 6 insertions(+), 9 deletions(-) > > > > diff --git a/src/pacman/conf.c b/src/pacman/conf.c > > index 1bea2b0..d407296 100644 > > --- a/src/pacman/conf.c > > +++ b/src/pacman/conf.c > > @@ -373,17 +373,14 @@ static int process_cleanmethods(alpm_list_t *values, > > static void setrepeatingoption(char *ptr, const char *option, > > alpm_list_t **list) > > { > > - char *q; > > + char *val, *saveptr; > > > > - while((q = strchr(ptr, ' '))) { > > - *q = '\0'; > > - *list = alpm_list_add(*list, strdup(ptr)); > > - pm_printf(ALPM_LOG_DEBUG, "config: %s: %s\n", option, ptr); > > - ptr = q; > > - ptr++; > > It'd be nice to see if there's any history on why this function was > written this way (as to avoid modifying the input string). > Just to be clear, the current version modifies it as well. As for why... I have no idea. It goes all the way back to the initial commit. > > + val = strtok_r(ptr, " ", &saveptr); > > + while(val) { > > + *list = alpm_list_add(*list, strdup(val)); > > + pm_printf(ALPM_LOG_DEBUG, "config: %s: %s\n", option, val); > > + val = strtok_r(NULL, " ", &saveptr); > > } > > - *list = alpm_list_add(*list, strdup(ptr)); > > - pm_printf(ALPM_LOG_DEBUG, "config: %s: %s\n", option, ptr); > > } > > > > static int _parse_options(const char *key, char *value, > > -- > > 1.8.1.2 > > > > >
