* 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;
/* 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);
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");
printf(" 0\n};\n");
- exit(0);
+ return (0); /* exit */
}