1. setsid to children detech from parent
authorCarsten Haitzler <raster@rasterman.com>
Thu, 26 Feb 2009 02:13:34 +0000 (02:13 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 26 Feb 2009 02:13:34 +0000 (02:13 +0000)
2. entry segv fix possibly
3. some formatting for list frees

SVN revision: 39225

src/lib/elm_entry.c
src/lib/elm_main.c
src/lib/elm_theme.c

index 22d3a72..c4d88ee 100644 (file)
@@ -199,6 +199,7 @@ _mkup_to_text(const char *mkup)
    char *s, *p;
    char *tag_start, *tag_end, *esc_start, *esc_end, *ts;
    
+   if (!mkup) return NULL;
    tag_start = tag_end = esc_start = esc_end = NULL;
    p = (char *)mkup;
    s = p;
@@ -323,6 +324,7 @@ _text_to_mkup(const char *text)
    int str_len = 0, str_alloc = 0;
    int ch, pos = 0, pos2 = 0;
    
+   if (!text) return NULL;
    for (;;)
      {
         // FIXME: use evas_string_char_next_get()
index c17da2d..6ada9b7 100644 (file)
@@ -366,12 +366,15 @@ elm_quicklaunch_sub_shutdown(void)
 EAPI void
 elm_quicklaunch_shutdown(void)
 {
+   const char *fontdir;
+   
    eina_stringshare_del(_elm_data_dir);
    _elm_data_dir = NULL;
 
-   const char *fontdir;
    EINA_LIST_FREE(_elm_config->font_dirs, fontdir)
+     {
         eina_stringshare_del(fontdir);
+     }
 
    ecore_event_handler_del(_elm_exit_handler);
    _elm_exit_handler = NULL;
@@ -484,6 +487,7 @@ elm_quicklaunch_fork(int argc, char **argv, char *cwd)
             perror("could not fork");
             return 0;
          }
+        setsid();
         if (chdir(cwd) != 0)
          perror("could not chdir");
         args = alloca((argc + 1) * sizeof(char *));
@@ -499,6 +503,7 @@ elm_quicklaunch_fork(int argc, char **argv, char *cwd)
        perror("could not fork");
        return 0;
      }
+   setsid();
    if (chdir(cwd) != 0)
      perror("could not chdir");
    ret = qr_main(argc, argv);
index 4300bb1..01f4ff7 100644 (file)
@@ -192,7 +192,9 @@ _elm_theme_parse(const char *theme)
    cache = eina_hash_string_superfast_new(NULL);
 
    EINA_LIST_FREE(themes, p)
-     eina_stringshare_del(p);
+     {
+        eina_stringshare_del(p);
+     }
 
    themes = names;
    return 1;