summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Karl Ramm <kcr@1ts.org>2010-12-04 03:20:08 +0000
committerGravatar Karl Ramm <kcr@1ts.org>2010-12-04 03:20:08 +0000
commit62f7d61f20d77bb6e265c003fdeb11413ba712b9 (patch)
tree3e129df991931a10a5ce0971c357567ea5e89e0f /lib
parent4371d4d992c58c9e8737e9ec5284199b4b523a25 (diff)
No output, ever! We have com_err for a reason
Diffstat (limited to 'lib')
-rw-r--r--lib/ZVariables.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/ZVariables.c b/lib/ZVariables.c
index 6f0aec9..6f06bab 100644
--- a/lib/ZVariables.c
+++ b/lib/ZVariables.c
@@ -20,7 +20,7 @@ static const char rcsid_ZVariables_c[] = "$Id$";
#include <ctype.h>
#include <pwd.h>
-static int get_localvarfile(char *bfr);
+Code_t get_localvarfile(char *bfr);
static char *get_varval(char *fn, char *val);
static int varline(char *bfr, char *var);
@@ -28,8 +28,10 @@ char *
ZGetVariable(char *var)
{
char varfile[128], *ret;
+ Code_t code;
- if (get_localvarfile(varfile))
+ code = get_localvarfile(varfile);
+ if (code)
return ((char *)0);
if ((ret = get_varval(varfile, var)) != ZERR_NONE)
@@ -45,11 +47,13 @@ ZSetVariable(char *var, char *value)
int written;
FILE *fpin, *fpout;
char varfile[128], varfilebackup[128], varbfr[512];
+ Code_t code;
written = 0;
-
- if (get_localvarfile(varfile))
- return (ZERR_INTERNAL);
+
+ code = get_localvarfile(varfile);
+ if (code)
+ return code;
(void) strcpy(varfilebackup, varfile);
(void) strcat(varfilebackup, ".backup");
@@ -83,9 +87,11 @@ ZUnsetVariable(char *var)
{
FILE *fpin, *fpout;
char varfile[128], varfilebackup[128], varbfr[512];
+ Code_t code;
- if (get_localvarfile(varfile))
- return (ZERR_INTERNAL);
+ code = get_localvarfile(varfile);
+ if (code)
+ return code;
(void) strcpy(varfilebackup, varfile);
(void) strcat(varfilebackup, ".backup");
@@ -108,7 +114,7 @@ ZUnsetVariable(char *var)
return (ZERR_NONE);
}
-static int
+Code_t
get_localvarfile(char *bfr)
{
char *envptr;
@@ -122,10 +128,8 @@ get_localvarfile(char *bfr)
if (envptr)
(void) strcpy(bfr, envptr);
else {
- if (!(pwd = getpwuid((int) getuid()))) {
- fprintf(stderr, "Zephyr internal failure: Can't determine your home directory.\n");
- return (1);
- }
+ if (!(pwd = getpwuid((int) getuid())))
+ return errno;
(void) strcpy(bfr, pwd->pw_dir);
}