summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2014-07-28 20:29:50 +0200
committerJunio C Hamano <gitster@pobox.com>2014-07-28 14:49:22 -0700
commit7d5d27b5b2ff358f5ca46d36988e04d2b42d655d (patch)
treee35a833657ae263bb67e2b631ccb68467a2137f8
parent6a4a7558226435acda3d6dde42e06f77c9c61243 (diff)
downloadgit-7d5d27b5b2ff358f5ca46d36988e04d2b42d655d.tar.gz
wrapper: add xgetcwd()
Add the helper function xgetcwd(), which returns the current directory or dies. The returned string has to be free()d after use. Helped-by: Duy Nguyen <pclouds@gmail.com> Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--git-compat-util.h1
-rw-r--r--wrapper.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index e6a4159a25..4010d350d7 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -538,6 +538,7 @@ extern int xmkstemp(char *template);
extern int xmkstemp_mode(char *template, int mode);
extern int odb_mkstemp(char *template, size_t limit, const char *pattern);
extern int odb_pack_keep(char *name, size_t namesz, const unsigned char *sha1);
+extern char *xgetcwd(void);
static inline size_t xsize_t(off_t len)
{
diff --git a/wrapper.c b/wrapper.c
index bc1bfb8600..bd24cdabfb 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -493,3 +493,11 @@ struct passwd *xgetpwuid_self(void)
errno ? strerror(errno) : _("no such user"));
return pw;
}
+
+char *xgetcwd(void)
+{
+ struct strbuf sb = STRBUF_INIT;
+ if (strbuf_getcwd(&sb))
+ die_errno(_("unable to get current working directory"));
+ return strbuf_detach(&sb, NULL);
+}