Updating branch refs/heads/master
         to a5fa5beafeb47facb590a2a3e98812d50b973217 (commit)
       from b335b9482992ec3eb7199a90b242f9cc169baaf8 (commit)

commit a5fa5beafeb47facb590a2a3e98812d50b973217
Author: Stephan Arts <[email protected]>
Date:   Sun Aug 21 22:48:43 2011 +0200

    Fix segfault, cleanup support-reader.c file.

 libsqueeze/command-option.c |    3 +
 libsqueeze/support-reader.c |  169 ++++++++++++++++++++++++++-----------------
 2 files changed, 107 insertions(+), 65 deletions(-)

diff --git a/libsqueeze/command-option.c b/libsqueeze/command-option.c
index 92e582e..a5f12e8 100644
--- a/libsqueeze/command-option.c
+++ b/libsqueeze/command-option.c
@@ -193,6 +193,9 @@ lsq_command_option_create_pair(LSQCommandOption 
**option_list)
   LSQCommandOptionPair **option_pair;
   LSQCommandOptionPair **pair_iter;
 
+  g_return_val_if_fail (NULL != option_list, NULL);
+
+
   for(option_iter = option_list; *option_iter; option_iter++)
   {
     length++;
diff --git a/libsqueeze/support-reader.c b/libsqueeze/support-reader.c
index 6d7cae2..af78c93 100644
--- a/libsqueeze/support-reader.c
+++ b/libsqueeze/support-reader.c
@@ -1,17 +1,17 @@
 /* 
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or 
- *  (at your option) any later version.
+ *     This program is free software; you can redistribute it and/or modify
+ *     it under the terms of the GNU General Public License as published by
+ *     the Free Software Foundation; either version 2 of the License, or 
+ *     (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Library General Public License for more details.
+ *     This program is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.    See the
+ *     GNU Library General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *     You should have received a copy of the GNU General Public License
+ *     along with this program; if not, write to the Free Software
+ *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
USA.
  */
 
 #include <config.h>
@@ -113,6 +113,13 @@ lsq_support_reader_new(void)
        return reader;
 }
 
+/**
+ * lsq_support_reader_parse_file:
+ *
+ * @filename: The filename that should be parsed.
+ *
+ * Returns: a new LSQSupportFactory object.
+ */
 LSQSupportFactory *
 lsq_support_reader_parse_file(const gchar *filename)
 {
@@ -134,15 +141,17 @@ lsq_support_reader_parse_file(const gchar *filename)
        xfce_rc_set_group(rc, "Desktop Entry");
 
        type = xfce_rc_read_entry(rc, "Type", "");
-       if(strcmp(type, "X-Squeeze-Archiver"))
+       if (0 != strcmp(type, "X-Squeeze-Archiver"))
        {
                g_object_unref(factory);
                return NULL;
        }
 
        name = xfce_rc_read_entry(rc, "Name", NULL);
-       if(name)
+       if (NULL != name)
+    {
                factory->id = g_strdup(name);
+    }
        else
        {
                g_object_unref(factory);
@@ -153,38 +162,41 @@ lsq_support_reader_parse_file(const gchar *filename)
 
        xfce_rc_set_group(rc, "Squeeze-Add");
 
-  option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
-  if(option_names)
-  {
-    add_options = lsq_command_option_create_list(rc, option_names);
-    g_strfreev(option_names);
-  }
+       option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+
+       if(NULL != option_names)
+       {
+        add_options = lsq_command_option_create_list(rc, option_names);
+        g_strfreev(option_names);
+       }
 
        xfce_rc_set_group(rc, "Squeeze-Remove");
 
-  option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
-  if(option_names)
-  {
-    remove_options = lsq_command_option_create_list(rc, option_names);
-    g_strfreev(option_names);
-  }
+       option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+
+       if (NULL != option_names)
+       {
+        remove_options = lsq_command_option_create_list(rc, option_names);
+        g_strfreev (option_names);
+       }
 
        xfce_rc_set_group(rc, "Squeeze-Extract");
 
-  option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
-  if(option_names)
-  {
-    extract_options = lsq_command_option_create_list(rc, option_names);
-    g_strfreev(option_names);
-  }
+       option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+       if(option_names)
+       {
+        extract_options = lsq_command_option_create_list(rc, option_names);
+        g_strfreev(option_names);
+       }
 
        xfce_rc_set_group(rc, "Squeeze-Refresh");
-  column_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Headers", ";");
-  parser_string = xfce_rc_read_entry(rc, "X-Squeeze-Parse", NULL);
-  if(parser_string)
-  {
-    parser = lsq_scanf_parser_new(parser_string);
-  }
+       column_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Headers", ";");
+       parser_string = xfce_rc_read_entry(rc, "X-Squeeze-Parse", NULL);
+
+       if (NULL != parser_string)
+       {
+           parser = lsq_scanf_parser_new(parser_string);
+       }
 
        _mime_types = mime_types;
        for(i = 0; _mime_types[i]; ++i)
@@ -218,43 +230,70 @@ lsq_support_reader_parse_file(const gchar *filename)
                                _iter++;
                        }
                }
-               else
+               else
+               {
                        s_template->supported = FALSE;
+               }
 
                s_template->content_type = g_strdup (_mime_types[i]);
                s_template->id = (const gchar *)factory->id;
 
-        new_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-New", NULL);
-        add_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Add", NULL);
-        remove_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Remove", NULL);
-        extract_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Extract", NULL);
-        refresh_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Refresh", NULL);
+               new_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-New", NULL);
+               add_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Add", NULL);
+               remove_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Remove", 
NULL);
+               extract_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Extract", 
NULL);
+               refresh_str_queue = xfce_rc_read_entry(rc, "X-Squeeze-Refresh", 
NULL);
 
-       
-        if (new_str_queue)    
-            s_template->new_cmd_queue     = 
lsq_command_queue_new(new_str_queue);
-        if (add_str_queue)
-            s_template->add_cmd_queue     = 
lsq_command_queue_new(add_str_queue);
-        if (remove_str_queue)
-            s_template->remove_cmd_queue  = 
lsq_command_queue_new(remove_str_queue);
-        if (extract_str_queue)
-            s_template->extract_cmd_queue = 
lsq_command_queue_new(extract_str_queue);
-        if (refresh_str_queue)
-            s_template->refresh_cmd_queue = 
lsq_command_queue_new(refresh_str_queue);
-
-        s_template->add_options = add_options;
-        s_template->remove_options = remove_options;
-        s_template->extract_options = extract_options;
-
-
-    s_template->n_properties = g_strv_length(column_names);
-    s_template->property_names = column_names;
-    s_template->parser = parser;
-
-               if (s_template->supported)
+        /* Read the 'new-archive' command-queue from file */   
+               if (NULL != new_str_queue)      
+               {
+                       s_template->new_cmd_queue = 
lsq_command_queue_new(new_str_queue);
+               }
+
+        /* Read the 'add-to-archive' command-queue from file */        
+               if (NULL != add_str_queue)
+               {
+                       s_template->add_cmd_queue = 
lsq_command_queue_new(add_str_queue);
+               }
+
+        /* Read the 'remove-to-archive' command-queue from file */     
+               if (NULL != remove_str_queue)
+               {
+                       s_template->remove_cmd_queue = 
lsq_command_queue_new(remove_str_queue);
+               }
+
+        /* Read the 'extract-to-archive' command-queue from file */    
+               if (NULL != extract_str_queue)
+               {
+                       s_template->extract_cmd_queue = 
lsq_command_queue_new(extract_str_queue);
+               }
+
+        /* Read the 'refresh-archive' command-queue from file */       
+               if (NULL != refresh_str_queue)
+               {
+                       s_template->refresh_cmd_queue = 
lsq_command_queue_new(refresh_str_queue);
+               }
+
+        /* Add the appropriate options to the template */
+               s_template->add_options = add_options;
+               s_template->remove_options = remove_options;
+               s_template->extract_options = extract_options;
+
+
+               s_template->n_properties = g_strv_length(column_names);
+               s_template->property_names = column_names;
+               s_template->parser = parser;
+
+#ifdef DEBUG
+               if (NULL != s_template->supported)
+               {
                        g_debug("%s supported\n", _mime_types[i]);
+               }
                else
+               {
                        g_debug("%s not supported\n", _mime_types[i]);
+               }
+#endif
 
                lsq_support_factory_add_template(factory, s_template);
        }
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to