From d404678bc7b9810d239efc4e2c6e2c06f9108820 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 3 Nov 2006 07:30:36 +0000 Subject: [PATCH] Updated account definition, added rss.c placeholder --- src/account/Makefile | 25 ++++++++++++++++++++----- src/account/account.h | 5 +++++ src/account/imap4.c | 2 ++ src/account/mbox.c | 2 ++ src/account/pop3.c | 2 ++ src/account/project.conf | 18 +++++++++++++++++- src/account/rss.c | 38 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 src/account/rss.c diff --git a/src/account/Makefile b/src/account/Makefile index 4195d32..6c650f6 100644 --- a/src/account/Makefile +++ b/src/account/Makefile @@ -1,4 +1,4 @@ -TARGETS = mbox.a mbox.so pop3.a pop3.so imap4.a imap4.so +TARGETS = mbox.a mbox.so pop3.a pop3.so imap4.a imap4.so rss.a rss.so PREFIX = /usr/local DESTDIR = LIBDIR = $(PREFIX)/lib @@ -36,17 +36,28 @@ imap4.a: $(imap4_OBJS) imap4.so: $(imap4_OBJS) $(LD) -o imap4.so $(imap4_OBJS) -mbox.o: mbox.c +rss_OBJS = rss.o +rss_CFLAGS = $(CFLAGSF) $(CFLAGS) +rss.a: $(rss_OBJS) + $(AR) rss.a $(rss_OBJS) + $(RANLIB) rss.a +rss.so: $(rss_OBJS) + $(LD) -o rss.so $(rss_OBJS) + +mbox.o: mbox.c account.h $(CC) $(mbox_CFLAGS) -c mbox.c -pop3.o: pop3.c +pop3.o: pop3.c account.h $(CC) $(pop3_CFLAGS) -c pop3.c -imap4.o: imap4.c +imap4.o: imap4.c account.h $(CC) $(imap4_CFLAGS) -c imap4.c +rss.o: rss.c account.h + $(CC) $(rss_CFLAGS) -c rss.c + clean: - $(RM) $(mbox_OBJS) $(pop3_OBJS) $(imap4_OBJS) + $(RM) $(mbox_OBJS) $(pop3_OBJS) $(imap4_OBJS) $(rss_OBJS) distclean: clean $(RM) $(TARGETS) @@ -59,6 +70,8 @@ install: all $(INSTALL) -m 0755 pop3.so $(DESTDIR)$(LIBDIR)/pop3.so $(INSTALL) -m 0644 imap4.a $(DESTDIR)$(LIBDIR)/imap4.a $(INSTALL) -m 0755 imap4.so $(DESTDIR)$(LIBDIR)/imap4.so + $(INSTALL) -m 0644 rss.a $(DESTDIR)$(LIBDIR)/rss.a + $(INSTALL) -m 0755 rss.so $(DESTDIR)$(LIBDIR)/rss.so uninstall: $(RM) $(DESTDIR)$(LIBDIR)/mbox.a @@ -67,5 +80,7 @@ uninstall: $(RM) $(DESTDIR)$(LIBDIR)/pop3.so $(RM) $(DESTDIR)$(LIBDIR)/imap4.a $(RM) $(DESTDIR)$(LIBDIR)/imap4.so + $(RM) $(DESTDIR)$(LIBDIR)/rss.a + $(RM) $(DESTDIR)$(LIBDIR)/rss.so .PHONY: all clean distclean install uninstall diff --git a/src/account/account.h b/src/account/account.h index c726c17..fa07071 100644 --- a/src/account/account.h +++ b/src/account/account.h @@ -40,6 +40,7 @@ typedef struct _AccountFolder typedef struct _AccountPlugin { + char const * type; char const * name; AccountConfig * config; AccountFolder ** (*folders)(void); @@ -54,9 +55,13 @@ typedef struct _Account /* functions */ +/* FIXME type should be automatically "account" and wrap plug-in engine */ Account * account_new(char const * type, char const * name); void account_delete(Account * account); +/* accessors */ +int account_set_title(Account * account, char const * title); + /* useful */ /* FIXME wrong we just need receive, then it calls callbacks */ AccountFolder ** account_folders(Account * account); diff --git a/src/account/imap4.c b/src/account/imap4.c index 9aa20a9..44b0aa7 100644 --- a/src/account/imap4.c +++ b/src/account/imap4.c @@ -8,6 +8,7 @@ /* variables */ +char const imap4_type[] = "IMAP4"; char const imap4_name[] = "IMAP4 server"; AccountConfig imap4_config[] = @@ -42,6 +43,7 @@ AccountFolder ** imap4_folders(void) AccountPlugin account_plugin = { + imap4_type, imap4_name, imap4_config, imap4_folders diff --git a/src/account/mbox.c b/src/account/mbox.c index 592eeb0..8f6993f 100644 --- a/src/account/mbox.c +++ b/src/account/mbox.c @@ -8,6 +8,7 @@ /* variables */ +char const mbox_type[] = "MBOX"; char const mbox_name[] = "Local folder"; AccountConfig mbox_config[] = @@ -39,6 +40,7 @@ AccountFolder ** mbox_folders(void) AccountPlugin account_plugin = { + mbox_type, mbox_name, mbox_config, mbox_folders diff --git a/src/account/pop3.c b/src/account/pop3.c index 92ae21d..b8fddf3 100644 --- a/src/account/pop3.c +++ b/src/account/pop3.c @@ -8,6 +8,7 @@ /* variables */ +char const pop3_type[] = "POP3"; char const pop3_name[] = "POP3 server"; AccountConfig pop3_config[] = @@ -40,6 +41,7 @@ AccountFolder ** pop3_folders(void) AccountPlugin account_plugin = { + pop3_type, pop3_name, pop3_config, pop3_folders diff --git a/src/account/project.conf b/src/account/project.conf index 69b8dc8..ec662e1 100644 --- a/src/account/project.conf +++ b/src/account/project.conf @@ -1,13 +1,29 @@ -targets=mbox,pop3,imap4 +targets=mbox,pop3,imap4,rss [mbox] type=library sources=mbox.c +[mbox.c] +depends=account.h + [pop3] type=library sources=pop3.c +[pop3.c] +depends=account.h + [imap4] type=library sources=imap4.c + +[imap4.c] +depends=account.h + +[rss] +type=library +sources=rss.c + +[rss.c] +depends=account.h diff --git a/src/account/rss.c b/src/account/rss.c new file mode 100644 index 0000000..1711dc1 --- /dev/null +++ b/src/account/rss.c @@ -0,0 +1,38 @@ +/* $Id$ */ +/* Copyright (c) 2006 The DeforaOS Project */ + + + +#include +#include "account.h" + + +/* variables */ +char const rss_type[] = "RSS"; +char const rss_name[] = "RSS reader"; + +AccountConfig rss_config[] = +{ + { "uri", "Address", ACT_STRING, NULL }, + { NULL, NULL, ACT_NONE, NULL } +}; + + +/* functions */ +AccountFolder ** rss_folders(void) +{ + /* FIXME implement */ + static AccountFolder feed = { AF_INBOX, "Feed" }; + static AccountFolder * folders[] = { &feed, NULL }; + + return folders; +} + + +AccountPlugin account_plugin = +{ + rss_type, + rss_name, + rss_config, + rss_folders +};