Am 15.03.2017 um 22:30 schrieb René Scharfe:
> Am 15.03.2017 um 10:44 schrieb Zenobiusz Kunegunda:
>> $ git bisect bad
>> 7333ed1788b4f2b162a35003044d77a716732a1f is the first bad commit
>> commit 7333ed1788b4f2b162a35003044d77a716732a1f
>> Author: René Scharfe <[email protected]>
>> Date: Mon Jul 28 20:26:40 2014 +0200
>>
>> setup: convert setup_git_directory_gently_1 et al. to strbuf
>
> That's what I half-suspected, and I think by now I got an idea. Here's
> a test program:
And here's a patch for letting strbuf_getcwd() use the same getcwd(3)
extension that pwd(1) uses. It avoids the need to guess the path's
length and thus reduces the chance of stumbling over strange error
codes. I wonder if it helps in your case.
René
---
strbuf.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/strbuf.c b/strbuf.c
index ace58e7367..4c02801edd 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -442,6 +442,14 @@ int strbuf_getcwd(struct strbuf *sb)
{
size_t oldalloc = sb->alloc;
size_t guessed_len = 128;
+ char *cwd;
+
+ cwd = getcwd(NULL, 0);
+ if (cwd) {
+ size_t len = strlen(cwd);
+ strbuf_attach(sb, cwd, len, len + 1);
+ return 0;
+ }
for (;; guessed_len *= 2) {
strbuf_grow(sb, guessed_len);
--
2.12.0