# Re: [PATCH] Another config file parsing fix.

3 messages from 2006-05-06 to 2006-05-06. Participants: sean, Johannes Schindelin.
Thread: https://gitlist.dev/t/4081

## sean, 2006-05-06 18:25

Subject: Re: [PATCH] Another config file parsing fix.
Message-ID: <BAYC1-PASMTP08FCAC8B8FB768ED1791F1AEAA0@CEZ.ICE>
URL: https://gitlist.dev/e/BAYC1-PASMTP08FCAC8B8FB768ED1791F1AEAA0%40CEZ.ICE
In-Reply-To: <20060506141402.3909cb37.seanlkml@sympatico.ca>

```
On Sat, 6 May 2006 14:14:02 -0400
sean <seanlkml@sympatico.ca> wrote:

> If the variable we need to store should go into a section
> that currently only has a single variable (not matching
> the one we're trying to insert), we will already be into
> the next section before we notice we've bypassed the correct
> location to insert the variable.
> 
> To handle this case we store the current location as soon
> as we find a variable matching the section of our new
> variable.
> 
    
Sorry.. this should really be amended to mention that it was Linus
who spotted the problem.


Sean

```

## sean, 2006-05-06 19:43

Subject: [PATCH] t1300-repo-config: two new config parsing tests.
Message-ID: <BAYC1-PASMTP090EE19E31F9EEBD579719AEAA0@CEZ.ICE>
URL: https://gitlist.dev/e/BAYC1-PASMTP090EE19E31F9EEBD579719AEAA0%40CEZ.ICE
In-Reply-To: <BAYC1-PASMTP08FCAC8B8FB768ED1791F1AEAA0@CEZ.ICE>

```

- correctly insert a new variable into a section that only
  contains a single (different) variable.

- correctly insert a new section that matches the initial
  substring of an existing section.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>


---

Both tests fail with v1.3.2 and pass with latest patches.


 t/t1300-repo-config.sh |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

ef2178a10e27f43d4120884bc587c460e9b1bfcb
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 1bf728f..0914be2 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -278,5 +278,36 @@ git-repo-config > output 2>&1
 test_expect_success 'no arguments, but no crash' \
 	"test $? = 129 && grep usage output"
 
+cat > .git/config << EOF
+[a.b]
+	c = d
+EOF
+
+git-repo-config a.x y
+
+cat > expect << EOF
+[a.b]
+	c = d
+[a]
+	x = y
+EOF
+
+test_expect_success 'new section is partial match of another' 'cmp .git/config expect'
+
+git-repo-config b.x y
+git-repo-config a.b c
+
+cat > expect << EOF
+[a.b]
+	c = d
+[a]
+	x = y
+	b = c
+[b]
+	x = y
+EOF
+
+test_expect_success 'new variable inserts into proper section' 'cmp .git/config expect'
+
 test_done
 
-- 
1.3.2.gd777c

```

## Johannes Schindelin, 2006-05-06 21:01

Subject: Re: [PATCH] Another config file parsing fix.
Message-ID: <Pine.LNX.4.63.0605062300530.4155@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0605062300530.4155%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <BAYC1-PASMTP08FCAC8B8FB768ED1791F1AEAA0@CEZ.ICE>

```
Hi,

On Sat, 6 May 2006, sean wrote:

> On Sat, 6 May 2006 14:14:02 -0400
> sean <seanlkml@sympatico.ca> wrote:
> 
> > If the variable we need to store should go into a section
> > that currently only has a single variable (not matching
> > the one we're trying to insert), we will already be into
> > the next section before we notice we've bypassed the correct
> > location to insert the variable.
> > 
> > To handle this case we store the current location as soon
> > as we find a variable matching the section of our new
> > variable.
> > 
>     
> Sorry.. this should really be amended to mention that it was Linus
> who spotted the problem.

Thanks to both of you!

Ciao,
Dscho

```
