format.c: Remove an unused variable.
[adu.git] / format.c
index f6b1f48d102d9762696de1345fd61cdce9c83c28..736cb7c327e94647b79a08383c176b0644f20d30 100644 (file)
--- a/format.c
+++ b/format.c
@@ -4,7 +4,7 @@
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
-/** \file format.c Functions for pretty-printing numbers and strings. */
+/** \file format.c \brief Functions for pretty-printing numbers and strings. */
 
 #include <dirent.h> /* readdir() */
 #include "adu.h"
@@ -13,6 +13,8 @@
 #include "string.h"
 #include "error.h"
 #include "format.h"
+
+/** The three different alignment types. */
 enum alignment {ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER};
 
 struct num_format {
@@ -217,6 +219,15 @@ success:
        return 1;
 }
 
+/**
+ * Parse the given string according to the list of given atoms.
+ *
+ * \param fmt The format string.
+ * \param atoms The array of valid atoms.
+ * \param result Points to a format_info structure for later use.
+ *
+ * \return Standard.
+ */
 int parse_format_string(char *fmt, struct atom *atoms, struct format_info **result)
 {
        char *cp, *ap, *ep;
@@ -259,11 +270,17 @@ err:
        }
        free(info->items);
        free(info);
+       *result = NULL;
        return ret;
 }
 
 /**
- * It's OK to pass a \p NULL pointer to this function.
+ * Free a struct of type \a format_info.
+ *
+ * \param info Pointer to the format info to be freed.
+ *
+ * It's OK to pass a \p NULL pointer to this function in which case the
+ * function does nothing.
  */
 void free_format_info(struct format_info *info)
 {
@@ -396,11 +413,21 @@ static char *align_unsigned_int(long long unsigned num, unsigned int width,
                nnum, postfix, width - (width + len) / 2, "");
 }
 
+/**
+ * Pretty-format the given values according to \a info.
+ *
+ * \param info The formating information.
+ * \param values The contents of the atoms.
+ *
+ * \return A string that must be freed by the caller.
+ */
 char *format_items(struct format_info *info, union atom_value *values)
 {
        int i;
        char *buf = NULL;
 
+       if (!info)
+               return NULL;
        for (i = 0; info->items[i]; i++) {
                struct atom *a;
                struct format_item *fi = info->items[i];
@@ -422,14 +449,14 @@ char *format_items(struct format_info *info, union atom_value *values)
                        align = af->sf.align;
                        val = align_string(values[idx].string_value, fi->width, align);
                } else {
-                       char unit;
                        align = af->nf.align;
-                       unit = af->nf.unit;
                        val = align_unsigned_int(values[idx].num_value,
                                fi->width, &af->nf, type);
                }
                buf = adu_strcat(buf, val);
                free(val);
        }
+       if (!buf)
+               buf = adu_strdup("");
        return buf;
 }