s_a_r_list(): return NULL on errors
authorAndre <maan@p133.(none)>
Sat, 25 Mar 2006 19:38:42 +0000 (20:38 +0100)
committerAndre <maan@p133.(none)>
Sat, 25 Mar 2006 19:38:42 +0000 (20:38 +0100)
And fix the documentation.

string.c

index 07f54a0..156404c 100644 (file)
--- a/string.c
+++ b/string.c
@@ -210,8 +210,8 @@ __must_check __malloc char *para_basename(const char *name)
  * string which may contain a single string conversion specifier which gets
  * replaced by 'arg'.
  *
- * \return A string in which all matches in \a src are replaced, or NULL if \a
- * macro_name was not found in \a src.  Caller must free the result.
+ * \return A string in which all matches in \a src are replaced, or NULL if an
+ * syntax error was encountered. Caller must free the result.
  *
  * \sa regcomp(3)
  */
@@ -273,8 +273,8 @@ __must_check __malloc char *s_a_r_list(struct para_macro *macro_list, char *src)
        while (mp->name) {
                ret = s_a_r(tmp, mp->name, mp->replacement);
                free(tmp);
-               if (!ret)
-                       return src; /* FIXME: shouldn't we continue here? */
+               if (!ret) /* syntax error */
+                       return NULL;
                tmp = ret;
                mp++;
        }