There was a patch applied against entab/halt.c that converts it away from K&R varargs. But it's buggy, its makes halt() use second argment as format string, not first.
Following patch fixes it, but also converts entab/entab.c away from K&R. That is from my own patch against entab for the same problem, which got lost somewhere in -patches. -- marko
Index: src/tools/entab/entab.c =================================================================== RCS file: /opt/arc/cvs2/pgsql/src/tools/entab/entab.c,v retrieving revision 1.13 diff -u -c -r1.13 entab.c *** src/tools/entab/entab.c 7 Oct 2003 17:40:09 -0000 1.13 --- src/tools/entab/entab.c 5 May 2005 12:36:27 -0000 *************** *** 29,37 **** extern int optind; int ! main(argc, argv) ! int argc; ! char **argv; { int tab_size = 8, min_spaces = 2, --- 29,35 ---- extern int optind; int ! main(int argc, char **argv) { int tab_size = 8, min_spaces = 2, Index: src/tools/entab/halt.c =================================================================== RCS file: /opt/arc/cvs2/pgsql/src/tools/entab/halt.c,v retrieving revision 1.6 diff -u -c -r1.6 halt.c *** src/tools/entab/halt.c 15 Apr 2005 04:29:32 -0000 1.6 --- src/tools/entab/halt.c 5 May 2005 12:36:00 -0000 *************** *** 19,33 **** /*VARARGS*/ void ! halt(const char *path, ...) { va_list arg_ptr; ! char *format, ! *pstr; void (*sig_func) (); ! va_start(arg_ptr, path); ! format = va_arg(arg_ptr, char *); if (strncmp(format, "PERROR", 6) != 0) vfprintf(stderr, format, arg_ptr); else --- 19,31 ---- /*VARARGS*/ void ! halt(const char *format, ...) { va_list arg_ptr; ! const char *pstr; void (*sig_func) (); ! va_start(arg_ptr, format); if (strncmp(format, "PERROR", 6) != 0) vfprintf(stderr, format, arg_ptr); else
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster