git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Drew Northup <n1xim.email@gmail.com>
To: git@vger.kernel.org
Cc: Jonas Fonseca <fonseca@diku.dk>, Drew Northup <n1xim.email@gmail.com>
Subject: [PATCH] TIG: Fix to reinstate proper operation with no arguments
Date: Thu, 18 Jul 2013 00:51:53 -0400	[thread overview]
Message-ID: <1374123113-3889-1-git-send-email-n1xim.email@gmail.com> (raw)

Since c7d67ab running "tig" with no options has failed with the
error "tig: No revisions match the given arguments." This was due
to a change in how the arguments for the back-end git call was
being constructed. This change caused the blank field left in
place of "(encoding_arg)" when it is empty to not overwrite
"buf" which then caused the value in "buf" to be copied into
dst_argv twice. The resulting git command failed if there was no
available revision named "log" as shown in the trace.

>From the TIG_TRACE log:
git log log --no-color --pretty=raw --parents --parents --
fatal: bad revision 'log'

This fix works by teaching tig that when it is supplied with a
blank field in the source argument buffer that it should skip
over that field and continue instead of copying the previous
field value into the destination buffer a second time.

github issue # 167

Signed-off-by: Drew Northup <n1xim.email@gmail.com>
---

This should apply cleanly to the tig public master whether the
mkstemps() patch I wrote has been applied or not.

 tig.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tig.c b/tig.c
index ba9ba98..1016cfe 100644
--- a/tig.c
+++ b/tig.c
@@ -3105,10 +3105,11 @@ static bool
 format_append_arg(struct format_context *format, const char ***dst_argv, const char *arg)
 {
 	format->bufpos = 0;
+	int len = 0;
 
 	while (arg) {
 		char *next = strstr(arg, "%(");
-		int len = next ? next - arg : strlen(arg);
+		len = next ? next - arg : strlen(arg);
 
 		if (len && !string_format_from(format->buf, &format->bufpos, "%.*s", len, arg))
 			return FALSE;
@@ -3119,7 +3120,11 @@ format_append_arg(struct format_context *format, const char ***dst_argv, const c
 		arg = next ? strchr(next, ')') + 1 : NULL;
 	}
 
-	return argv_append(dst_argv, format->buf);
+	if(len){
+		return argv_append(dst_argv, format->buf);
+	} else {
+		return TRUE;
+	}
 }
 
 static bool
-- 
1.8.0

             reply	other threads:[~2013-07-18  4:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18  4:51 Drew Northup [this message]
2013-07-18 13:30 ` [PATCH] TIG: Fix to reinstate proper operation with no arguments Drew Northup
2013-07-19  4:07   ` Jonas Fonseca
2013-07-19 11:55     ` Drew Northup
2013-07-24 12:29     ` Drew Northup
2013-07-24 12:50       ` [PATCH V2] " Drew Northup
2013-07-29  1:23         ` Jonas Fonseca

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1374123113-3889-1-git-send-email-n1xim.email@gmail.com \
    --to=n1xim.email@gmail.com \
    --cc=fonseca@diku.dk \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).