]> git.deb.at Git - pkg/abook.git/commitdiff
Minor fixes/cleanups
authorJaakko Heinonen <jheinonen@users.sourceforge.net>
Wed, 19 Dec 2001 20:20:55 +0000 (20:20 +0000)
committerJaakko Heinonen <jheinonen@users.sourceforge.net>
Wed, 19 Dec 2001 20:20:55 +0000 (20:20 +0000)
conff.c
conff.h
misc.c
ui.c

diff --git a/conff.c b/conff.c
index b9242934aba8de5112fc555e11683709160d1c2c..7614fc295a44d60f15a37c9e6f7f08fc2398d987 100644 (file)
--- a/conff.c
+++ b/conff.c
@@ -53,36 +53,44 @@ conff_free_node(struct conff_node *node)
        free(node);
 }
 
-void
+/*
+ * conff_add_key
+ *
+ * returns 0 if the key was successfully added
+ */
+
+int
 conff_add_key(struct conff_node **ptr, char *key, char *value, int flags)
 {
        struct conff_node *new_item, *next = NULL;
+       int replace = 0;
 
        assert(key != NULL && value != NULL);
 
        for(; *ptr; ptr = &( (*ptr) -> next) ) 
                if(!strcasecmp(key, (*ptr) -> key ) ) {
                        if (flags & REPLACE_KEY) {
-                               next = (*ptr) -> next;
-                               conff_free_node(*ptr);
+                               replace = 1;
                                break;
                        } else
-                               return;
+                               return 1;
                }
        
-        /*
-         * out of memory - error is ignored
-         * NOTE: with REPLACE_KEY flag the node will be deleted in OOM
-         * situation
-         */
        if( (new_item = malloc(sizeof(struct conff_node))) == NULL )
-               return;
-       
+               return 5;
+
+       if(replace) { 
+               next = (*ptr) -> next;
+               conff_free_node(*ptr);
+       }
+
        new_item -> key = strdup(key);
        new_item -> value = strdup(value);
        new_item -> next = next;
 
        *ptr = new_item;
+
+       return 0;
 }
 
 char *
@@ -158,6 +166,8 @@ conff_load_file(struct conff_node **node, char *filename, int flags)
        char *line = NULL, *tmp;
        int i = 0;
 
+       assert(filename != NULL);
+
        if (!(in = fopen(filename, "r")))
                return -1;
 
diff --git a/conff.h b/conff.h
index c52a2f357e629b98b73d82d3f00404beae699014..26963c9feacb11c1ba1058a226a672a6b234760a 100644 (file)
--- a/conff.h
+++ b/conff.h
@@ -34,7 +34,7 @@ struct conff_node
 };
 
 
-void           conff_add_key(struct conff_node **ptr, char *key,
+int            conff_add_key(struct conff_node **ptr, char *key,
                char *value, int flags);
 char           *conff_get_value(struct conff_node *node, char *key);
 #ifdef DEBUG
diff --git a/misc.c b/misc.c
index 29ba73985ff4711753948c2965133aea6ffbe2c0..1eadf97b19e4edc9fc43ce76196475df1e3bec69 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -37,6 +37,8 @@ revstr(char *str)
 {
        char *s, *s2;
 
+       assert(str != NULL);
+
        s = s2 = strdup(str);
 
        while( *str )
@@ -54,6 +56,8 @@ strupper(char *str)
 {
        char *tmp = str;
 
+       assert(str != NULL);
+
        while( ( *str = toupper( *str ) ) )
                str++;
        
@@ -65,6 +69,8 @@ strlower(char *str)
 {
        char *tmp = str;
 
+       assert(str != NULL);
+
        while( ( *str = tolower ( *str ) ) )
                str++;
 
@@ -119,6 +125,8 @@ mkstr (const char *format, ... )
                (char *) malloc (size);
 #endif
        
+       assert(format != NULL);
+
        for(;;) {
                int n;
                MY_VA_START(format);
@@ -151,8 +159,7 @@ strconcat (const char *str, ...)
        MY_VA_LOCAL_DECL;
        char *s, *concat;
 
-       if(str == NULL)
-               return NULL;
+       assert(str != NULL);
 
        l = 1 + strlen (str);
        MY_VA_START(str);
@@ -213,10 +220,12 @@ my_getcwd()
        char *dir = NULL;
        int size = 100;
 
-       dir = malloc(size);
+       if( (dir = malloc(size)) == NULL)
+               return NULL;
        
        while( getcwd(dir, size) == NULL && errno == ERANGE )
-               dir = realloc(dir, size *=2);
+               if( (dir = realloc(dir, size *=2)) == NULL)
+                       return NULL;
 
        return dir;
 }
diff --git a/ui.c b/ui.c
index 1af0ee339be5d1457c15a6b6f4ee92c681eec8fc..9dfdd82d2ca672bd47e513de97844618b113f79a 100644 (file)
--- a/ui.c
+++ b/ui.c
@@ -237,7 +237,7 @@ statusline_addstr(char *str)
  * parameters:
  *  (char *str)
  *   if n >= 0 str is a pointer which points a place where to store
- *   the string, else str is ingnored
+ *   the string, else str is ignored
  *  (int n)
  *   the maximum length of the string
  *   If n < 0 function will allocate needed space for the string.