Imported Upstream version 2.5.1
[debian/amanda] / common-src / genversion.c
index 074296bd3a79058550b1b7649f9b7eb88734bb94..21243b96fcb9c6d14f71aaff728f6fc98a888a5a 100644 (file)
@@ -24,7 +24,7 @@
  * file named AUTHORS, in the root directory of this distribution.
  */
 /*
- * $Id: genversion.c,v 1.31 2003/10/07 17:09:46 martinea Exp $
+ * $Id: genversion.c,v 1.36 2006/07/13 03:22:20 paddy_s Exp $
  *
  * dump the current Amanda version info
  */
 #define        LMARGIN         6
 #define RMARGIN        70
 
-static int linelen;
+static size_t linelen;
 
 #define        startline(title)        printf("  \"%-*s", LMARGIN, title); linelen = 0
 #define        endline()               printf("\\n\",\n")
 
-static void prstr P((const char *));
-static void prvar P((const char *, const char *));
-int main P((void));
+static void prstr(const char *);
+static void prvar(const char *, const char *);
+static void prundefvar(const char *var);
+static void prnum(const char *var, long val);
+
+int main(int, char **);
 
 /* Print a string */
 static void
-prstr(string)
-    const char *string;
+prstr(
+    const char *string)
 {
     size_t len = strlen(string) + 1;
 
@@ -68,82 +71,108 @@ static size_t buf_len = 0;
 
 /* Print a text variable */
 static void
-prvar(var, val)
-    const char *var, *val;
+prvar(
+    const char *var,
+    const char *val)
 {
     size_t new_len;
 
     new_len = strlen(var)
-             + sizeof("=\\\"")
+             + SIZEOF("=\\\"")
              + strlen(val)
-             + sizeof("\\\"")
+             + SIZEOF("\\\"")
              + 1;
     if(new_len > buf_len) {
        free(buf);
        buf_len = new_len;
-       buf = malloc(new_len);          /* let it die if malloc() fails */
+       buf = malloc(new_len);
+       if (!buf) {
+           fprintf(stderr, "genversion: Not enough memory");
+           abort();
+           /*NOTREACHED*/
+       }
     }
-    sprintf(buf, "%s=\\\"%s\\\"", var, val);   /* safe */
+    snprintf(buf, buf_len, "%s=\\\"%s\\\"", var, val); /* safe */
     prstr(buf);
 }
 
 /* Print a undef variable */
 static void
-prundefvar(var)
-    const char *var;
+prundefvar(
+    const char *var)
 {
     size_t new_len;
 
     new_len = strlen(var)
-             + sizeof("=UNDEF")
+             + SIZEOF("=UNDEF")
              + 1;
     if(new_len > buf_len) {
        free(buf);
        buf_len = new_len;
        buf = malloc(new_len);          /* let it die if malloc() fails */
+       if (!buf) {
+           fprintf(stderr, "genversion: Not enough memory");
+           abort();
+           /*NOTREACHED*/
+       }
     }
-    sprintf(buf, "%s=UNDEF", var);     /* safe */
+    snprintf(buf, buf_len, "%s=UNDEF", var);   /* safe */
     prstr(buf);
 }
 
 /* Print a numeric variable */
 static void
-prnum(var, val)
-    const char *var;
-    long val;
+prnum(
+    const char *var,
+    long       val)
 {
     static char number[NUM_STR_SIZE];
     size_t new_len;
 
-    snprintf(number, sizeof(number), "%ld", val);
+    snprintf(number, SIZEOF(number), "%ld", val);
     new_len = strlen(var)
-             + sizeof("=")
+             + SIZEOF("=")
              + strlen(number)
              + 1;
     if(new_len > buf_len) {
        free(buf);
        buf_len = new_len;
        buf = malloc(new_len);          /* let it die if malloc() fails */
+       if (!buf) {
+           fprintf(stderr, "genversion: Not enough memory");
+           abort();
+           /*NOTREACHED*/
+       }
     }
-    sprintf(buf, "%s=%s", var, number);                /* safe */
+    snprintf(buf, buf_len, "%s=%s", var, number);              /* safe */
     prstr(buf);
 }
 
 int
-main()
+main(
+    int                argc,
+    char **    argv)
 {
     const char *v;
     char *verstr;
     size_t v_len;
 
+    (void)argc;        /* Quiet unused parameter warning */
+    (void)argv;        /* Quiet unused parameter warning */
+
     printf("/* version.c - generated by genversion.c - DO NOT EDIT! */\n");
     printf("const char * const version_info[] = {\n");
 
     startline("build:");
     v = version();
-    v_len = sizeof("Amanda-") + strlen(v) + 1;
+    v_len = SIZEOF("Amanda-") + strlen(v) + 1;
     verstr = malloc(v_len);
-    sprintf(verstr, "Amanda-%s", v);           /* safe */
+    if (!verstr) {
+       fprintf(stderr, "genversion: Not enough memory");
+       abort();
+       /*NOTREACHED*/
+    }
+    snprintf(verstr, v_len, "Amanda-%s", v);           /* safe */
     prvar("VERSION", verstr);
     free(verstr);
 
@@ -275,7 +304,10 @@ main()
     prvar("DEFAULT_SERVER", DEFAULT_SERVER);
     prvar("DEFAULT_CONFIG", DEFAULT_CONFIG);
     prvar("DEFAULT_TAPE_SERVER", DEFAULT_TAPE_SERVER);
+
+#ifdef DEFAULT_TAPE_DEVICE
     prvar("DEFAULT_TAPE_DEVICE", DEFAULT_TAPE_DEVICE);
+#endif
 
 #ifdef AIX_BACKUP
     prstr("AIX_BACKUP");
@@ -411,5 +443,5 @@ main()
 
     printf("  0\n};\n");
 
-    exit(0);
+    return (0); /* exit */
 }