=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/cord/cordprnt.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM_contrib2/asir2000/gc/cord/cordprnt.c 2002/07/24 07:46:28 1.3 +++ OpenXM_contrib2/asir2000/gc/cord/cordprnt.c 2002/07/24 08:00:14 1.4 @@ -233,7 +233,7 @@ int CORD_vsprintf(CORD * out, CORD format, va_list arg if (width == NONE && prec == NONE) { register char c; - c = va_arg(args, int); + c = (char)va_arg(args, int); CORD_ec_append(result, c); goto done; } @@ -255,12 +255,18 @@ int CORD_vsprintf(CORD * out, CORD format, va_list arg /* Use standard sprintf to perform conversion */ { register char * buf; - va_list vsprintf_args = args; - /* The above does not appear to be sanctioned */ - /* by the ANSI C standard. */ + va_list vsprintf_args; int max_size = 0; int res; - +# ifdef __va_copy + __va_copy(vsprintf_args, args); +# else +# if defined(__GNUC__) /* and probably in other cases */ + va_copy(vsprintf_args, args); +# else + vsprintf_args = args; +# endif +# endif if (width == VARIABLE) width = va_arg(args, int); if (prec == VARIABLE) prec = va_arg(args, int); if (width != NONE) max_size = width;