Enlightenment CVS committal
Author : sarajervi
Project : misc
Module : erss
Dir : misc/erss/src
Modified Files:
Makefile.am erss.c erss.h parse.c parse.h
Added Files:
parse_config.c parse_config.h
Log Message:
split up and clean code
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/Makefile.am,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- Makefile.am 14 Jan 2004 18:57:07 -0000 1.2
+++ Makefile.am 15 Jan 2004 14:46:46 -0000 1.3
@@ -4,6 +4,6 @@
bin_PROGRAMS = erss
-erss_SOURCES = erss.c parse.c
+erss_SOURCES = erss.c parse.c parse_config.c
erss_LDADD = @edje_libs@ @esmart_libs@ @ewd_libs@ @xml2_libs@
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/erss.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- erss.c 14 Jan 2004 22:58:10 -0000 1.21
+++ erss.c 15 Jan 2004 14:46:46 -0000 1.22
@@ -1,9 +1,6 @@
#include "erss.h"
#include "parse.h"
-
-int erss_connect (void *data);
-char *time_format ();
-int set_time (void *data);
+#include "parse_config.h"
Evas *evas = NULL;
Ecore_Evas *ee = NULL;
@@ -62,13 +59,20 @@
}
total_connects++;
- last_time = strdup (time_format ());
- set_time (NULL);
+ last_time = strdup (erss_time_format ());
+ erss_set_time (NULL);
return TRUE;
}
-char *time_format ()
+int erss_alphasort (const void *a, const void *b)
+{
+ struct dirent **ad = (struct dirent **)a;
+ struct dirent **bd = (struct dirent **)b;
+ return (strcmp((*bd)->d_name, (*ad)->d_name));
+}
+
+char *erss_time_format ()
{
char *str;
struct tm *ts;
@@ -85,11 +89,11 @@
return str;
}
-int set_time (void *data) {
+int erss_set_time (void *data) {
char *str;
char text[100];
- str = time_format ();
+ str = erss_time_format ();
if (last_time)
snprintf (text, sizeof (text), "Time now: %s Last update: %s",
str, last_time);
@@ -246,7 +250,7 @@
return 1;
}
-void window_move_cb (Ecore_Evas * ee)
+void erss_window_move (Ecore_Evas * ee)
{
int x, y, w, h;
Evas_Object *o = NULL;
@@ -257,7 +261,7 @@
esmart_trans_x11_freshen(o, x, y, w, h);
}
-void window_resize_cb(Ecore_Evas *ee)
+void erss_window_resize(Ecore_Evas *ee)
{
int x, y, w, h;
Evas_Object *o = NULL;
@@ -307,14 +311,8 @@
}
-int erss_alphasort (const void *a, const void *b)
-{
- struct dirent **ad = (struct dirent **)a;
- struct dirent **bd = (struct dirent **)b;
- return (strcmp((*bd)->d_name, (*ad)->d_name));
-}
-void list_config_files (int output)
+void erss_list_config_files (int output)
{
char *str;
char *ptr;
@@ -411,7 +409,7 @@
ewd_list_destroy (paths);
}
-void display_default_usage ()
+void erss_display_default_usage ()
{
fprintf (stderr, "Usage: %s [OPTION] ...\n", PACKAGE);
fprintf (stderr, "Try `%s -h` for more information\n", PACKAGE);
@@ -441,12 +439,12 @@
{
switch (c) {
case 'l':
- list_config_files (TRUE);
+ erss_list_config_files (TRUE);
exit (-1);
case 'c':
if(optind >= argc)
- display_default_usage ();
+ erss_display_default_usage ();
got_config_file = TRUE;
snprintf (config_file, PATH_MAX, "%s", (char *)
argv[optind]);
@@ -474,19 +472,19 @@
}
- if (parse_rc_file ())
+ if (erss_parse_rc_file ())
got_rc_file = TRUE;
if(!got_config_file) {
if (!got_rc_file) {
- display_default_usage ();
+ erss_display_default_usage ();
}
else
- parse_config_file (rc->config);
+ erss_parse_config_file (rc->config);
} else {
- parse_config_file (config_file);
+ erss_parse_config_file (config_file);
}
if (!got_theme_file) {
@@ -568,8 +566,8 @@
ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT,
handler_signal_exit, NULL);
- ecore_evas_callback_move_set (ee, window_move_cb);
- ecore_evas_callback_resize_set(ee, window_resize_cb);
+ ecore_evas_callback_move_set (ee, erss_window_move);
+ ecore_evas_callback_resize_set(ee, erss_window_resize);
cont = e_container_new(evas);
evas_object_move(cont, 0, 0);
@@ -603,10 +601,9 @@
e_container_element_append(cont, tid);
}
-
erss_connect (NULL);
ecore_timer_add (cfg->update_rate, erss_connect, NULL);
- ecore_timer_add (1, set_time, NULL);
+ ecore_timer_add (1, erss_set_time, NULL);
ecore_main_loop_begin ();
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/erss.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- erss.h 14 Jan 2004 22:24:48 -0000 1.6
+++ erss.h 15 Jan 2004 14:46:46 -0000 1.7
@@ -35,11 +35,28 @@
extern Evas_Object *cont;
extern Ewd_List *config_files;
-void cb_mouse_out_item (void *data, Evas_Object *o, const char *sig, const char *src);
+
+int erss_connect (void *data);
+int erss_alphasort (const void *a, const void *b);
+
+char *erss_time_format ();
+int erss_set_time (void *data);
+
+int handler_signal_exit (void *data, int ev_type, void *ev);
+int handler_server_add (void *data, int type, void *event);
+int handler_server_data (void *data, int type, void *event);
+int handler_server_del (void *data, int type, void *event);
+
+void erss_window_move (Ecore_Evas * ee);
+void erss_window_resize (Ecore_Evas *ee);
+
+void cb_mouse_out_item (void *data, Evas_Object *o,
+ const char *sig, const char *src);
void cb_mouse_in (void *data, Evas *e, Evas_Object *obj, void *event_info);
void cb_mouse_out (void *data, Evas *e, Evas_Object *obj, void *event_info);
-void list_config_files (int output);
-void erss_parse (xmlDocPtr doc);
-
+
+
+void erss_list_config_files (int output);
+void erss_display_default_usage ();
#endif
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/parse.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- parse.c 14 Jan 2004 22:58:10 -0000 1.18
+++ parse.c 15 Jan 2004 14:46:46 -0000 1.19
@@ -1,10 +1,9 @@
#include "erss.h"
#include "parse.h"
+#include "parse_config.h"
Ewd_List *list = NULL;
Article *item = NULL;
-Config *cfg = NULL;
-Rc_Config *rc = NULL;
void erss_story_new ()
@@ -128,268 +127,3 @@
xmlFreeDoc(doc);
}
-int parse_rc_file ()
-{
- xmlDocPtr doc;
- xmlNodePtr cur;
- xmlChar *str = NULL;
- char file[PATH_MAX];
-
- snprintf (file, PATH_MAX, "%s/.erssrc", getenv ("HOME"));
-
- rc = malloc (sizeof (Rc_Config));
- memset(rc, 0, sizeof(Rc_Config));
-
- if (!rc)
- return FALSE;
-
- doc = xmlParseFile (file);
-
- if (doc) {
- cur = xmlDocGetRootElement(doc);
-
- cur = cur->xmlChildrenNode;
- while (cur != NULL) {
- if (!strcmp(cur->name, "config")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode,
1);
- if (str)
- rc->config = strdup (str);
- } else if (!strcmp(cur->name, "theme")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode,
1);
- if (str)
- rc->theme = strdup (str);
- } else if (!strcmp(cur->name, "browser")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode,
1);
- if (str)
- rc->browser = strdup (str);
- } else if (!strcmp(cur->name, "proxy")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode,
1);
- if (str)
- rc->proxy = strdup (str);
- } else if (!strcmp(cur->name, "proxy_port")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode,
1);
- if (str)
- rc->proxy_port = atoi (str);
- }
-
- if (str) {
- xmlFree (str);
- str = NULL;
- }
-
- cur = cur->next;
- }
- }
-
- /*
- * Set sane defaults for unspecified config options.
- */
- if (!rc->theme)
- rc->theme = strdup(PACKAGE_DATA_DIR "/default.eet");
- if (!rc->config)
- rc->config = strdup(PACKAGE_DATA_DIR "/config/slashdot.cfg");
-
- if (!rc->browser && getenv("BROWSER"))
- rc->browser = strdup(getenv("BROWSER"));
- if (!rc->browser)
- rc->browser = strdup("mozilla");
-
- /*
- * If there is no rc file return false for us to know
- */
- if (!doc)
- return FALSE;
-
- xmlFreeDoc(doc);
-
- return TRUE;
-}
-
-void parse_config_file (char *file)
-{
- xmlDocPtr doc;
- xmlNodePtr cur;
- xmlChar *str = NULL;
- char *tmp;
- int match = FALSE;
-
- /*
- * Look in the list of config files and try to
- * match our argument.
- */
-
- doc = xmlParseFile (file);
-
- if (doc == NULL) {
- list_config_files (FALSE);
-
- tmp = ewd_list_goto_first (config_files);
- while ((tmp = ewd_list_current (config_files))) {
- if (strstr (tmp, file)) {
- doc = xmlParseFile (tmp);
-
- if (doc == NULL) {
- fprintf (stderr, "%s error: Can't open config
file %s\n",
- PACKAGE, tmp);
- exit (-1);
- }
-
- match = TRUE;
- break;
- }
-
- ewd_list_next (config_files);
- }
-
- if (!match) {
- fprintf (stderr, "%s error: No match for %s\n", PACKAGE, file);
- exit (-1);
- } else {
- printf ("%s info: your string '%s' matches %s\n", PACKAGE,
file, tmp);
- printf ("%s info: using %s as config file\n", PACKAGE, tmp);
- }
-
- }
-
-
- /*
- * Now allocate and fill the config struct
- */
- cfg = malloc (sizeof (Config));
- memset(cfg, 0, sizeof (Config));
-
- if (!cfg) {
- fprintf (stderr, "%s error: out of memory\n", PACKAGE);
- exit (-1);
- }
-
- cur = xmlDocGetRootElement(doc);
- cur = cur->xmlChildrenNode;
-
- while (cur != NULL) {
- if (!strcmp(cur->name, "header")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->header = strdup (str);
- } else if (!strcmp(cur->name, "hostname")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->hostname = strdup (str);
- } else if (!strcmp(cur->name, "url")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->url = strdup (str);
- } else if (!strcmp(cur->name, "item_root")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->item_root = strdup (str);
- } else if (!strcmp(cur->name, "item_start")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->item_start = strdup (str);
- } else if (!strcmp(cur->name, "item_title")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->item_title = strdup (str);
- } else if (!strcmp(cur->name, "item_url")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->item_url = strdup (str);
- } else if (!strcmp(cur->name, "item_description")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->item_description = strdup (str);
- } else if (!strcmp(cur->name, "prefix")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->prefix = strdup (str);
- } else if (!strcmp(cur->name, "update_rate")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->update_rate = atoi (str);
- } else if (!strcmp(cur->name, "clock")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->clock = atoi (str);
- if (cfg->clock != 1 && cfg->clock != 0) {
- fprintf (stderr,
- "%s error: Clock option has wrong
value - check your config file!\n",
- PACKAGE);
- exit (-1);
- }
- } else if (!strcmp(cur->name, "stories")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->num_stories = atoi (str);
-
- if (cfg->num_stories > 10) {
- fprintf (stderr,
- "%s error: Max stories to show is 10 -
check your config file!\n",
- PACKAGE);
- exit (-1);
- }
- } else if (!strcmp(cur->name, "borderless")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->borderless = atoi (str);
-
- if (cfg->borderless != 1 && cfg->borderless != 0) {
- fprintf (stderr,
- "%s error:: Borderless option has
wrong value - check your config file!\n"
- , PACKAGE);
- exit (-1);
- }
- } else if (!strcmp(cur->name, "x")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->x = atoi (str);
- } else if (!strcmp(cur->name, "y")) {
- str = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
- if (str)
- cfg->y = atoi (str);
- }
-
- if (str) {
- xmlFree (str);
- str = NULL;
- }
-
- cur = cur->next;
- }
-
- xmlFreeDoc(doc);
-
- /*
- * Now start checking for sane values!
- */
- if (!cfg->hostname) {
- fprintf (stderr, "%s error: No hostname defined!\n", PACKAGE);
- exit (-1);
- }
-
- if (!cfg->url) {
- fprintf (stderr, "%s error: No url defined!\n", PACKAGE);
- exit (-1);
- }
-
- if (!cfg->num_stories) {
- fprintf (stderr,
- "%s error: you need to define item_start in your
config file\n",
- PACKAGE);
- exit (-1);
- }
-
- if (!cfg->item_title) {
- fprintf (stderr, "%s error: no <item_title> tag defined\n", PACKAGE);
- exit (-1);
- }
-
- if (!cfg->update_rate) {
- fprintf (stderr, "%s error: you need to define update_rate in your
config file\n", PACKAGE);
- exit (-1);
- }
-
- if (!cfg->prefix)
- cfg->prefix = strdup(" . ");
-
-}
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/parse.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- parse.h 14 Jan 2004 18:57:07 -0000 1.6
+++ parse.h 15 Jan 2004 14:46:46 -0000 1.7
@@ -5,47 +5,9 @@
char *description;
} Article;
-typedef struct _config {
- char *header;
- char *hostname;
- char *url;
-
- char *item_root;
- char *item_start;
- char *item_title;
- char *item_url;
- char *item_description;
-
- int update_rate;
- int clock;
- int num_stories;
-
- int x;
- int y;
-
- int borderless;
-
- char *prefix;
-
- char *theme;
- char *config;
-} Config;
-
-typedef struct _rc_config {
- char *config;
- char *theme;
- char *browser;
- char *proxy;
- int proxy_port;
- char *enc_from;
- char *enc_to;
-} Rc_Config;
-
-int parse_rc_file ();
-void parse_data (char *buf);
-void parse_config_file (char *file);
-
-extern int objects_placed;
-extern Config *cfg;
extern Article *item;
-extern Rc_Config *rc;
+
+void erss_story_new ();
+void erss_story_end ();
+void erss_parse_story (xmlDocPtr doc, xmlNodePtr cur);
+void erss_parse (xmlDocPtr doc);
-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs