Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / support / bboards / RCS / bbaka.c,v
1 head    2.4;
2 access;
3 symbols;
4 locks; strict;
5 comment @ * @;
6
7
8 2.4
9 date    92.12.15.00.20.22;      author jromine; state Exp;
10 branches;
11 next    2.3;
12
13 2.3
14 date    90.04.05.15.32.45;      author sources; state Exp;
15 branches;
16 next    2.2;
17
18 2.2
19 date    90.04.05.14.50.27;      author sources; state Exp;
20 branches;
21 next    2.1;
22
23 2.1
24 date    90.03.20.16.23.45;      author sources; state Exp;
25 branches;
26 next    2.0;
27
28 2.0
29 date    89.11.17.15.57.46;      author sources; state Exp;
30 branches;
31 next    1.1;
32
33 1.1
34 date    89.06.26.14.33.36;      author sources; state Exp;
35 branches;
36 next    ;
37
38
39 desc
40 @@
41
42
43 2.4
44 log
45 @endif sugar
46 @
47 text
48 @/* bbaka.c - generate an alias list for BBoards */
49 #ifndef lint
50 static char ident[] = "@@(#)$Id: bbaka.c,v 2.3 1990/04/05 15:32:45 sources Exp jromine $";
51 #endif  lint
52
53 #include "../h/strings.h"
54 #include "../zotnet/bboards.h"
55 #include <stdio.h>
56 #include "../zotnet/mts.h"
57
58
59 static int  systemn = 0;
60 static char domain[BUFSIZ] = "";
61
62 static  aka(), process();
63
64 /* \f */
65
66 /* ARGSUSED */
67
68 main (argc, argv)
69 int     argc;
70 char  **argv;
71 {
72     struct bboard  *bb;
73
74     if (argc > 1 && strcmp (argv[1], "system") == 0)
75         systemn++;
76
77     mts_init (argv[0]);
78     make_lower (domain, bb_domain);
79
80     (void) setbbent (SB_STAY);
81     while (bb = getbbent ())
82         process (bb);
83     (void) endbbent ();
84
85     exit (0);
86 }
87
88 /* \f */
89
90 static  process (bb)
91 struct bboard  *bb;
92 {
93     char  **ap,
94             bbaddr[BUFSIZ],
95             buffer[BUFSIZ],
96             ldaddr[BUFSIZ],
97             result[BUFSIZ];
98
99     if (systemn) {
100 #ifndef MHMTS
101         (void) sprintf (bbaddr, "%s@@bboards", bb -> bb_name, LocalName ());
102 #else   /* MHMTS */
103         (void) strcpy (bbaddr, BBOARDS);
104 #endif  /* MHMTS */
105
106         if (strcmp (bb -> bb_name, bb -> bb_addr) == 0)
107             aka (bb -> bb_name, bbaddr);
108         if (domain[0]) {
109             (void) sprintf (buffer, "%s-%s", domain, bb -> bb_name);
110             if (bb -> bb_relay && *bb -> bb_relay) {
111                 (void) sprintf (result, "%s%s@@%s", DISTADR, bb -> bb_name,
112                         bb -> bb_relay);
113                 aka (buffer, result);
114             }
115             else
116                 aka (buffer, bbaddr);
117         }
118         (void) sprintf (buffer, "%s%s", DISTADR, bb -> bb_name);
119         aka (buffer, bbaddr);
120
121         (void) sprintf (ldaddr, "%s@@%s", *bb -> bb_leader, LocalName ());
122         for (ap = bb -> bb_leader, ap++; *ap; ap++)
123             (void) sprintf (ldaddr + strlen (ldaddr), ",%s@@%s", *ap,
124                     LocalName ());
125         if (domain[0]) {
126             if (bb -> bb_relay && *bb -> bb_relay
127                     && strcmp (*bb -> bb_leader, BBOARDS) == 0
128                     && --ap == bb -> bb_leader)
129                 (void) sprintf (ldaddr, "%s-%s-request@@%s",
130                         domain, bb -> bb_name, bb -> bb_relay);
131         }
132         if (strcmp (bb -> bb_request, *bb -> bb_leader) == 0) {
133             (void) sprintf (buffer, "%s-request", bb -> bb_name);
134             aka (buffer, ldaddr);
135         }
136         if (domain[0]) {
137             (void) sprintf (buffer, "%s-%s-request", domain, bb -> bb_name);
138             if (bb -> bb_relay && *bb -> bb_relay) {
139                 (void) sprintf (result, "%s@@%s", buffer, bb -> bb_relay);
140                 aka (buffer, result);
141             }
142             else
143                 aka (buffer, ldaddr);
144         }
145         (void) sprintf (buffer, "local-%s-request", bb -> bb_name);
146         aka (buffer, ldaddr);
147     }
148     else {
149         if (strcmp (bb -> bb_name, bb -> bb_addr))
150             aka (bb -> bb_name, bb -> bb_addr);
151
152         (void) sprintf (buffer, "%s-request", bb -> bb_name);
153         if (strcmp (bb -> bb_request, *bb -> bb_leader))
154             aka (buffer, bb -> bb_request);
155     }
156 }
157
158 /* \f */
159
160 static  aka (field, value)
161 char   *field,
162        *value;
163 {
164 #ifndef MHMTS
165     printf ("%s: %s\n", field, value);
166 #else   /* MHMTS */
167     printf ("%s%s %s\n", field, systemn ? ":" : ";", value);
168 #endif  /* MHMTS */
169 }
170 @
171
172
173 2.3
174 log
175 @add ID
176 @
177 text
178 @d3 1
179 a3 1
180 static char ident[] = "@@(#)$Id:$";
181 d55 1
182 a55 1
183 #else   MHMTS
184 d57 1
185 a57 1
186 #endif  MHMTS
187 d119 1
188 a119 1
189 #else   MHMTS
190 d121 1
191 a121 1
192 #endif  MHMTS
193 @
194
195
196 2.2
197 log
198 @add ID
199 @
200 text
201 @d3 1
202 a3 1
203 static char ident[] = "$Id:";
204 @
205
206
207 2.1
208 log
209 @ansi fixup
210 @
211 text
212 @d2 3
213 @
214
215
216 2.0
217 log
218 @changes for SUN40 shared libraries and NNTP under bbc
219 @
220 text
221 @d12 2
222 @
223
224
225 1.1
226 log
227 @Initial revision
228 @
229 text
230 @d9 1
231 a9 1
232 static int  system = 0;
233 d23 1
234 a23 1
235         system++;
236 d47 1
237 a47 1
238     if (system) {
239 d115 1
240 a115 1
241     printf ("%s%s %s\n", field, system ? ":" : ";", value);
242 @