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