summaryrefslogtreecommitdiff
path: root/examples/addr.c
diff options
context:
space:
mode:
authorAlain Magloire <alainm@gnu.org>2001-04-07 02:52:30 +0000
committerAlain Magloire <alainm@gnu.org>2001-04-07 02:52:30 +0000
commit9022da8a9477fa9d596dac74f2e6d5f2ff17f7f6 (patch)
tree4553e02b6592dd19dafb7a1cb46013ddf2d14f32 /examples/addr.c
parent99f8c68a349c3ab4165ace686ec4078bb35bac7e (diff)
downloadmailutils-9022da8a9477fa9d596dac74f2e6d5f2ff17f7f6.tar.gz
mailutils-9022da8a9477fa9d596dac74f2e6d5f2ff17f7f6.tar.bz2
Test program.
Diffstat (limited to 'examples/addr.c')
-rw-r--r--examples/addr.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/examples/addr.c b/examples/addr.c
new file mode 100644
index 000000000..36fbfce91
--- /dev/null
+++ b/examples/addr.c
@@ -0,0 +1,95 @@
+#include <stdio.h>
+#include <mailutils/address.h>
+
+static int use_zero = 1;
+
+static int parse(const char* str)
+{
+ size_t no = 0;
+ size_t pcount;
+
+ char buf[BUFSIZ];
+
+ address_t address = NULL;
+
+ if(use_zero)
+ address_create0(&address, str);
+ else
+ address_create(&address, str);
+
+ address_get_count(address, &pcount);
+
+ printf("%s=> pcount %d\n", str, pcount);
+
+ for(no = 1; no <= pcount; no++) {
+ size_t got = 0;
+ printf("%d ", no);
+
+ address_get_email(address, no, buf, sizeof(buf), 0);
+
+ printf("email <%s>\n", buf);
+
+ address_get_personal(address, no, buf, sizeof(buf), &got);
+
+ if(got) printf(" personal <%s>\n", buf);
+
+ address_get_comments(address, no, buf, sizeof(buf), &got);
+
+ if(got) printf(" comments <%s>\n", buf);
+
+ address_get_local_part(address, no, buf, sizeof(buf), &got);
+
+ if(got) printf(" local-part <%s>", buf);
+
+ address_get_domain(address, no, buf, sizeof(buf), &got);
+
+ if(got) printf(" domain <%s>\n", buf);
+
+ address_get_route(address, no, buf, sizeof(buf), &got);
+
+ if(got) printf(" route <%s>\n", buf);
+ }
+ address_destroy(&address);
+
+ printf("\n");
+
+ return 0;
+}
+
+static int parseinput(void)
+{
+ char buf[BUFSIZ];
+
+ while(fgets(buf, sizeof(buf), stdin) != 0) {
+ buf[strlen(buf) - 1] = 0;
+ parse(buf);
+ }
+
+ return 0;
+}
+
+int main(int argc, const char *argv[])
+{
+ argc = 1;
+
+ if(argv[argc] && strcmp(argv[argc], "-1") == 0) {
+ use_zero = 0;
+ argc++;
+ }
+ if(argv[argc] && strcmp(argv[argc], "-0") == 0) {
+ use_zero = 1;
+ argc++;
+ }
+ if(!argv[argc]) {
+ return parseinput();
+ }
+ for(; argv[argc]; argc++) {
+ if(strcmp(argv[argc], "-") == 0) {
+ parseinput();
+ } else {
+ parse(argv[argc]);
+ }
+ }
+
+ return 0;
+}

Return to:

Send suggestions and report system problems to the System administrator.