Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=cfpm.git;a=commitdiff;h=7516ef815af69b97f73caf25ebd6b1428ace623e

commit 7516ef815af69b97f73caf25ebd6b1428ace623e
Author: James Buren <r...@frugalware.org>
Date:   Thu Oct 29 12:46:23 2009 -0500

Config.c
* add error handler

diff --git a/src/Config.c b/src/Config.c
index c86b2d6..723653c 100644
--- a/src/Config.c
+++ b/src/Config.c
@@ -44,6 +44,14 @@ Config *config_create(const char *path) {
return cfg;
}

+static void _config_parse_set_error(Config *cfg,const char *err) {
+  assert((cfg != NULL));
+
+  free(cfg->err);
+
+  cfg->err = xstrdup(err);
+}
+
static bool _config_parse_fill_buffer(Config *cfg) {
int file;
struct stat stats;
@@ -54,11 +62,13 @@ static bool _config_parse_fill_buffer(Config *cfg) {
file = open(cfg->path,O_RDONLY);

if(file == -1) {
+    _config_parse_set_error(cfg,strerror(errno));
ret = false;
goto Bail;
}

if(fstat(file,&stats) == -1) {
+    _config_parse_set_error(cfg,strerror(errno));
ret = false;
goto Bail;
}
@@ -68,6 +78,7 @@ static bool _config_parse_fill_buffer(Config *cfg) {
cfg->buf = xalloc(char,cfg->num);

if(read(file,cfg->buf,cfg->num) == -1) {
+    _config_parse_set_error(cfg,strerror(errno));
ret = false;
goto Bail;
}
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to