Magellan Linux

Annotation of /trunk/netkit-rsh/netkit-rsh-0.17-stdarg.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 97 - (hide annotations) (download)
Fri Jan 19 23:50:26 2007 UTC (17 years, 4 months ago) by niro
File size: 952 byte(s)
new files

1 niro 97 --- netkit-rsh-0.10/rcp/rcp.c 1999-04-18 05:16:49-04 1.1
2     +++ netkit-rsh-0.10/rcp/rcp.c 1999-04-18 05:40:52-04
3     @@ -836,19 +836,33 @@
4     error(const char *fmt, ...)
5     {
6     static FILE *fp;
7     - va_list ap;
8     -
9     - va_start(ap, fmt);
10     + char buf[1000];
11    
12     ++errs;
13     if (!fp && !(fp = fdopen(rem, "w")))
14     return;
15     - fprintf(fp, "%c", 0x01);
16     - vfprintf(fp, fmt, ap);
17     +
18     + /* (fmt,...) might need to go to two streams.
19     + *
20     + * In { va_start ; vfprintf ; vfprintf ; va_end }, second
21     + * vfprintf didn't restart (ie: vfprintf affects ap) (glibc)
22     + *
23     + * Is { va_start ; vfprintf ; va_end} * 2 even allowed?
24     + *
25     + * => Dump (fmt,...) to buffer. */
26     +
27     + {
28     + va_list ap;
29     + va_start(ap, fmt);
30     + vsnprintf(buf, sizeof(buf), fmt, ap);
31     + buf[sizeof(buf)-1] = 0;
32     + va_end(ap);
33     + }
34     +
35     + fprintf(fp, "%c%s", 0x01, buf);
36     fflush(fp);
37     - if (!iamremote) vfprintf(stderr, fmt, ap);
38    
39     - va_end(ap);
40     + if (!iamremote) fputs(buf, stderr);
41     }
42    
43     static void