diff options
author | Jean-Yves Migeon <jeanyves.migeon@free.fr> | 2013-09-06 17:17:57 +0200 |
---|---|---|
committer | Jean-Yves Migeon <jeanyves.migeon@free.fr> | 2013-09-06 17:17:57 +0200 |
commit | dc207e4669c73203f2fe834294157616a82d6287 (patch) | |
tree | 60330e1588e6f7994d6a12555dad94215cbad4fd /libarchive_fe | |
parent | 7ba6dff66d176a7ee299258eef1489d0b9ffd225 (diff) | |
download | libarchive-dc207e4669c73203f2fe834294157616a82d6287.tar.gz |
Hide *lafe_progname and provide getter/setter instead.
This factorizes some code between binaries like bsdtar, bsdcpio, and
the soon-to-be mtree.
Diffstat (limited to 'libarchive_fe')
-rw-r--r-- | libarchive_fe/err.c | 22 | ||||
-rw-r--r-- | libarchive_fe/err.h | 5 |
2 files changed, 25 insertions, 2 deletions
diff --git a/libarchive_fe/err.c b/libarchive_fe/err.c index a0173983..408c2029 100644 --- a/libarchive_fe/err.c +++ b/libarchive_fe/err.c @@ -44,6 +44,28 @@ static void lafe_vwarnc(int, const char *, va_list) __LA_PRINTFLIKE(2, 0); const char *lafe_progname; +const char * +lafe_getprogname(void) +{ + + return lafe_progname; +} + +void +lafe_setprogname(const char *name) +{ + +#if defined(_WIN32) && !defined(__CYGWIN__) + lafe_progname = strrchr(name, '\\'); + if (strrchr(name, '/') > lafe_progname) +#endif + lafe_progname = strrchr(name, '/'); + if (lafe_progname != NULL) + lafe_progname++; + else + lafe_progname = name; +} + static void lafe_vwarnc(int code, const char *fmt, va_list ap) { diff --git a/libarchive_fe/err.h b/libarchive_fe/err.h index ca1af356..c351cba8 100644 --- a/libarchive_fe/err.h +++ b/libarchive_fe/err.h @@ -40,10 +40,11 @@ #define __LA_PRINTFLIKE(f,a) #endif -extern const char *lafe_progname; - void lafe_warnc(int code, const char *fmt, ...) __LA_PRINTFLIKE(2, 3); void lafe_errc(int eval, int code, const char *fmt, ...) __LA_DEAD __LA_PRINTFLIKE(3, 4); +const char * lafe_getprogname(void); +void lafe_setprogname(const char *); + #endif |