From: René Scharfe Date: Mon, 28 Jul 2014 18:29:50 +0000 (+0200) Subject: wrapper: add xgetcwd() X-Git-Tag: v2.2.0-rc0~173^2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa14e980fff55e090dd42174ab4f37fe4b3dfa1e;p=git 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 Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- 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); +}