EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL SELECT modtime INTO :buf FROM users WHERE users_id = 0;
EXEC SQL SELECT modtime INTO :buf FROM list WHERE list_id = 0;
cnt = 0;
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL SELECT modtime INTO :buf FROM users WHERE users_id = 0;
EXEC SQL SELECT modtime INTO :buf FROM list WHERE list_id = 0;
cnt = 0;
EXEC SQL DECLARE u_cursor CURSOR FOR
SELECT users_id, login, first, middle, last, potype, pop_id, box_id
FROM users
EXEC SQL DECLARE u_cursor CURSOR FOR
SELECT users_id, login, first, middle, last, potype, pop_id, box_id
FROM users
EXEC SQL OPEN u_cursor;
while (1) {
EXEC SQL FETCH u_cursor INTO :id, :name, :fname, :mname, :lname,
EXEC SQL OPEN u_cursor;
while (1) {
EXEC SQL FETCH u_cursor INTO :id, :name, :fname, :mname, :lname,
fprintf(stderr, "Loaded %d users\n", cnt);
cnt = 0;
lists = create_hash(15000);
EXEC SQL DECLARE l_cursor CURSOR FOR
fprintf(stderr, "Loaded %d users\n", cnt);
cnt = 0;
lists = create_hash(15000);
EXEC SQL DECLARE l_cursor CURSOR FOR
- EXEC SQL FETCH l_cursor INTO :id, :name, :maillistp, :type, :acl;
+ EXEC SQL FETCH l_cursor INTO :id, :name, :maillistp, :buf, :type, :acl;
if (sqlca.sqlcode != 0) break;
l = (struct list *) perm_malloc(sizeof(struct list));
l->name = pstrsave(strtrim(name));
l->maillist = maillistp;
if (sqlca.sqlcode != 0) break;
l = (struct list *) perm_malloc(sizeof(struct list));
l->name = pstrsave(strtrim(name));
l->maillist = maillistp;
static int illegalchars[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* ^@ - ^O */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* ^P - ^_ */
static int illegalchars[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* ^@ - ^O */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* ^P - ^_ */
- 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, /* SPACE - / */
+ 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, /* SPACE - / */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, /* 0 - ? */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* @ - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, /* P - _ */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, /* 0 - ? */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* @ - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, /* P - _ */
if (l->acl_t == 'L' &&
(l1 = (struct list *) hash_lookup(lists, l->acl_id)))
fprintf(out, "owner-%s: %s\n%s: ", l->name, l1->name, l->name);
if (l->acl_t == 'L' &&
(l1 = (struct list *) hash_lookup(lists, l->acl_id)))
fprintf(out, "owner-%s: %s\n%s: ", l->name, l1->name, l->name);
+put_fill(aliases, string)
+FILE *aliases;
+register char *string;
+{
+ register char *c;
+ register int lwid;
+ register int wwid;
+
+ if (string == 0 || *string == 0) return;
+ fputs("# ", aliases);
+ lwid = 3;
+
+ while (1) {
+ while (*string && *string == ' ') string++;
+ c = (char *)index(string, ' ');
+ if (c == 0) {
+ wwid = strlen(string);
+ } else {
+ wwid = c - string;
+ *c = 0;
+ }
+
+ if ((lwid + wwid) > ML_WID) {
+ fputs("\n# ", aliases);
+ lwid = 3;
+ fputs(string, aliases);
+ } else {
+ fputs(string, aliases);
+ }
+
+ if (c == (char *)0) break;
+ /* add a space after the word */
+ (void) fputc(' ', aliases);
+ wwid++;
+ lwid += wwid;
+ string += wwid;
+ /* add another if after a period */
+ if (*--c == '.') {
+ (void) fputc(' ', aliases);
+ lwid++;
+ }
+ }
+
+ (void) fputc('\n', aliases);
+}
+
+