Browse Source

Introduce 'git-format-patch --suffix=.patch'

The default can also be changed with "format.suffix" configuration.
Leaving it empty would not add any suffix.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 18 years ago
parent
commit
03eeaeaea5
  1. 17
      Documentation/git-format-patch.txt
  2. 19
      builtin-log.c

17
Documentation/git-format-patch.txt

@ -11,7 +11,7 @@ SYNOPSIS @@ -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,16 @@ OPTIONS @@ -78,6 +78,16 @@ 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`.
+
Note that you would need to include the leading dot `.` if you
want a filename like `0001-description-of-my-change.patch`, and
the first letter does not have to be a dot. Leaving it empty would
not add any suffix.

CONFIGURATION
-------------
You can specify extra mail header lines to be added to each
@ -86,6 +96,11 @@ message in the repository configuration as follows: @@ -86,6 +96,11 @@ message in the repository configuration as follows:
[format]
headers = "Organization: git-foo\n"

You can specify default suffix used:

[format]
suffix = .patch


EXAMPLES
--------

19
builtin-log.c

@ -197,6 +197,7 @@ static int istitlechar(char 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) @@ -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) @@ -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) @@ -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) @@ -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");
strcpy(filename + len, fmt_patch_suffix);
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) @@ -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];
}

Loading…
Cancel
Save