This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efm2.

View the commit online.

commit fc58a174f7a35db679a08149586ad659d8cbc4a3
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Fri Jun 20 17:58:29 2025 +0100

    add debug to cmd io and de dup desktop file reading code
    
    also read some more types/fileds. easier now its just in one place
---
 src/backends/default/open.c | 296 ++++++++++++++------------------------------
 src/shared/cmd.c            |   9 ++
 2 files changed, 102 insertions(+), 203 deletions(-)

diff --git a/src/backends/default/open.c b/src/backends/default/open.c
index 69644c2..5953908 100644
--- a/src/backends/default/open.c
+++ b/src/backends/default/open.c
@@ -18,7 +18,6 @@
 #include <grp.h>
 
 #include "cmd.h"
-#include "eina_types.h"
 #include "sha.h"
 #include "meta.h"
 #include "thumb_check.h"
@@ -686,10 +685,93 @@ _file_add_mod_meta_append(const char *path, const char *meta, const char *key,
   eina_stringshare_del(s);
 }
 
+static void
+_file_add_mod_desktop_fields_append(Eina_Strbuf *strbuf, Efreet_Desktop *d,
+                                    const char *key_prefix, const char *path,
+                                    struct stat *st)
+{
+  Eina_Strbuf *keybuf = eina_strbuf_new();
+  char        *icf;
+  const char  *icon;
+
+  if (!keybuf) return;
+#define KEY(_x)                                             \
+  {                                                         \
+    eina_strbuf_reset(keybuf);                              \
+    if (key_prefix) eina_strbuf_append(keybuf, key_prefix); \
+    eina_strbuf_append(keybuf, (_x));                       \
+  }
+#define KEYSTR() eina_strbuf_string_get(keybuf)
+#define STREMPTY(_x) (_x) ? (_x) : ""
+#define STRBOOL(_x)  (_x) ? "true" : "false"
+  KEY("label");
+  cmd_strbuf_append(strbuf, KEYSTR(),
+                    d->name ? d->name : ecore_file_file_get(path));
+  KEY("desktop-type");
+  if (d->type == EFREET_DESKTOP_TYPE_APPLICATION)
+    cmd_strbuf_append(strbuf, KEYSTR(), "Application");
+  else if (d->type == EFREET_DESKTOP_TYPE_DIRECTORY)
+    cmd_strbuf_append(strbuf, KEYSTR(), "Directory");
+  else if (d->type == EFREET_DESKTOP_TYPE_LINK)
+    cmd_strbuf_append(strbuf, KEYSTR(), "Link");
+  KEY("desktop-generic-name");
+  cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->generic_name));
+  KEY("dsesktop-comment");
+  cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->comment));
+  KEY("desktop-icon");
+  icf = _icon_resolve(path, d->icon, st);
+  if (icf)
+    {
+      cmd_strbuf_append(strbuf, KEYSTR(), icf);
+      free(icf);
+    }
+  else cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->icon));
+  KEY("desktop-try-exec");
+  cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->try_exec));
+
+  KEY("desktop-exec");
+  cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->exec));
+  KEY("desktop-url");
+  cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->url));
+  KEY("desktop-no-display");
+  cmd_strbuf_append(strbuf, KEYSTR(), STRBOOL(d->no_display));
+  KEY("desktop-hidden");
+  cmd_strbuf_append(strbuf, KEYSTR(), STRBOOL(d->hidden));
+  KEY("desktop-terminal");
+  cmd_strbuf_append(strbuf, KEYSTR(), STRBOOL(d->terminal));
+  KEY("desktop-startup-notify");
+  cmd_strbuf_append(strbuf, KEYSTR(), STRBOOL(d->startup_notify));
+  if ((d->icon) && (d->icon[0] != '/'))
+    {
+      KEY("desktop-icon.lookup");
+      icon = efreet_mime_type_icon_get(d->icon, icon_theme, 128);
+      cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(icon));
+    }
+  KEY("label-clicked");
+  _cmd_desktop_x_field_append(strbuf, d, KEYSTR(),
+                              "X-NameClicked");
+  KEY("label-selected");
+  _cmd_desktop_x_field_append(strbuf, d, KEYSTR(),
+                              "X-NameSelected");
+  KEY("desktop-icon-clicked");
+  _cmd_desktop_x_field_icon_resolve_append(
+    strbuf, d, KEYSTR(), "X-IconClicked", path, st);
+  KEY("desktop-icon-selected");
+  _cmd_desktop_x_field_icon_resolve_append(
+    strbuf, d, KEYSTR(), "X-IconSelected", path, st);
+  KEY("desktop-enlightenment-type");
+  _cmd_desktop_x_field_icon_resolve_append(strbuf, d, KEYSTR(),
+                                           "X-Enlightenment-Type", path, st);
+#undef STREMPTY
+#undef KEYSTR
+#undef KEY
+  eina_strbuf_free(keybuf);
+}
+
 static Eina_Bool
 _file_add_mod_info(Eina_Strbuf *strbuf, const char *path, Eina_Bool delay)
 { // add file metadata info on file add or modfiy
-  char            dst[PATH_MAX], buf[256], buf2[PATH_MAX], *icf;
+  char            dst[PATH_MAX], buf[256], buf2[PATH_MAX];
   struct stat     st;
   int             mode;
   struct passwd  *pw;
@@ -730,59 +812,8 @@ _file_add_mod_info(Eina_Strbuf *strbuf, const char *path, Eina_Bool delay)
                   desktop = efreet_desktop_get(buf2);
                   if (desktop)
                     {
-                      cmd_strbuf_append(strbuf, "link-label",
-                                        desktop->name
-                                          ? desktop->name
-                                          : ecore_file_file_get(path));
-                      cmd_strbuf_append(strbuf, "link-desktop-generic-name",
-                                        desktop->generic_name ? "true"
-                                                              : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-comment",
-                                        desktop->comment ? desktop->comment
-                                                         : "");
-                      icf = _icon_resolve(path, desktop->icon, &stdst);
-                      if (icf)
-                        {
-                          cmd_strbuf_append(strbuf, "link-desktop-icon", icf);
-                          free(icf);
-                        }
-                      else
-                        cmd_strbuf_append(strbuf, "link-desktop-icon",
-                                          desktop->icon ? desktop->icon : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-try-exec",
-                                        desktop->try_exec ? desktop->try_exec
-                                                          : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-exec",
-                                        desktop->exec ? desktop->exec : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-url",
-                                        desktop->url ? desktop->url : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-no-display",
-                                        desktop->no_display ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-hidden",
-                                        desktop->hidden ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-terminal",
-                                        desktop->terminal ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-startup-notify",
-                                        desktop->startup_notify ? "true"
-                                                                : "false");
-                      if ((desktop->icon) && (desktop->icon[0] != '/'))
-                        {
-                          icon = efreet_mime_type_icon_get(desktop->icon,
-                                                           icon_theme, 128);
-                          cmd_strbuf_append(strbuf, "link-desktop-icon.lookup",
-                                            icon ? icon : "");
-                        }
-                      _cmd_desktop_x_field_append(
-                        strbuf, desktop, "link-label-clicked", "X-NameClicked");
-                      _cmd_desktop_x_field_append(strbuf, desktop,
-                                                  "link-label-selected",
-                                                  "X-NameSelected");
-                      _cmd_desktop_x_field_icon_resolve_append(
-                        strbuf, desktop, "link-desktop-icon-clicked",
-                        "X-IconClicked", path, &stdst);
-                      _cmd_desktop_x_field_icon_resolve_append(
-                        strbuf, desktop, "link-desktop-icon-selected",
-                        "X-IconSelected", path, &stdst);
+                      _file_add_mod_desktop_fields_append(
+                        strbuf, desktop, "link-", path, &stdst);
                       efreet_desktop_free(desktop);
                       have_label = EINA_TRUE;
                     }
@@ -802,60 +833,9 @@ _file_add_mod_info(Eina_Strbuf *strbuf, const char *path, Eina_Bool delay)
                 {
                   desktop = efreet_desktop_get(path);
                   if (desktop)
-                    {
-                      cmd_strbuf_append(strbuf, "link-label",
-                                        desktop->name
-                                          ? desktop->name
-                                          : ecore_file_file_get(path));
-                      cmd_strbuf_append(strbuf, "link-desktop-generic-name",
-                                        desktop->generic_name ? "true"
-                                                              : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-comment",
-                                        desktop->comment ? desktop->comment
-                                                         : "");
-                      icf = _icon_resolve(path, desktop->icon, &stdst);
-                      if (icf)
-                        {
-                          cmd_strbuf_append(strbuf, "link-desktop-icon", icf);
-                          free(icf);
-                        }
-                      else
-                        cmd_strbuf_append(strbuf, "link-desktop-icon",
-                                          desktop->icon ? desktop->icon : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-try-exec",
-                                        desktop->try_exec ? desktop->try_exec
-                                                          : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-exec",
-                                        desktop->exec ? desktop->exec : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-url",
-                                        desktop->url ? desktop->url : "");
-                      cmd_strbuf_append(strbuf, "link-desktop-no-display",
-                                        desktop->no_display ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-hidden",
-                                        desktop->hidden ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-terminal",
-                                        desktop->terminal ? "true" : "false");
-                      cmd_strbuf_append(strbuf, "link-desktop-startup-notify",
-                                        desktop->startup_notify ? "true"
-                                                                : "false");
-                      if ((desktop->icon) && (desktop->icon[0] != '/'))
-                        {
-                          icon = efreet_mime_type_icon_get(desktop->icon,
-                                                           icon_theme, 128);
-                          cmd_strbuf_append(strbuf, "link-desktop-icon.lookup",
-                                            icon ? icon : "");
-                        }
-                      _cmd_desktop_x_field_append(
-                        strbuf, desktop, "link-label-clicked", "X-NameClicked");
-                      _cmd_desktop_x_field_append(strbuf, desktop,
-                                                  "link-label-selected",
-                                                  "X-NameSelected");
-                      _cmd_desktop_x_field_icon_resolve_append(
-                        strbuf, desktop, "link-desktop-icon-clicked",
-                        "X-IconClicked", path, &stdst);
-                      _cmd_desktop_x_field_icon_resolve_append(
-                        strbuf, desktop, "link-desktop-icon-selected",
-                        "X-IconSelected", path, &stdst);
+                    { // XXX: share with other desktop parsing
+                      _file_add_mod_desktop_fields_append(
+                        strbuf, desktop, "link-", path, &stdst);
                       efreet_desktop_free(desktop);
                     }
                   else
@@ -949,53 +929,8 @@ _file_add_mod_info(Eina_Strbuf *strbuf, const char *path, Eina_Bool delay)
           desktop = efreet_desktop_get(buf2);
           if (desktop)
             {
-              cmd_strbuf_append(strbuf, "label",
-                                desktop->name ? desktop->name
-                                              : ecore_file_file_get(path));
-              cmd_strbuf_append(strbuf, "desktop-generic-name",
-                                desktop->generic_name ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-comment",
-                                desktop->comment ? desktop->comment : "");
-              icf = _icon_resolve(path, desktop->icon, &st);
-              if (icf)
-                {
-                  cmd_strbuf_append(strbuf, "desktop-icon", icf);
-                  free(icf);
-                }
-              else
-                cmd_strbuf_append(strbuf, "desktop-icon",
-                                  desktop->icon ? desktop->icon : "");
-              cmd_strbuf_append(strbuf, "desktop-try-exec",
-                                desktop->try_exec ? desktop->try_exec : "");
-              cmd_strbuf_append(strbuf, "desktop-exec",
-                                desktop->exec ? desktop->exec : "");
-              cmd_strbuf_append(strbuf, "desktop-url",
-                                desktop->url ? desktop->url : "");
-              cmd_strbuf_append(strbuf, "desktop-no-display",
-                                desktop->no_display ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-hidden",
-                                desktop->hidden ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-terminal",
-                                desktop->terminal ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-startup-notify",
-                                desktop->startup_notify ? "true" : "false");
-              if ((desktop->icon) && (desktop->icon[0] != '/'))
-                {
-                  icon
-                    = efreet_mime_type_icon_get(desktop->icon, icon_theme, 128);
-                  cmd_strbuf_append(strbuf, "desktop-icon.lookup",
-                                    icon ? icon : "");
-                }
-              _cmd_desktop_x_field_append(strbuf, desktop, "label-clicked",
-                                          "X-NameClicked");
-              _cmd_desktop_x_field_append(strbuf, desktop, "label-selected",
-                                          "X-NameSelected");
-              _cmd_desktop_x_field_icon_resolve_append(
-                strbuf, desktop, "desktop-icon-clicked", "X-IconClicked", path,
-                &st);
-              _cmd_desktop_x_field_icon_resolve_append(
-                strbuf, desktop, "desktop-icon-selected", "X-IconSelected",
-                path, &st);
+              _file_add_mod_desktop_fields_append(strbuf, desktop, NULL, path,
+                                                  &st);
               efreet_desktop_free(desktop);
               have_label = EINA_TRUE;
             }
@@ -1015,53 +950,8 @@ _file_add_mod_info(Eina_Strbuf *strbuf, const char *path, Eina_Bool delay)
           desktop = efreet_desktop_get(path);
           if (desktop)
             {
-              cmd_strbuf_append(strbuf, "label",
-                                desktop->name ? desktop->name
-                                              : ecore_file_file_get(path));
-              cmd_strbuf_append(strbuf, "desktop-generic-name",
-                                desktop->generic_name ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-comment",
-                                desktop->comment ? desktop->comment : "");
-              icf = _icon_resolve(path, desktop->icon, &st);
-              if (icf)
-                {
-                  cmd_strbuf_append(strbuf, "desktop-icon", icf);
-                  free(icf);
-                }
-              else
-                cmd_strbuf_append(strbuf, "desktop-icon",
-                                  desktop->icon ? desktop->icon : "");
-              cmd_strbuf_append(strbuf, "desktop-try-exec",
-                                desktop->try_exec ? desktop->try_exec : "");
-              cmd_strbuf_append(strbuf, "desktop-exec",
-                                desktop->exec ? desktop->exec : "");
-              cmd_strbuf_append(strbuf, "desktop-url",
-                                desktop->url ? desktop->url : "");
-              cmd_strbuf_append(strbuf, "desktop-no-display",
-                                desktop->no_display ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-hidden",
-                                desktop->hidden ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-terminal",
-                                desktop->terminal ? "true" : "false");
-              cmd_strbuf_append(strbuf, "desktop-startup-notify",
-                                desktop->startup_notify ? "true" : "false");
-              if ((desktop->icon) && (desktop->icon[0] != '/'))
-                {
-                  icon
-                    = efreet_mime_type_icon_get(desktop->icon, icon_theme, 128);
-                  cmd_strbuf_append(strbuf, "desktop-icon.lookup",
-                                    icon ? icon : "");
-                }
-              _cmd_desktop_x_field_append(strbuf, desktop, "label-clicked",
-                                          "X-NameClicked");
-              _cmd_desktop_x_field_append(strbuf, desktop, "label-selected",
-                                          "X-NameSelected");
-              _cmd_desktop_x_field_icon_resolve_append(
-                strbuf, desktop, "desktop-icon-clicked", "X-IconClicked", path,
-                &st);
-              _cmd_desktop_x_field_icon_resolve_append(
-                strbuf, desktop, "desktop-icon-selected", "X-IconSelected",
-                path, &st);
+              _file_add_mod_desktop_fields_append(strbuf, desktop, NULL, path,
+                                                  &st);
               efreet_desktop_free(desktop);
             }
           else if (!have_label)
diff --git a/src/shared/cmd.c b/src/shared/cmd.c
index 62243a9..185f4e9 100644
--- a/src/shared/cmd.c
+++ b/src/shared/cmd.c
@@ -20,6 +20,15 @@ cmd_parse(const char *cmd)
   Cmd        *cnew, *c = malloc(sizeof(Cmd) + (2 * sizeof(char *)));
 
   if (strncmp(cmd, "CMD ", 4)) return NULL;
+  {
+    static int cmddbg = -1;
+    if (cmddbg == -1)
+      {
+        if (getenv("CMDDBG")) cmddbg = 1;
+        else cmddbg = 0;
+      }
+    if (cmddbg) printf("[%i] %s\n", getpid(), cmd);
+  }
   cmd += 4;
   if (!c) return NULL;
   c->buf_size = strlen(cmd) + 1;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to