fix possible crash on user deletion
[srvx.git] / src / globtest.c
1 #include "hash.h"
2 #include "log.h"
3 #include "helpfile.h"
4
5 struct glob_test {
6     const char *glob;
7     const char *texts[8];
8 };
9
10 struct glob_test glob_yes[] = {
11     { "*Zoot*!*@*.org", { "Zoot!Zoot@services.org",
12                           "zoot!bleh@j00.are.r00t3d.org",
13                           0 } },
14     { "*!*@*", { "DK-Entrope!entrope@clan-dk.dyndns.org",
15                  0 } },
16     { "*", { "anything at all!",
17              0 } },
18     { 0, { 0 } }
19 };
20
21 struct glob_test glob_no[] = {
22     { "*Zoot*!*@*.org", { "Zoot!Zoot@services.net",
23                           0 } },
24     { "*!*@*", { "luser@host.com",
25                  0 } },
26     { 0, { 0 } }
27 };
28
29 struct glob_test glob_globs[] = {
30     { "*@foo", { "foo@bar",
31                  "bar@foo",
32                  0 } },
33     { "foo@bar", { "*@foo",
34                    "bar@foo",
35                    "foo@bar",
36                    0 } },
37     { 0, { 0 } }
38 };
39
40 int
41 main(UNUSED_ARG(int argc), UNUSED_ARG(char *argv[]))
42 {
43     int i, j;
44
45     tools_init();
46     for (i = 0; glob_yes[i].glob; i++) {
47         for (j=0; glob_yes[i].texts[j]; j++) {
48             if (!match_ircglob(glob_yes[i].texts[j], glob_yes[i].glob)) {
49                 fprintf(stderr, "%s did not match glob %s!\n",
50                         glob_yes[i].texts[j], glob_yes[i].glob);
51             }
52         }
53     }
54
55     for (i = 0; glob_no[i].glob; i++) {
56         for (j=0; glob_no[i].texts[j]; j++) {
57             if (match_ircglob(glob_no[i].texts[j], glob_no[i].glob)) {
58                 fprintf(stderr, "%s matched glob %s!\n",
59                         glob_no[i].texts[j], glob_no[i].glob);
60             }
61         }
62     }
63
64     for (i=0; glob_globs[i].glob; i++) {
65         for (j=0; glob_globs[i].texts[j]; j++) {
66             fprintf(stdout, "match_ircglobs(\"%s\", \"%s\") -> %d\n",
67                     glob_globs[i].glob, glob_globs[i].texts[j],
68                     match_ircglobs(glob_globs[i].glob, glob_globs[i].texts[j]));
69         }
70     }
71
72     return 0;
73 }
74
75 /* because tools.c likes to log stuff.. */
76 void
77 log_module(UNUSED_ARG(struct log_type *type), UNUSED_ARG(enum log_severity sev), const char *format, ...)
78 {
79     va_list va;
80     va_start(va, format);
81     vfprintf(stderr, format, va);
82     va_end(va);
83 }
84
85 const char *
86 language_find_message(UNUSED_ARG(struct language *lang), UNUSED_ARG(const char *msgid))
87 {
88     return "Stub -- Not implemented.";
89 }
90
91 struct language *lang_C = NULL;
92 struct log_type *MAIN_LOG = NULL;
93 const char *hidden_host_suffix;