1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
--- utils.c.orig Mon Oct 13 13:14:12 2003
+++ utils.c Mon Oct 13 13:14:58 2003
@@ -17,14 +17,9 @@
#else
#include <strings.h>
#endif
-#include <varargs.h>
+#include <stdarg.h>
#include "utils.h"
-#ifdef lint
-#undef va_arg
-#define va_arg(x,y) (y)NULL
-#endif
-
#ifndef u_long
#define u_long unsigned long
#endif /* u_long */
@@ -42,14 +37,11 @@
* follows it.
*/
/*VARARGS*/
-void Error(va_alist)
-va_dcl
+void Error(char *format, ...)
{
va_list args;
- char *format;
- va_start(args);
- format = va_arg(args, char *);
+ va_start(args, format);
(void)fprintf(stderr, "%s: ", progname);
(void)vfprintf(stderr, format, args);
(void)fprintf(stderr, "\n");
@@ -63,18 +55,11 @@
* is equal to or greater than the debugging level.
*/
/*VARARGS*/
-void dfprintf(va_alist)
-va_dcl
+void dfprintf(int debugLevel, FILE *stream, char *format, ...)
{
va_list args;
- int debugLevel;
- FILE *stream;
- char *format;
- va_start(args);
- debugLevel = va_arg(args, int);
- stream = va_arg(args, FILE *);
- format = va_arg(args, char *);
+ va_start(args, format);
if(d >= debugLevel){
(void)vfprintf(stream, format, args);
}
@@ -85,18 +70,15 @@
* Warning(): behaves like Error, except returns rather than exits.
*/
/*VARARGS*/
-void Warning(va_alist)
-va_dcl
+void Warning(char *format, ...)
{
va_list args;
- char *format;
- va_start(args);
- format = va_arg(args, char *);
- (void)fprintf(stderr, "%s: ", progname);
- (void)vfprintf(stderr, format, args);
- (void)fprintf(stderr, "\n");
- va_end(args);
+ va_start(args, format);
+ (void)fprintf(stderr, "%s: ", progname);
+ (void)vfprintf(stderr, format, args);
+ (void)fprintf(stderr, "\n");
+ va_end(args);
}
FILE *efopen(file, mode)
@@ -186,15 +168,14 @@
* in malloc'ed space.
*/
/*VARARGS*/
-char *cat(va_alist)
-va_dcl
+char *cat(char *str0, ...)
{
va_list args;
- unsigned length=1;
+ unsigned length=1+strlen(str0);
char *str, *newstr;
/* get length */
- va_start(args);
+ va_start(args, str0);
loop{
str = va_arg(args, char *);
if(NULL!=str){
@@ -209,9 +190,10 @@
if(NULL==newstr) Error("Out of memory in cat()");
newstr[0]=(char)0;
+ strcat(newstr, str0);
/* create string */
- va_start(args);
+ va_start(args, str0);
loop{
str = va_arg(args, char *);
if(NULL!=str) {
@@ -220,7 +202,7 @@
break;
}
}
- va_end(args);
+ va_end(args);
#ifdef lint
args=args; /* make lint shut up about "args set but not used" */
#endif
@@ -259,6 +241,7 @@
lastfail++;
}
}
+ iaddr=ntohl(iaddr);
sprintf(iaddrbuff, "%u.%u.%u.%u", (iaddr>>24)&0xff,
(iaddr>>16)&0xff, (iaddr>>8)&0xff,
iaddr&0xff);
|