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-29 12:17:53 -0700
commit48834f9c2698648171aa3d0c0849279732bcd6f4 (patch)
tree6c81fd6a7c0d18356c5ff8fb32d1b1fee590d47a
parentced3c18356e3a7af9db6b28def7a52acc18f5218 (diff)
downloadgit-48834f9c2698648171aa3d0c0849279732bcd6f4.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);
+}