Enlightenment CVS committal

Author  : azundris
Project : misc
Module  : erss

Dir     : misc/erss/src


Modified Files:
        erss.h net.c parse.c parse.h tooltip.c 


Log Message:
* "le random commit"

===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/erss.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- erss.h      21 Feb 2004 08:53:36 -0000      1.11
+++ erss.h      21 Feb 2004 09:20:55 -0000      1.12
@@ -44,6 +44,7 @@
 
 typedef struct _erss_article {
   Evas_Object *obj;
+  char        *title;
   char        *url;
   char        *description;
   time_t       ts;
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/net.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- net.c       21 Feb 2004 08:53:36 -0000      1.1
+++ net.c       21 Feb 2004 09:20:55 -0000      1.2
@@ -100,7 +100,7 @@
        Ecore_Con_Event_Server_Del *e = event;
        char         *buf = f->main_buffer;
        char         *temp;
-       Erss_Article *ptr;
+       Erss_Article *item;
 
        if (f->total_connects == 1)
                printf ("%s info: disconnecting from %s...\n", PACKAGE, 
cfg->hostname?cfg->hostname:"host");
@@ -114,24 +114,27 @@
         * make room for the new items.
         */
        if (f->list) {
-               ptr = ewd_list_goto_first (f->list);
-               while ((ptr = ewd_list_next(f->list))) {
+               item = ewd_list_goto_first (f->list);
+               while ((item = ewd_list_next(f->list))) {
 
                        /*
                         * Remove the evas object from the list 
                         * and destory it.
                         */
 
-                       if (ptr->obj)
-                               e_container_element_destroy (cont, ptr->obj);
+                       if (item->obj)
+                               e_container_element_destroy (cont, item->obj);
 
-                       if (ptr->url)
-                               free (ptr->url);
+                       if (item->title)
+                               free (item->title);
 
-                       if (ptr->description)
-                               free (ptr->description);
+                       if (item->url)
+                               free (item->url);
 
-                       free (ptr);
+                       if (item->description)
+                               free (item->description);
+
+                       free (item);
                }
 
                /* 
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/parse.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- parse.c     21 Feb 2004 08:53:36 -0000      1.25
+++ parse.c     21 Feb 2004 09:20:55 -0000      1.26
@@ -10,9 +10,10 @@
 {
        f->item=malloc(sizeof(Erss_Article));
        memset(f->item,0,sizeof(Erss_Article));
+       f->item->title=NULL;
        f->item->description=NULL;
        f->item->url=NULL;
-       f->item->ts=time(NULL);
+       f->item->ts=0L;
        return f->item;
 }
 
@@ -22,6 +23,32 @@
        f->item = NULL;
 }
 
+char *erss_desc_clean (char *description) {
+       /* remove potential tags. not using libXML here, contents may not
+          be well-formed...  */
+
+       char *p;
+
+       
if((description==NULL)||(*description=='\0')||((description=strdup(description))==NULL))
+               return NULL;
+
+       p=description;
+       while(*p) {
+         if(*p=='<') {
+           char *p2=p;
+           do {
+             p2++;
+           } while(*p2&&(*p2!='>'));
+           if(*p2)
+             memmove(p,p2+1,strlen(p2));
+           else
+             *p='\0'; }
+         else
+           p++; }
+
+       return description;
+}
+
 static void erss_parse_story (erss_feed *f, xmlNodePtr cur)
 {
        Erss_Tooltip *tt = NULL;
@@ -65,7 +92,7 @@
                        free (text);
                        xmlFree (str);
                }
-       
+
                if (cfg->item_url) {
                        if (!strcmp(cur->name, cfg->item_url) && f->item) {
                                str = xmlNodeListGetString(f->doc, 
cur->xmlChildrenNode, 1);
@@ -79,21 +106,27 @@
                                xmlFree (str);
                        }
                }
-               
+
                if (cfg->item_description) {
                        if (!strcmp(cur->name, cfg->item_description) && f->item) {
-                               str = xmlNodeListGetString(f->doc, 
cur->xmlChildrenNode, 1);
+                               char *desc;
 
-                               tt = erss_tooltip_new (str);
-
-                               if (f->item->obj) {
-                                       evas_object_event_callback_add (f->item->obj,
-                                                       EVAS_CALLBACK_MOUSE_IN, 
erss_tooltip_mouse_in, tt);
-                                       evas_object_event_callback_add (f->item->obj,
-                                                       EVAS_CALLBACK_MOUSE_OUT, 
erss_tooltip_mouse_out, tt);
+                               if((str = xmlNodeListGetString(f->doc, 
cur->xmlChildrenNode, 1))) {
+                                       if((desc = erss_desc_clean(str))) {
+                                               if((tt = erss_tooltip_new (desc))) {
+                                                       if (f->item->obj) {
+                                                               
evas_object_event_callback_add (f->item->obj,
+                                                                                      
                                                                                       
                  EVAS_CALLBACK_MOUSE_IN, erss_tooltip_mouse_in, tt);
+                                                               
evas_object_event_callback_add (f->item->obj,
+                                                                                      
                                                                                       
                  EVAS_CALLBACK_MOUSE_OUT, erss_tooltip_mouse_out, tt);
+                                                       }
+                                               } /*
+                                               if (f->item->description)
+                                                       free (f->item->description); */
+                                               f->item->description=desc;
+                                       }
+                                       xmlFree (str);
                                }
-
-                               xmlFree (str);
                        }
                }
 
@@ -101,12 +134,13 @@
        }
 }
 
-void erss_parse (erss_feed *f)
+int erss_parse (erss_feed *f)
 {
        xmlNodePtr cur;
 
        if (f->doc == NULL ) {
                fprintf(stderr, "%s warn: buffer not parsed successfully.\n", PACKAGE);
+               return ERSS_PARSE_FAIL;
        }
 
        cur = xmlDocGetRootElement(f->doc);
@@ -114,13 +148,13 @@
        if (cur == NULL) {
                fprintf(stderr,"%s error: empty buffer\n", PACKAGE);
                xmlFreeDoc(f->doc);
-               exit (-1);
+               return ERSS_PARSE_EMPTY;
        }
 
        cur = cur->xmlChildrenNode;
        while (cur != NULL) {
                if (ewd_list_nodes (f->list) >= cfg->num_stories)
-                       return;
+                       return cfg->num_stories;
 
                if (cfg->item_root) {
                        if (!strcmp(cur->name, cfg->item_root)) {
@@ -138,4 +172,6 @@
        }
 
        xmlFreeDoc(f->doc);
+
+       return ewd_list_nodes (f->list);
 }
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/parse.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- parse.h     21 Feb 2004 08:53:36 -0000      1.9
+++ parse.h     21 Feb 2004 09:20:55 -0000      1.10
@@ -1,3 +1,9 @@
 #include "erss.h"
 
-void erss_parse (erss_feed *);
+typedef enum {
+  ERSS_PARSE_SUCC=0,
+  ERSS_PARSE_FAIL=-1,
+  ERSS_PARSE_EMPTY=-2
+} erss_parse_error;
+
+int erss_parse (erss_feed *);
===================================================================
RCS file: /cvsroot/enlightenment/misc/erss/src/tooltip.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- tooltip.c   21 Feb 2004 08:53:36 -0000      1.6
+++ tooltip.c   21 Feb 2004 09:20:55 -0000      1.7
@@ -4,32 +4,6 @@
 #include "tooltip.h"
 #include "gui.h"
 
-char *erss_tooltip_clean (char *description) {
-       /* remove potential tags. not using libXML here, contents may not
-          be well-formed...  */
-
-       char *p;
-
-       
if((description==NULL)||(*description=='\0')||((description=strdup(description))==NULL))
-               return NULL;
-
-       p=description;
-       while(*p) {
-         if(*p=='<') {
-           char *p2=p;
-           do {
-             p2++;
-           } while(*p2&&(*p2!='>'));
-           if(*p2)
-             memmove(p,p2+1,strlen(p2));
-           else
-             *p='\0'; }
-         else
-           p++; }
-
-       return description;
-}
-
 void erss_window_move_tooltip (Ecore_Evas * ee)
 {
        int x, y, w, h;
@@ -46,9 +20,8 @@
        Erss_Tooltip *tt;
        int x, y, w, h;
        double ew, eh;
-       char *text = erss_tooltip_clean(description);
 
-       if(text == NULL)
+       if(description == NULL)
                return NULL;
        
        tt = malloc (sizeof (Erss_Tooltip));
@@ -90,7 +63,7 @@
        etox_set_word_wrap(tt->etox, 1);
        etox_set_alpha(tt->etox, 255);
        evas_object_layer_set(tt->etox, 1000);
-       etox_set_text (tt->etox, text);
+       etox_set_text (tt->etox, description);
        evas_object_show (tt->etox);
        evas_object_geometry_get(tt->etox, NULL, NULL, &ew, &eh);
 
@@ -106,8 +79,6 @@
        ecore_evas_callback_resize_set(tt->ee, erss_window_resize);
        ecore_evas_resize(tt->ee, ew + 10, eh + 10);
 
-       free(text);
-
        return tt;
 }
 




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to