git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 22/24] Let usage() take a printf-style format
Date: Tue, 10 Nov 2009 12:16:47 -0800	[thread overview]
Message-ID: <7veio66spc.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: 1257779104-23884-22-git-send-email-jrnieder@gmail.com

Jonathan Nieder <jrnieder@gmail.com> writes:

> merge-recursive and diff --no-index are not able to use usage()
> because their usage strings depend on the circumstances in which
> they are called.

Since die() and warn() are already printf-like, it may be tempting
to do this, but this is wrong.

I do not want to vet all the existing call sites to usage() of make sure
that all of them _happen_ to pass constant strings that do not have any
'%' in them.

Much more importantly, without a patch to future-proof all existing
callsites to modify from

	usage(blame_usage);

to

	usage("%s", blame_usage);

everybody needs to remember that some *_usage strings are special and have
to double % in it forever, which is a maintenance nightmare.

Besides, the majority of usage strings are _expected_ to be constant.
That is an important difference from die/warn whose purpose is to diagnose
and give appropriate message to the situation (hence they benefit from
formatting).

I've renamed this to usagef() and updated your two callers to use it in
the version I queued to 'pu'.

Thanks.

  reply	other threads:[~2009-11-10 20:17 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080125173149.GA10287@edna.gwendoline.at>
2009-11-08  7:11 ` [PATCH] Let 'git <command> -h' show usage without a git dir Jonathan Nieder
2009-11-08  7:26   ` [PATCH] Show usage string for 'git http-push -h' Jonathan Nieder
2009-11-09  8:52     ` Tay Ray Chuan
2009-11-09 10:47       ` [PATCH v2] " Jonathan Nieder
2009-11-09 13:56         ` Tay Ray Chuan
2009-11-08  9:21   ` [PATCH] Let 'git <command> -h' show usage without a git dir Junio C Hamano
2009-11-08 11:03     ` Jonathan Nieder
2009-11-09 15:02       ` [PATCH 00/24] " Jonathan Nieder
2009-11-09 15:04         ` [PATCH 01/24] Retire fetch--tool helper to contrib/examples Jonathan Nieder
2009-11-09 15:04         ` [PATCH 02/24] Show usage string for 'git grep -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 03/24] Show usage string for 'git cherry -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 04/24] Show usage string for 'git commit-tree -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 05/24] Show usage string for 'git merge-ours -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH/RFC 06/24] Show usage string for 'git show-ref -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 07/24] check-ref-format: update usage string Jonathan Nieder
2009-11-10 20:11           ` Junio C Hamano
2009-11-09 15:04         ` [PATCH 08/24] Show usage string for 'git check-ref-format -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 09/24] Show usage string for 'git fast-import -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 10/24] Show usage string for 'git get-tar-commit-id -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 11/24] Show usage string for 'git imap-send -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 12/24] Show usage string for 'git mailsplit -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 13/24] Show usage string for 'git merge-one-file -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 14/24] Show usage string for 'git rev-parse -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 15/24] Show usage string for 'git show-index -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 16/24] Show usage string for 'git unpack-file -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 17/24] Show usage string for 'git stripspace -h' Jonathan Nieder
2009-11-09 15:04         ` [PATCH 18/24] merge: do not setup worktree twice Jonathan Nieder
2009-11-10 20:11           ` Junio C Hamano
2009-11-11  1:58             ` Jonathan Nieder
2009-11-09 15:04         ` [PATCH 19/24] Let 'git http-fetch -h' show usage outside any git repository Jonathan Nieder
2009-11-09 15:05         ` [PATCH 20/24] http-fetch: add missing initialization of argv0_path Jonathan Nieder
2009-11-10 20:12           ` Junio C Hamano
2009-11-10 21:56             ` Johannes Sixt
2009-11-11  1:52             ` Jonathan Nieder
2009-11-09 15:05         ` [PATCH 21/24] Let 'git <command> -h' show usage without a git dir Jonathan Nieder
2009-11-09 15:05         ` [PATCH 22/24] Let usage() take a printf-style format Jonathan Nieder
2009-11-10 20:16           ` Junio C Hamano [this message]
2009-11-09 15:05         ` [PATCH 23/24] merge-{recursive,subtree}: use usage() to print usage Jonathan Nieder
2009-11-09 15:05         ` [PATCH 24/24] diff --no-index: make the usage string less scary Jonathan Nieder

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=7veio66spc.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    /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).