Prevents us from causing duplicate strings in the db when we restore.
for (i = 0; i < count; i++) {
if (i != 0) print " dump_sep(f);";
if (vtype[i] ~ /str/ || vtype[i] ~ /date/) {
- printf " dump_str(f, strtrim(t_%s));\n", vname[i];
+ printf " dump_str(f, endtrim(t_%s));\n", vname[i];
} else {
printf " dump_%s(f, t_%s);\n", vtype[i], vname[i];
}
void dbmserr(void);
void safe_close(FILE *stream);
FILE *open_file(char *prefix, char *suffix);
+char *endtrim(char *save);
fprintf(stderr, "Working on %s\n", name);
return f;
}
+
+/*
+ * Trim whitespace off the tail end of a string
+ */
+char *endtrim(char *save)
+{
+ char *t, *s;
+
+ s = save;
+ for (t = s; *t; t++)
+ continue;
+ while (t > s)
+ {
+ --t;
+ if (!isspace(*t))
+ {
+ t++;
+ break;
+ }
+ }
+ if (*t)
+ *t = '\0';
+ return s;
+}