From: Bryan Donlan <bdonlan@fushizen.net>
To: git@vger.kernel.org
Cc: Johannes Sixt <j.sixt@viscovery.net>,
Adam Roben <aroben@apple.com>,
gitster@pobox.com, Bryan Donlan <bdonlan@fushizen.net>
Subject: [PATCH v2 02/10] config.c: Escape backslashes in section names properly
Date: Thu, 10 Apr 2008 02:50:08 -0400 [thread overview]
Message-ID: <1207810216-27871-3-git-send-email-bdonlan@fushizen.net> (raw)
In-Reply-To: <1207810216-27871-2-git-send-email-bdonlan@fushizen.net>
If an element of the configuration key name other than the first or last
contains a backslash, it is not escaped on output, but is treated as an escape
sequence on input. Thus, the backslash is lost when re-loading the
configuration.
This patch corrects this by having backslashes escaped properly, and
introduces a new test for this bug.
Signed-off-by: Bryan Donlan <bdonlan@fushizen.net>
---
config.c | 2 +-
t/t1303-wacky-config.sh | 6 ++++++
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/config.c b/config.c
index 0624494..6c07245 100644
--- a/config.c
+++ b/config.c
@@ -672,7 +672,7 @@ static int store_write_section(int fd, const char* key)
if (dot) {
strbuf_addf(&sb, "[%.*s \"", (int)(dot - key), key);
for (i = dot - key + 1; i < store.baselen; i++) {
- if (key[i] == '"')
+ if (key[i] == '"' || key[i] == '\\')
strbuf_addch(&sb, '\\');
strbuf_addch(&sb, key[i]);
}
diff --git a/t/t1303-wacky-config.sh b/t/t1303-wacky-config.sh
index 99985dc..f366b53 100755
--- a/t/t1303-wacky-config.sh
+++ b/t/t1303-wacky-config.sh
@@ -34,4 +34,10 @@ test_expect_success 'add key in different section' '
check section2.key bar
'
+SECTION="test.q\"s\\sq'sp e.key"
+test_expect_success 'make sure git-config escapes section names properly' '
+ git config "$SECTION" bar &&
+ check "$SECTION" bar
+'
+
test_done
--
1.5.5.33.gc0a39.dirty
next prev parent reply other threads:[~2008-04-10 6:51 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-09 1:29 [PATCH 0/8] Fix git's test suite to pass when the path contains spaces Bryan Donlan
2008-04-09 1:29 ` [PATCH 1/8] git-rebase.sh: Fix --merge --abort failures when path contains whitespace Bryan Donlan
2008-04-09 1:29 ` [PATCH 2/8] config.c: Escape backslashes in section names properly Bryan Donlan
2008-04-09 1:29 ` [PATCH 3/8] git-send-email.perl: Handle shell metacharacters in $EDITOR properly Bryan Donlan
2008-04-09 1:30 ` [PATCH 4/8] test-lib.sh: Fix some missing path quoting Bryan Donlan
2008-04-09 1:30 ` [PATCH 5/8] test-lib.sh: Add a test_set_editor function to safely set $VISUAL Bryan Donlan
2008-04-09 1:30 ` [PATCH 6/8] lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters Bryan Donlan
2008-04-09 1:30 ` [PATCH 7/8] Use test_set_editor in t9001-send-email.sh Bryan Donlan
2008-04-09 1:30 ` [PATCH 8/8] Fix tests breaking when checkout path contains shell metacharacters Bryan Donlan
[not found] ` <47FC69B8.40809@viscovery.net>
[not found] ` <20080410063028.GA12562@shion.is.fushizen.net>
2008-04-10 6:49 ` Johannes Sixt
2008-04-10 7:02 ` Bryan Donlan
2008-04-10 7:24 ` Junio C Hamano
2008-04-09 7:01 ` [PATCH 7/8] Use test_set_editor in t9001-send-email.sh Johannes Sixt
2008-04-09 14:16 ` Bryan Donlan
2008-04-09 6:50 ` [PATCH 6/8] lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters Junio C Hamano
2008-04-09 6:36 ` [PATCH 5/8] test-lib.sh: Add a test_set_editor function to safely set $VISUAL Johannes Sixt
2008-04-09 6:31 ` [PATCH 3/8] git-send-email.perl: Handle shell metacharacters in $EDITOR properly Johannes Sixt
2008-04-09 14:28 ` Bryan Donlan
2008-04-10 3:39 ` Junio C Hamano
2008-04-09 6:31 ` [PATCH 2/8] config.c: Escape backslashes in section names properly Johannes Sixt
2008-04-09 14:13 ` Bryan Donlan
2008-04-09 14:25 ` Johannes Sixt
2008-04-09 6:50 ` [PATCH 1/8] git-rebase.sh: Fix --merge --abort failures when path contains whitespace Junio C Hamano
2008-04-09 6:55 ` Johannes Sixt
2008-04-09 14:37 ` Bryan Donlan
2008-04-09 14:51 ` Johannes Sixt
2008-04-09 15:02 ` Bryan Donlan
2008-04-10 6:10 ` Johannes Sixt
2008-04-10 6:50 ` [PATCH v2 00/10] Fix git's test suite to pass when the path contains spaces Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 01/10] git-rebase.sh: Fix --merge --abort failures when path contains whitespace Bryan Donlan
2008-04-10 6:50 ` Bryan Donlan [this message]
2008-04-10 6:50 ` [PATCH v2 03/10] git-send-email.perl: Handle shell metacharacters in $EDITOR properly Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 04/10] test-lib.sh: Add a test_set_editor function to safely set $VISUAL Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 05/10] Use test_set_editor in t9001-send-email.sh Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 06/10] test-lib.sh: Fix some missing path quoting Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 07/10] lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 08/10] Don't use the export NAME=value form in the test scripts Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 09/10] Fix tests breaking when checkout path contains shell metacharacters Bryan Donlan
2008-04-10 6:50 ` [PATCH v2 10/10] Rename the test trash directory to contain " Bryan Donlan
2008-04-10 7:45 ` [PATCH v2 01/10] git-rebase.sh: Fix --merge --abort failures when path contains whitespace Junio C Hamano
2008-04-10 8:48 ` Bryan Donlan
2008-04-11 22:37 ` Junio C Hamano
2008-05-04 5:37 ` [PATCH v3 00/10] Fix git's test suite to pass when the path contains spaces Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 01/10] git-rebase.sh: Fix --merge --abort failures when path contains whitespace Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 02/10] config.c: Escape backslashes in section names properly Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 03/10] git-send-email.perl: Handle shell metacharacters in $EDITOR properly Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 04/10] test-lib.sh: Add a test_set_editor function to safely set $VISUAL Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 05/10] Use test_set_editor in t9001-send-email.sh Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 06/10] test-lib.sh: Fix some missing path quoting Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 07/10] lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 08/10] Don't use the export NAME=value form in the test scripts Bryan Donlan
2008-05-04 5:37 ` [PATCH v3 09/10] Fix tests breaking when checkout path contains shell metacharacters Bryan Donlan
2008-05-04 5:38 ` [PATCH v3 10/10] Rename the test trash directory to contain spaces Bryan Donlan
2008-05-05 8:25 ` Johannes Sixt
2008-05-05 7:04 ` [PATCH v3 09/10] Fix tests breaking when checkout path contains shell metacharacters Johannes Sixt
2008-05-05 7:57 ` Bryan Donlan
2008-05-05 8:11 ` Johannes Sixt
2008-05-05 7:03 ` [PATCH v3 00/10] Fix git's test suite to pass when the path contains spaces Johannes Sixt
2008-05-05 7:59 ` Bryan Donlan
2008-05-05 8:19 ` Johannes Sixt
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=1207810216-27871-3-git-send-email-bdonlan@fushizen.net \
--to=bdonlan@fushizen.net \
--cc=aroben@apple.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
/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).