git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v2] config: Use parseopt.
Date: Sun, 15 Feb 2009 11:04:11 +0200	[thread overview]
Message-ID: <94a0d4530902150104n555b845bofc5897230c64a5f2@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0902142328530.10279@pacific.mpi-cbg.de>

On Sun, Feb 15, 2009 at 12:32 AM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Sat, 14 Feb 2009, Felipe Contreras wrote:
>
>> On Sat, Feb 14, 2009 at 9:59 PM, Johannes Schindelin
>> <Johannes.Schindelin@gmx.de> wrote:
>>
>> > On Sat, 14 Feb 2009, Felipe Contreras wrote:
>> >
>> >> @@ -231,7 +264,7 @@ static int get_diff_color_found;
>> >>  static int git_get_colorbool_config(const char *var, const char *value,
>> >>               void *cb)
>> >>  {
>> >> -     if (!strcmp(var, get_color_slot)) {
>> >> +     if (!strcmp(var, get_colorbool_slot)) {
>> >>               get_colorbool_found =
>> >>                       git_config_colorbool(var, value, stdout_is_tty);
>> >>       }
>> >
>> > Name changes like this make it harder to read the patch; can you separate
>> > that change out into its own patch?
>>
>> In that case I couldn't use OPT_STRING to store that value; I would
>> have to change --get-color* to use OPT_BOOLEAN or OPT_SET_INT and
>> store check the argc (since OPT_STRING isn't doing that anymore) and
>> save argv[1] to get_color_slot,
>
> What I meant was: have a patch renaming get_color_slot to
> get_colorbool_slot _before_ the (already large) parseoptification.

Done.

>> >> +                     die("unable to read config file %s: %s", file,
>> >> +                         strerror(errno));
>> >
>> > Do we really only want to die() in case we know the file name?  AFAICT at
>> > this point we have no idea in which of the possibly three files the error
>> > occurred.  And there need not be any errno set, for example when there was
>> > a parse error.
>>
>> Yes, there should be an error even if 'file' is not set. But if the
>> file is set what's wrong with that die command?
>
> I think we should die() in all cases, not just one, and we might want to
> skip the "file" parameter (and the "errno") parameter, as the file
> containing the error could be different from "file".

Done.

>> >> +     else if (actions & ACTION_EDIT) {
>> >> +             const char *config_filename;
>> >> +             if (config_exclusive_filename)
>> >> +                     config_filename = config_exclusive_filename;
>> >> +             else
>> >> +                     config_filename = git_path("config");
>> >
>> > Why not reuse config_exclusive_filename here?
>>
>> You mean:
>> if (!config_exclusive_filename)
>>   config_exclusive_filename = git_path("config");
>
> Yes.

I'm not sure about this one. At least git_config should be moved
before that code, otherwise it will only try to read core.editor from
the exclusive_filename and that's not what we want.

If somebody adds some extra code that uses config_exclusive_filename
there would be issues. I would prefer to leave it like that since
that's how the code in config.c is handling config_exclusive_filename.

>> >> +     else if (actions & ACTION_ADD) {
>> >> +             check_argc(argc, 2, 2);
>> >
>> > BTW what about check_argc() in the previous two cases?
>>
>> You mean fail if -e or -l have extra arguments?
>
> Yes.

Done.

>> >> +             return git_config_set_multivar(argv[0], value, "^$", 0);
>> >
>> > Now that I see this, there is another idea for a possible cleanup
>> > after the parseoptification: cmd_config() should not return -1, as
>> > that will be turned into the exit status.  So maybe prefix the return
>> > value with "!!"?
>> >
>> > Or maybe even better: set a variable "ret" and at the end of
>> > cmd_config(), "return !!ret;"?
>>
>> Huh? So git commands don't return negative error values?
>
> AFAICT an exit status is supposed to be between 0 and 127.

Ok. Done.

-- 
Felipe Contreras

  parent reply	other threads:[~2009-02-15  9:05 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-14  2:05 [PATCH] config: Use parseopt Felipe Contreras
2009-02-14  9:28 ` Junio C Hamano
2009-02-14  9:35   ` Junio C Hamano
2009-02-14 10:41     ` Felipe Contreras
2009-02-14 10:37   ` Felipe Contreras
2009-02-14 11:40     ` Johannes Schindelin
2009-02-14 12:03       ` [PATCH v2] " Felipe Contreras
2009-02-14 15:21         ` Jeff King
2009-02-14 15:24           ` Felipe Contreras
2009-02-14 19:59         ` Johannes Schindelin
2009-02-14 20:19           ` Junio C Hamano
2009-02-14 21:08             ` human readable diffs, was " Johannes Schindelin
2009-02-14 20:31           ` Felipe Contreras
2009-02-14 22:32             ` Johannes Schindelin
2009-02-14 22:36               ` Jakub Narebski
2009-02-14 22:54                 ` Johannes Schindelin
2009-02-15  9:04               ` Felipe Contreras [this message]
2009-02-15 11:26                 ` Johannes Schindelin
2009-02-15 12:07                   ` Felipe Contreras
2009-02-15 12:33                     ` Johannes Schindelin
2009-02-15 12:51                       ` Felipe Contreras
2009-02-15 13:38                         ` Felipe Contreras
2009-02-15 19:31               ` Junio C Hamano
2009-02-15 19:41                 ` Johannes Schindelin
2009-02-15 21:22                   ` Junio C Hamano
2009-02-15 21:29                     ` Johannes Schindelin
2009-02-17  0:50                       ` Felipe Contreras
2009-02-15 19:36               ` Junio C Hamano
2009-02-14 12:15       ` [PATCH] " Felipe Contreras
2009-02-14 19:11         ` Johannes Schindelin
2009-02-14 19:14           ` Felipe Contreras
2009-02-14 19:24             ` Johannes Schindelin
2009-02-14 19:26               ` Johannes Schindelin
2009-02-14 21:13                 ` Felipe Contreras
2009-02-14 19:29     ` Junio C Hamano
2009-02-14 20:09       ` Felipe Contreras
2009-02-14 20:35         ` Junio C Hamano
2009-02-14 21:01           ` Felipe Contreras
2009-02-14 21:10         ` Junio C Hamano
2009-02-14 21:24           ` Felipe Contreras
2009-02-14 21:15         ` Johannes Schindelin
2009-02-15  2:22           ` Junio C Hamano
2009-02-14 11:52 ` Jakub Narebski
2009-02-14 12:06   ` Felipe Contreras
2009-02-14 15:17   ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=94a0d4530902150104n555b845bofc5897230c64a5f2@mail.gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).