+ free(tmp);
+}
+
+void simpleerror2(FILE *out, int code, char *msg, char *fmt, ...)
+{
+ va_list args;
+
+ va_start(args, fmt);
+ simpleerror2v(out, code, msg, fmt, args);
+ va_end(args);
+}
+
+void simpleerror(int fd, int code, char *msg, char *fmt, ...)
+{
+ va_list args;
+ FILE *out;
+
+ va_start(args, fmt);
+ out = fdopen(dup(fd), "w");
+ simpleerror2v(out, code, msg, fmt, args);
+ fclose(out);
+ va_end(args);