Move header "default" formats to formats.c along with the rest of 'em
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 12 May 2008 09:54:36 +0000 (12:54 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Mon, 12 May 2008 09:54:36 +0000 (12:54 +0300)
lib/formats.c
lib/header.c

index f58392b..e32d3fb 100644 (file)
 
 #include "debug.h"
 
+/**
+ * octalFormat.
+ * @param type         tag type
+ * @param data         tag value
+ * @param formatPrefix sprintf format string
+ * @param padding      no. additional bytes needed by format string
+ * @param element      (unused)
+ * @return             formatted string
+ */
+static char * octalFormat(rpmTagType type, rpm_constdata_t data, 
+               char * formatPrefix, size_t padding,int element)
+{
+    char * val;
+
+    if (type != RPM_INT32_TYPE) {
+       val = xstrdup(_("(not a number)"));
+    } else {
+       val = xmalloc(20 + padding);
+       strcat(formatPrefix, "o");
+       sprintf(val, formatPrefix, *((const int32_t *) data));
+    }
+
+    return val;
+}
+
+/**
+ * hexFormat.
+ * @param type         tag type
+ * @param data         tag value
+ * @param formatPrefix sprintf format string
+ * @param padding      no. additional bytes needed by format string
+ * @param element      (unused)
+ * @return             formatted string
+ */
+static char * hexFormat(rpmTagType type, rpm_constdata_t data, 
+               char * formatPrefix, size_t padding,int element)
+{
+    char * val;
+
+    if (type != RPM_INT32_TYPE) {
+       val = xstrdup(_("(not a number)"));
+    } else {
+       val = xmalloc(20 + padding);
+       strcat(formatPrefix, "x");
+       sprintf(val, formatPrefix, *((const int32_t *) data));
+    }
+
+    return val;
+}
+
+/**
+ */
+static char * realDateFormat(rpmTagType type, rpm_constdata_t data, 
+               char * formatPrefix, size_t padding,int element,
+               const char * strftimeFormat)
+{
+    char * val;
+
+    if (type != RPM_INT32_TYPE) {
+       val = xstrdup(_("(not a number)"));
+    } else {
+       struct tm * tstruct;
+       char buf[50];
+
+       val = xmalloc(50 + padding);
+       strcat(formatPrefix, "s");
+
+       /* this is important if sizeof(rpm_time_t) ! sizeof(time_t) */
+       {   time_t dateint = *((const rpm_time_t *) data);
+           tstruct = localtime(&dateint);
+       }
+       buf[0] = '\0';
+       if (tstruct)
+           (void) strftime(buf, sizeof(buf) - 1, strftimeFormat, tstruct);
+       sprintf(val, formatPrefix, buf);
+    }
+
+    return val;
+}
+
+/**
+ * Format a date.
+ * @param type         tag type
+ * @param data         tag value
+ * @param formatPrefix sprintf format string
+ * @param padding      no. additional bytes needed by format string
+ * @param element      (unused)
+ * @return             formatted string
+ */
+static char * dateFormat(rpmTagType type, rpm_constdata_t data, 
+                        char * formatPrefix, size_t padding, int element)
+{
+    return realDateFormat(type, data, formatPrefix, padding, element,
+                       _("%c"));
+}
+
+/**
+ * Format a day.
+ * @param type         tag type
+ * @param data         tag value
+ * @param formatPrefix sprintf format string
+ * @param padding      no. additional bytes needed by format string
+ * @param element      (unused)
+ * @return             formatted string
+ */
+static char * dayFormat(rpmTagType type, rpm_constdata_t data, 
+                        char * formatPrefix, size_t padding, int element)
+{
+    return realDateFormat(type, data, formatPrefix, padding, element, 
+                         _("%a %b %d %Y"));
+}
+
+/**
+ * Return shell escape formatted data.
+ * @param type         tag type
+ * @param data         tag value
+ * @param formatPrefix sprintf format string
+ * @param padding      no. additional bytes needed by format string
+ * @param element      (unused)
+ * @return             formatted string
+ */
+static char * shescapeFormat(rpmTagType type, rpm_constdata_t data, 
+               char * formatPrefix, size_t padding,int element)
+{
+    char * result, * dst, * src;
+
+    if (type == RPM_INT32_TYPE) {
+       result = xmalloc(padding + 20);
+       strcat(formatPrefix, "d");
+       sprintf(result, formatPrefix, *((const int32_t *) data));
+    } else {
+       char *buf = NULL;
+       strcat(formatPrefix, "s");
+       rasprintf(&buf, formatPrefix, data);
+
+       result = dst = xmalloc(strlen(buf) * 4 + 3);
+       *dst++ = '\'';
+       for (src = buf; *src != '\0'; src++) {
+           if (*src == '\'') {
+               *dst++ = '\'';
+               *dst++ = '\\';
+               *dst++ = '\'';
+               *dst++ = '\'';
+           } else {
+               *dst++ = *src;
+           }
+       }
+       *dst++ = '\'';
+       *dst = '\0';
+       free(buf);
+    }
+
+    return result;
+}
+
 
 /**
  * Identify type of trigger.
@@ -922,6 +1077,16 @@ static int groupTag(Header h, rpmTagType* type,
 }
 
 /* FIX: cast? */
+const struct headerSprintfExtension_s headerDefaultFormats[] = {
+    { HEADER_EXT_FORMAT, "octal", { octalFormat } },
+    { HEADER_EXT_FORMAT, "hex", { hexFormat } },
+    { HEADER_EXT_FORMAT, "date", { dateFormat } },
+    { HEADER_EXT_FORMAT, "day", { dayFormat } },
+    { HEADER_EXT_FORMAT, "shescape", { shescapeFormat } },
+    { HEADER_EXT_LAST, NULL, { NULL } }
+};
+
+/* FIX: cast? */
 const struct headerSprintfExtension_s rpmHeaderFormats[] = {
     { HEADER_EXT_TAG, "RPMTAG_GROUP",          { groupTag } },
     { HEADER_EXT_TAG, "RPMTAG_DESCRIPTION",    { descriptionTag } },
index 890d120..f2a2468 100644 (file)
@@ -2839,171 +2839,6 @@ exit:
     return hsa.val;
 }
 
-/**
- * octalFormat.
- * @param type         tag type
- * @param data         tag value
- * @param formatPrefix sprintf format string
- * @param padding      no. additional bytes needed by format string
- * @param element      (unused)
- * @return             formatted string
- */
-static char * octalFormat(rpmTagType type, rpm_constdata_t data, 
-               char * formatPrefix, size_t padding,int element)
-{
-    char * val;
-
-    if (type != RPM_INT32_TYPE) {
-       val = xstrdup(_("(not a number)"));
-    } else {
-       val = xmalloc(20 + padding);
-       strcat(formatPrefix, "o");
-       sprintf(val, formatPrefix, *((const int32_t *) data));
-    }
-
-    return val;
-}
-
-/**
- * hexFormat.
- * @param type         tag type
- * @param data         tag value
- * @param formatPrefix sprintf format string
- * @param padding      no. additional bytes needed by format string
- * @param element      (unused)
- * @return             formatted string
- */
-static char * hexFormat(rpmTagType type, rpm_constdata_t data, 
-               char * formatPrefix, size_t padding,int element)
-{
-    char * val;
-
-    if (type != RPM_INT32_TYPE) {
-       val = xstrdup(_("(not a number)"));
-    } else {
-       val = xmalloc(20 + padding);
-       strcat(formatPrefix, "x");
-       sprintf(val, formatPrefix, *((const int32_t *) data));
-    }
-
-    return val;
-}
-
-/**
- */
-static char * realDateFormat(rpmTagType type, rpm_constdata_t data, 
-               char * formatPrefix, size_t padding,int element,
-               const char * strftimeFormat)
-{
-    char * val;
-
-    if (type != RPM_INT32_TYPE) {
-       val = xstrdup(_("(not a number)"));
-    } else {
-       struct tm * tstruct;
-       char buf[50];
-
-       val = xmalloc(50 + padding);
-       strcat(formatPrefix, "s");
-
-       /* this is important if sizeof(rpm_time_t) ! sizeof(time_t) */
-       {   time_t dateint = *((const rpm_time_t *) data);
-           tstruct = localtime(&dateint);
-       }
-       buf[0] = '\0';
-       if (tstruct)
-           (void) strftime(buf, sizeof(buf) - 1, strftimeFormat, tstruct);
-       sprintf(val, formatPrefix, buf);
-    }
-
-    return val;
-}
-
-/**
- * Format a date.
- * @param type         tag type
- * @param data         tag value
- * @param formatPrefix sprintf format string
- * @param padding      no. additional bytes needed by format string
- * @param element      (unused)
- * @return             formatted string
- */
-static char * dateFormat(rpmTagType type, rpm_constdata_t data, 
-                        char * formatPrefix, size_t padding, int element)
-{
-    return realDateFormat(type, data, formatPrefix, padding, element,
-                       _("%c"));
-}
-
-/**
- * Format a day.
- * @param type         tag type
- * @param data         tag value
- * @param formatPrefix sprintf format string
- * @param padding      no. additional bytes needed by format string
- * @param element      (unused)
- * @return             formatted string
- */
-static char * dayFormat(rpmTagType type, rpm_constdata_t data, 
-                        char * formatPrefix, size_t padding, int element)
-{
-    return realDateFormat(type, data, formatPrefix, padding, element, 
-                         _("%a %b %d %Y"));
-}
-
-/**
- * Return shell escape formatted data.
- * @param type         tag type
- * @param data         tag value
- * @param formatPrefix sprintf format string
- * @param padding      no. additional bytes needed by format string
- * @param element      (unused)
- * @return             formatted string
- */
-static char * shescapeFormat(rpmTagType type, rpm_constdata_t data, 
-               char * formatPrefix, size_t padding,int element)
-{
-    char * result, * dst, * src;
-
-    if (type == RPM_INT32_TYPE) {
-       result = xmalloc(padding + 20);
-       strcat(formatPrefix, "d");
-       sprintf(result, formatPrefix, *((const int32_t *) data));
-    } else {
-       char *buf = NULL;
-       strcat(formatPrefix, "s");
-       rasprintf(&buf, formatPrefix, data);
-
-       result = dst = xmalloc(strlen(buf) * 4 + 3);
-       *dst++ = '\'';
-       for (src = buf; *src != '\0'; src++) {
-           if (*src == '\'') {
-               *dst++ = '\'';
-               *dst++ = '\\';
-               *dst++ = '\'';
-               *dst++ = '\'';
-           } else {
-               *dst++ = *src;
-           }
-       }
-       *dst++ = '\'';
-       *dst = '\0';
-       free(buf);
-    }
-
-    return result;
-}
-
-/* FIX: cast? */
-const struct headerSprintfExtension_s headerDefaultFormats[] = {
-    { HEADER_EXT_FORMAT, "octal", { octalFormat } },
-    { HEADER_EXT_FORMAT, "hex", { hexFormat } },
-    { HEADER_EXT_FORMAT, "date", { dateFormat } },
-    { HEADER_EXT_FORMAT, "day", { dayFormat } },
-    { HEADER_EXT_FORMAT, "shescape", { shescapeFormat } },
-    { HEADER_EXT_LAST, NULL, { NULL } }
-};
-
 void headerCopyTags(Header headerFrom, Header headerTo, 
                    const rpmTag * tagstocopy)
 {