From: "Michael S. Tsirkin" <mst@redhat.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Christian Couder <christian.couder@gmail.com>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Subject: [PATCH 2/4] builtin/interpret-trailers: suppress blank line
Date: Thu, 7 Apr 2016 18:23:10 +0300 [thread overview]
Message-ID: <1460042563-32741-3-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1460042563-32741-1-git-send-email-mst@redhat.com>
it's sometimes useful to be able to pass output message of
git-mailinfo through git-interpret-trailers,
but that creates problems since that does not
include the subject and an empty line after that,
making interpret-trailers add an empty line.
Add a flag to bypass adding the blank line.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
trailer.h | 2 +-
builtin/interpret-trailers.c | 9 +++++++--
trailer.c | 10 +++++++---
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/trailer.h b/trailer.h
index 36b40b8..afcf680 100644
--- a/trailer.h
+++ b/trailer.h
@@ -2,6 +2,6 @@
#define TRAILER_H
void process_trailers(const char *file, int in_place, int trim_empty,
- struct string_list *trailers);
+ int suppress_blank_line, struct string_list *trailers);
#endif /* TRAILER_H */
diff --git a/builtin/interpret-trailers.c b/builtin/interpret-trailers.c
index 18cf640..4a92788 100644
--- a/builtin/interpret-trailers.c
+++ b/builtin/interpret-trailers.c
@@ -18,11 +18,14 @@ static const char * const git_interpret_trailers_usage[] = {
int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
{
+ int suppress_blank_line = 0;
int in_place = 0;
int trim_empty = 0;
struct string_list trailers = STRING_LIST_INIT_DUP;
struct option options[] = {
+ OPT_BOOL(0, "suppress-blank-line", &suppress_blank_line,
+ N_("suppress prefixing tailer(s) with a blank line ")),
OPT_BOOL(0, "in-place", &in_place, N_("edit files in place")),
OPT_BOOL(0, "trim-empty", &trim_empty, N_("trim empty trailers")),
OPT_STRING_LIST('t', "trailer", &trailers, N_("trailer"),
@@ -36,11 +39,13 @@ int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
if (argc) {
int i;
for (i = 0; i < argc; i++)
- process_trailers(argv[i], in_place, trim_empty, &trailers);
+ process_trailers(argv[i], in_place, trim_empty,
+ suppress_blank_line, &trailers);
} else {
if (in_place)
die(_("no input file given for in-place editing"));
- process_trailers(NULL, in_place, trim_empty, &trailers);
+ process_trailers(NULL, in_place, trim_empty,
+ suppress_blank_line, &trailers);
}
string_list_clear(&trailers, 0);
diff --git a/trailer.c b/trailer.c
index 8e48a5c..8e5be91 100644
--- a/trailer.c
+++ b/trailer.c
@@ -805,6 +805,7 @@ static void print_lines(FILE *outfile, struct strbuf **lines, int start, int end
static int process_input_file(FILE *outfile,
struct strbuf **lines,
+ int suppress_blank_line,
struct trailer_item **in_tok_first,
struct trailer_item **in_tok_last)
{
@@ -822,7 +823,8 @@ static int process_input_file(FILE *outfile,
/* Print lines before the trailers as is */
print_lines(outfile, lines, 0, trailer_start);
- if (!has_blank_line_before(lines, trailer_start - 1))
+ if (!suppress_blank_line &&
+ !has_blank_line_before(lines, trailer_start - 1))
fprintf(outfile, "\n");
/* Parse trailer lines */
@@ -875,7 +877,8 @@ static FILE *create_in_place_tempfile(const char *file)
return outfile;
}
-void process_trailers(const char *file, int in_place, int trim_empty, struct string_list *trailers)
+void process_trailers(const char *file, int in_place, int trim_empty,
+ int suppress_blank_line, struct string_list *trailers)
{
struct trailer_item *in_tok_first = NULL;
struct trailer_item *in_tok_last = NULL;
@@ -894,7 +897,8 @@ void process_trailers(const char *file, int in_place, int trim_empty, struct str
outfile = create_in_place_tempfile(file);
/* Print the lines before the trailers */
- trailer_end = process_input_file(outfile, lines, &in_tok_first, &in_tok_last);
+ trailer_end = process_input_file(outfile, lines, suppress_blank_line,
+ &in_tok_first, &in_tok_last);
arg_tok_first = process_command_line_args(trailers);
--
MST
next prev parent reply other threads:[~2016-04-07 15:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-07 15:23 [PATCH 0/4] git-am: use trailers to add extra signatures Michael S. Tsirkin
2016-04-07 15:23 ` [PATCH 1/4] builtin/interpret-trailers.c: allow -t Michael S. Tsirkin
2016-04-07 16:55 ` Junio C Hamano
2016-04-07 17:17 ` Matthieu Moy
2016-04-07 17:26 ` Junio C Hamano
2016-04-07 17:30 ` Michael S. Tsirkin
2016-04-07 17:28 ` Michael S. Tsirkin
2016-04-07 17:30 ` Junio C Hamano
2016-04-07 17:52 ` Michael S. Tsirkin
2016-04-07 17:56 ` Junio C Hamano
2016-04-07 15:23 ` Michael S. Tsirkin [this message]
2016-04-07 17:00 ` [PATCH 2/4] builtin/interpret-trailers: suppress blank line Junio C Hamano
2016-04-07 17:21 ` Junio C Hamano
2016-04-07 17:21 ` Michael S. Tsirkin
2016-04-07 17:34 ` Junio C Hamano
2016-04-10 14:56 ` Michael S. Tsirkin
2016-04-07 17:35 ` Matthieu Moy
2016-04-07 15:23 ` [PATCH 3/4] builtin/am: read mailinfo from file Michael S. Tsirkin
2016-04-07 17:08 ` Junio C Hamano
2016-04-07 17:15 ` Michael S. Tsirkin
2016-04-07 17:36 ` Matthieu Moy
2016-04-07 15:23 ` [PATCH 4/4] builtin/am: passthrough -t and --trailer flags Michael S. Tsirkin
2016-04-07 16:39 ` Christian Couder
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=1460042563-32741-3-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.