git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@shadowen.org>
To: Junio C Hamano <junkio@cox.net>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	git@vger.kernel.org, Josh Boyer <jwboyer@gmail.com>
Subject: Re: [PATCH] Introduce 'git-format-patch --suffix=patch'
Date: Wed, 17 Jan 2007 19:20:48 +0000	[thread overview]
Message-ID: <45AE7710.40503@shadowen.org> (raw)
In-Reply-To: <7v4pqpsbre.fsf_-_@assigned-by-dhcp.cox.net>

Junio C Hamano wrote:
> The default can also be changed with "format.suffix" configuration.
> 
> Signed-off-by: Junio C Hamano <junkio@cox.net>
> ---
> 
>   Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
>   > Why not
>   >
>   > 	static const char *file_extension = ".txt"
>   >
>   > Hmm?
> 
>   Let's do this instead.  By the way, there is a bug in the
>   configuration parsing for format.headers from commit 20ff0680,
>   which needs to be check NULLness of the value the same way as
>   this one deals with format.suffix, which I've already fixed in
>   my tree.
> 
>  Documentation/git-format-patch.txt |   13 ++++++++++++-
>  builtin-log.c                      |   19 ++++++++++++++++---
>  2 files changed, 28 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
> index 67425dc..34abd2f 100644
> --- a/Documentation/git-format-patch.txt
> +++ b/Documentation/git-format-patch.txt
> @@ -11,7 +11,7 @@ SYNOPSIS
>  [verse]
>  'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
>  	           [-s | --signoff] [--diff-options] [--start-number <n>]
> -		   [--in-reply-to=Message-Id]
> +		   [--in-reply-to=Message-Id] [--suffix=<sfx>]
>  		   <since>[..<until>]
>  
>  DESCRIPTION
> @@ -78,6 +78,12 @@ OPTIONS
>  	reply to the given Message-Id, which avoids breaking threads to
>  	provide a new patch series.
>  
> +--suffix=<sfx>::
> +	Instead of using `txt` as the suffix for generated
> +	filenames, use specifed suffix.  A common alternative is
> +	`--suffix=patch`.
> +
> +
>  CONFIGURATION
>  -------------
>  You can specify extra mail header lines to be added to each
> @@ -86,6 +92,11 @@ message in the repository configuration as follows:
>  [format]
>          headers = "Organization: git-foo\n"
>  
> +You can specify default suffix used:
> +
> +[format]
> +        suffix = patch
> +
>  
>  EXAMPLES
>  --------
> diff --git a/builtin-log.c b/builtin-log.c
> index a59b4ac..04e3144 100644
> --- a/builtin-log.c
> +++ b/builtin-log.c
> @@ -197,6 +197,7 @@ static int istitlechar(char c)
>  
>  static char *extra_headers = NULL;
>  static int extra_headers_size = 0;
> +static const char *fmt_patch_suffix = "txt";
>  
>  static int git_format_config(const char *var, const char *value)
>  {
> @@ -208,6 +209,12 @@ static int git_format_config(const char *var, const char *value)
>  		strcat(extra_headers, value);
>  		return 0;
>  	}
> +	if (!strcmp(var, "format.suffix")) {
> +		if (!value)
> +			die("format.suffix without value");
> +		fmt_patch_suffix = xstrdup(value);
> +		return 0;
> +	}
>  	if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff")) {
>  		return 0;
>  	}
> @@ -223,9 +230,10 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
>  	char filename[1024];
>  	char *sol;
>  	int len = 0;
> +	int suffix_len = strlen(fmt_patch_suffix) + 10; /* ., NUL and slop */
>  
>  	if (output_directory) {
> -		strlcpy(filename, output_directory, 1010);
> +		strlcpy(filename, output_directory, 1000);
>  		len = strlen(filename);
>  		if (filename[len - 1] != '/')
>  			filename[len++] = '/';
> @@ -249,7 +257,10 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
>  			}
>  		}
>  
> -		for (j = 0; len < 1024 - 6 && sol[j] && sol[j] != '\n'; j++) {
> +		for (j = 0;
> +		     len < sizeof(filename) - suffix_len &&
> +			     sol[j] && sol[j] != '\n';
> +		     j++) {
>  			if (istitlechar(sol[j])) {
>  				if (space) {
>  					filename[len++] = '-';
> @@ -265,7 +276,7 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
>  		while (filename[len - 1] == '.' || filename[len - 1] == '-')
>  			len--;
>  	}
> -	strcpy(filename + len, ".txt");
> +	sprintf(filename + len, ".%s", fmt_patch_suffix);

This doesn't give us any possibility of not having a suffix.  Can we not
include the . in the suffix here so that we can specify it as "".

>  	fprintf(realstdout, "%s\n", filename);
>  	freopen(filename, "w", stdout);
>  }
> @@ -436,6 +447,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
>  				die("Need a Message-Id for --in-reply-to");
>  			in_reply_to = argv[i];
>  		}
> +		else if (!strncmp(argv[i], "--suffix=", 9))
> +			fmt_patch_suffix = argv[i] + 9;
>  		else
>  			argv[j++] = argv[i];
>  	}

-apw

  reply	other threads:[~2007-01-17 19:21 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-17 13:10 [RFC] Add a suffix option to git-format-patch Josh Boyer
2007-01-17 13:49 ` Johannes Schindelin
2007-01-17 14:50   ` Josh Boyer
2007-01-17 16:39   ` Horst H. von Brand
2007-01-17 19:18   ` [PATCH] Introduce 'git-format-patch --suffix=patch' Junio C Hamano
2007-01-17 19:20     ` Andy Whitcroft [this message]
2007-01-17 19:27       ` Junio C Hamano
2007-01-17 19:51         ` Brian Gernhardt
2007-01-17 19:57           ` Junio C Hamano
2007-01-17 20:08             ` Brian Gernhardt
2007-01-17 20:22     ` [PATCH] Make format-patch --suffix="" not add any suffix Brian Gernhardt
2007-01-18  1:11     ` [PATCH] Introduce 'git-format-patch --suffix=patch' Johannes Schindelin
2007-01-17 15:43 ` [RFC] Add a suffix option to git-format-patch David Kågedal
2007-01-17 16:57   ` Andreas Ericsson
2007-01-17 17:05     ` Johannes Schindelin
2007-01-17 17:33   ` Junio C Hamano
2007-01-17 18:15     ` David Kågedal
2007-01-17 20:18     ` Josh Boyer
2007-01-17 20:20       ` Josh Boyer
     [not found]       ` <7vsle9p8pg.fsf@assigned-by-dhcp.cox.net>
2007-01-18  0:06         ` [PATCH/POLL] git-format-patch: the default suffix is now .patch, not .txt Junio C Hamano
2007-01-18  1:06           ` Johannes Schindelin
2007-01-18  7:59           ` Alex Riesen
2007-01-18  8:06             ` Shawn O. Pearce
2007-01-18  8:18               ` Alex Riesen
2007-01-18  9:10                 ` Junio C Hamano
2007-01-18  9:21                   ` Alex Riesen
2007-01-18  8:43             ` Junio C Hamano
2007-01-18  9:35               ` Alex Riesen
2007-01-18 11:52                 ` Josh Boyer
2007-01-18 13:33                   ` Johannes Schindelin
2007-01-18 13:46                     ` Alex Riesen
2007-01-18 13:40                   ` Alex Riesen
2007-01-18 14:10                     ` Andreas Ericsson
2007-01-18 14:15                       ` Johannes Schindelin
2007-01-18 14:41                       ` Alex Riesen
2007-01-18 14:49                         ` Johannes Schindelin
2007-01-18 14:53                           ` Alex Riesen
2007-01-18 15:16                             ` Johannes Schindelin
2007-01-18 15:37                               ` Alex Riesen
2007-01-18 15:42                                 ` Josh Boyer
2007-01-18 20:03                                   ` Johannes Schindelin
2007-01-18 20:12                                     ` Josh Boyer
2007-01-18 15:26                         ` Shawn O. Pearce
2007-01-18 15:52                           ` Alex Riesen
2007-01-18 19:29                             ` Steven Grimm
2007-01-18 19:57                               ` Johannes Schindelin
2007-01-18 16:09                           ` Johannes Sixt
2007-01-19 10:11                         ` Jakub Narebski
2007-01-18 15:42                     ` Shawn O. Pearce
2007-01-18 16:05                       ` Alex Riesen
2007-01-18 16:29                       ` Andreas Ericsson
2007-01-18 16:51                         ` Shawn O. Pearce
2007-01-18 17:03                           ` Andreas Ericsson
2007-01-18 19:30                           ` Martin Langhoff
2007-01-18 19:19                         ` Martin Langhoff
2007-01-18 12:40               ` Andreas Ericsson
2007-01-18 15:10                 ` Lukas Sandström
2007-01-18 15:29                 ` Brian Gernhardt
2007-01-18  9:57             ` Alexandre Julliard

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=45AE7710.40503@shadowen.org \
    --to=apw@shadowen.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=jwboyer@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).