ayttm-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ayttm-commits] CVS: ayttm/src log_window.c,1.6,1.7


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src log_window.c,1.6,1.7
Date: Tue, 14 Jan 2003 16:21:00 -0500

Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv2173/src

Modified Files:
        log_window.c 
Log Message:
fix another bug/segfault


Index: log_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- log_window.c        12 Jan 2003 16:58:56 -0000      1.6
+++ log_window.c        14 Jan 2003 21:20:57 -0000      1.7
@@ -210,6 +210,8 @@
     strip_html(text);
     if(strlen(text) == 0)
        return TRUE;
+       
+    eb_debug(DBG_CORE,"search: begin at cur_log:%d\n",cur_log);
     
     while(!looped) {
       int total_length=0;
@@ -221,6 +223,7 @@
           s_list = (GSList*)gtk_clist_get_row_data(GTK_CLIST(lw->date_list), 
0);
          /*reset */
          cur_log=cur_pos=current_row=last_pos=total_length=0;
+         eb_debug(DBG_CORE,"search:looped\n");
          looped=TRUE;
       }
       if(!s_list) {
@@ -235,11 +238,20 @@
       while(s_list && cur_pos <= last_pos) {
          s_list=s_list->next;
          if(s_list && s_list->data && cur_pos<last_pos) {
-               total_length+=strlen((char*)s_list->data);
+               gchar *list_text = (gchar *)s_list->data;
+               gchar *no_html_text = NULL;
+               if (list_text) 
+                       no_html_text = strdup(list_text);
+               if (no_html_text) {
+                       strip_html(no_html_text);
+                       total_length+=strlen((char*)no_html_text);
+                       free(no_html_text);
+               }
+               eb_debug(DBG_CORE,"search:adding to %d\n",total_length);
          }
           if(s_list) cur_pos++;
       }
-      while(s_list) {
+      while(s_list && s_list->data) {
              gchar *list_text = (gchar *)s_list->data;
             gchar *no_html_text = NULL;
             if (list_text) 
@@ -260,7 +272,7 @@
                    last_pos=cur_pos+1;
                    current_row=cur_log;
                   /* select the matching substring */
-                  eb_debug(DBG_CORE, "search: total2=%d\n",total_length);
+                  eb_debug(DBG_CORE, "search: total2=%d 
(%d,%s)\n",total_length, cur_log,strstr(no_html_text,text) );
                   gtk_editable_set_position ( editable,
                                               
total_length+(int)(strstr(no_html_text,text)-no_html_text));
                   gtk_editable_select_region( editable,
@@ -268,19 +280,19 @@
                                               
total_length+(int)(strstr(no_html_text,text)-no_html_text)+strlen(text));
                   total_length+=strlen(no_html_text);
                   return TRUE;
-            } else if (no_html_text) 
+            } else if (no_html_text)
                     total_length+=strlen(no_html_text);
-            
             if (no_html_text)
                     free(no_html_text);
             /* next line */
             s_list=s_list->next;
             cur_pos++; 
-            last_pos=cur_pos;     
       }
       /* next conversation */
+      eb_debug(DBG_CORE,"search: next one\n");
       cur_log++;
       cur_pos=0;last_pos=0;
+      
       current_row=cur_log;
     }
     





reply via email to

[Prev in Thread] Current Thread [Next in Thread]