From: "ZHANG, Le" <r0bertz@gentoo.org>
To: git@vger.kernel.org
Cc: "ZHANG, Le" <r0bertz@gentoo.org>
Subject: [PATCH v4 3/4] git mailinfo: added a --recode-patch parameter
Date: Mon, 29 Nov 2010 03:10:16 +0800 [thread overview]
Message-ID: <1290971417-4474-4-git-send-email-r0bertz@gentoo.org> (raw)
In-Reply-To: <1290971417-4474-1-git-send-email-r0bertz@gentoo.org>
When this parameter is specified, patch will be converted to a target encoding before applied.
The target encoding defaults to UTF-8. It could also be specified by i18n.patchencoding.
Signed-off-by: ZHANG, Le <r0bertz@gentoo.org>
---
Documentation/git-mailinfo.txt | 6 +++++-
builtin/mailinfo.c | 11 +++++++++--
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt
index 3ea5aad..3e84817 100644
--- a/Documentation/git-mailinfo.txt
+++ b/Documentation/git-mailinfo.txt
@@ -45,7 +45,7 @@ OPTIONS
them. This used to be optional but now it is the default.
+
Note that the patch is always used as-is without charset
-conversion, even with this flag.
+conversion, even with this flag; use '--recode-patch' for that.
--encoding=<encoding>::
Similar to -u. But when re-coding, the charset specified here is
@@ -54,6 +54,10 @@ conversion, even with this flag.
-n::
Disable all charset re-coding of the metadata.
+--recode-patch::
+ Convert the patch from the e-mail to UTF-8 (or the value of the
+ configuration variable i18n.patchencoding if it is set).
+
--scissors::
Remove everything in body before a scissors line. A line that
mainly consists of scissors (either ">8" or "8<") and perforation
diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c
index 1406d9f..96181e6 100644
--- a/builtin/mailinfo.c
+++ b/builtin/mailinfo.c
@@ -12,6 +12,8 @@ static FILE *cmitmsg, *patchfile, *fin, *fout;
static int keep_subject;
static int keep_non_patch_brackets_in_subject;
static const char *metainfo_charset;
+static const char *patch_charset;
+static int recode_patch;
static struct strbuf line = STRBUF_INIT;
static struct strbuf name = STRBUF_INIT;
static struct strbuf email = STRBUF_INIT;
@@ -828,8 +830,10 @@ static int handle_commit_msg(struct strbuf *line)
return 0;
}
-static void handle_patch(const struct strbuf *line)
+static void handle_patch(struct strbuf *line)
{
+ if (recode_patch)
+ convert_to_utf8(line, charset.buf, patch_charset);
fwrite(line->buf, 1, line->len, patchfile);
patch_lines++;
}
@@ -1021,7 +1025,7 @@ static int git_mailinfo_config(const char *var, const char *value, void *unused)
}
static const char mailinfo_usage[] =
- "git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] msg patch < mail >info";
+ "git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n] [--recode-patch] [--scissors | --no-scissors] msg patch < mail >info";
int cmd_mailinfo(int argc, const char **argv, const char *prefix)
{
@@ -1034,6 +1038,7 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix)
def_charset = (git_commit_encoding ? git_commit_encoding : "UTF-8");
metainfo_charset = def_charset;
+ patch_charset = git_patch_encoding ? git_patch_encoding : "UTF-8";
while (1 < argc && argv[1][0] == '-') {
if (!strcmp(argv[1], "-k"))
@@ -1046,6 +1051,8 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix)
metainfo_charset = NULL;
else if (!prefixcmp(argv[1], "--encoding="))
metainfo_charset = argv[1] + 11;
+ else if (!prefixcmp(argv[1], "--recode-patch"))
+ recode_patch = 1;
else if (!strcmp(argv[1], "--scissors"))
use_scissors = 1;
else if (!strcmp(argv[1], "--no-scissors"))
--
1.7.3.2.344.gb3680.dirty
next prev parent reply other threads:[~2010-11-28 19:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-28 19:10 [PATCH v4 0/4] add --recode-patch parameter to mailinfo and am ZHANG, Le
2010-11-28 19:10 ` [PATCH v4 1/4] mailinfo.c: convert_to_utf8(): added a target_charset parameter ZHANG, Le
2010-11-29 20:23 ` Junio C Hamano
2011-04-16 6:22 ` ZHANG, Le
2010-11-28 19:10 ` [PATCH v4 2/4] i18n.patchencoding: introduce a new config variable ZHANG, Le
2010-11-29 20:23 ` Junio C Hamano
2010-11-28 19:10 ` ZHANG, Le [this message]
2010-11-29 20:23 ` [PATCH v4 3/4] git mailinfo: added a --recode-patch parameter Junio C Hamano
2010-11-28 19:10 ` [PATCH v4 4/4] git am: " ZHANG, Le
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=1290971417-4474-4-git-send-email-r0bertz@gentoo.org \
--to=r0bertz@gentoo.org \
--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).