From: Ramkumar Ramachandra Date: Mon, 11 Jul 2011 06:12:44 GMT Subject: Re: [RFC PATCH] revert: Persist per-session opts Message-ID: In-Reply-To: <201107101002.06385.chriscool@tuxfamily.org> Hi Christian, Christian Couder writes: > On Saturday 09 July 2011 17:41:58 Ramkumar Ramachandra wrote: >> Save the replay_opts struct in .git/sequencer/opts using a simple "key >> = value" format.  Parse it and populate the options structure before >> replaying. > > [...] > >>  static void format_todo(struct strbuf *buf, struct commit_list *todo_list, >>                       struct replay_opts *opts) >>  { >> @@ -733,6 +759,102 @@ error: >>       die(_("Malformed instruction sheet: %s"), git_path(SEQ_TODO_FILE)); >>  } >> >> +static char *parse_opt_value(char *p, void *key, enum seq_opt_type type, >> +                     parse_opt_cb *cb_function) { >> +     struct option opt; >> +     char *val, *cur, *end; >> + >> +     if (!(val = strchr(p, '='))) >> +             goto error; >> +     if (!*(val + 1)) >> +             goto error; >> +     if (!(end = strchr(p, '\n'))) >> +             goto error; >> +     val += 2; > > It looks like you rely on all lines ending with \n and having a space after > the '='. It may be a little bit too fragile. Right. Thanks for the review -- will try to reuse bits of the git-config parser. -- Ram