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 4d676847f2b10dfb29ef5813edb9be7860da5ed9
Author: Carsten Haitzler (Rasterman) <[email protected]>
AuthorDate: Wed Feb 4 19:10:07 2026 +0000
start with built-in typebuf cmds
ls, rm, unlink, mv, cp, ln, cd
ls and cd are implemented.
need to add soem hilighitng of args like -abc options
need to hilight argument paths like raw path mode in tyopebuf
need to handle complete in open.c for command args
---
src/backends/default/open.c | 117 ++++++++++++++++++++++++++++++++++----------
src/efm/efm_typebuf.c | 10 ++--
2 files changed, 98 insertions(+), 29 deletions(-)
diff --git a/src/backends/default/open.c b/src/backends/default/open.c
index 61a9201..c127e20 100644
--- a/src/backends/default/open.c
+++ b/src/backends/default/open.c
@@ -18,11 +18,6 @@
#include <grp.h>
#include "cmd.h"
-#include "efreet_desktop.h"
-#include "eina_hash.h"
-#include "eina_list.h"
-#include "eina_strbuf.h"
-#include "eina_types.h"
#include "sha.h"
#include "meta.h"
#include "thumb_check.h"
@@ -733,6 +728,16 @@ _file_add_mod_meta_append(const char *path, const char *meta, const char *key,
eina_stringshare_del(s);
}
+static void
+_cmd_typebuf_icon_send(const char *icon)
+{
+ Eina_Strbuf *strbuf = cmd_strbuf_new("typebuf-icon");
+
+ if (!strbuf) return;
+ cmd_strbuf_append(strbuf, "icon", icon);
+ cmd_strbuf_print_consume(strbuf);
+}
+
static void
_file_add_mod_desktop_fields_append(Eina_Strbuf *strbuf, Efreet_Desktop *d,
const char *key_prefix, const char *path,
@@ -1344,6 +1349,33 @@ _meta_update(const char *path)
_file_mod(path);
}
+static void
+_typebuf_cd(const char *dest)
+{
+ Eina_Strbuf *strbuf = cmd_strbuf_new("dir-request");
+ Eina_Strbuf *strbuf2 = NULL;
+ const char *mondir = ecore_file_monitor_path_get(mon);
+ char *path;
+
+ if (!strbuf) return;
+ if ((!mondir) || (!dest) || (!dest[0])) goto done;
+ strbuf2 = eina_strbuf_new();
+ if (!strbuf2) goto done;
+ eina_strbuf_append_printf(strbuf2, "%s/%s", mondir, dest);
+ fprintf(stderr, "XXX: GO TO [%s]\n", eina_strbuf_string_get(strbuf2));
+ path = ecore_file_realpath(eina_strbuf_string_get(strbuf2));
+ eina_strbuf_free(strbuf2);
+ if (path)
+ {
+ cmd_strbuf_append(strbuf, "path", path);
+ cmd_strbuf_print_consume(strbuf);
+ free(path);
+ return;
+ }
+done:
+ eina_strbuf_free(strbuf);
+}
+
void
do_handle_cmd(Cmd *c)
{
@@ -1639,7 +1671,7 @@ do_handle_cmd(Cmd *c)
// XXX: now handle typebuf commands in the backend
// XXX: if its a valid cmd - tell front end
- op = cmd_key_find(c, "op");
+ op = cmd_key_find(c, "op"); // "update", "complete", "run", "cursor"
line_str = cmd_key_find(c, "line");
cpos_str = cmd_key_find(c, "cursor-pos");
@@ -1647,13 +1679,55 @@ do_handle_cmd(Cmd *c)
if (line_str) args = eina_str_split(line_str, " ", -1);
if (args)
{
- if (!strcmp(args[0], "rm"))
+ if (!strcmp(args[0], "ls"))
{
- Eina_Strbuf *strbuf = cmd_strbuf_new("typebuf-icon");
- if (strbuf)
+ _cmd_typebuf_icon_send("std:view-refresh");
+ if ((op) && (!strcmp(op, "run")))
{
- cmd_strbuf_append(strbuf, "icon", "std:edit-delete");
- cmd_strbuf_print_consume(strbuf);
+ if (args[1]) _typebuf_cd(args[1]);
+ else
+ {
+ Eina_Strbuf *strbuf = cmd_strbuf_new("view-refresh");
+ cmd_strbuf_print_consume(strbuf);
+ }
+ }
+ }
+ else if (!strcmp(args[0], "rm"))
+ {
+ _cmd_typebuf_icon_send("std:edit-delete");
+// _op_run("trash", files, NULL);
+ }
+ else if (!strcmp(args[0], "unlink"))
+ {
+ _cmd_typebuf_icon_send("std:edit-delete");
+// _op_run("rm", files, NULL);
+ }
+ else if (!strcmp(args[0], "mv"))
+ {
+ _cmd_typebuf_icon_send("std:edit-rename");
+// _op_run("mv", files, NULL);
+ }
+ else if (!strcmp(args[0], "cp"))
+ {
+ _cmd_typebuf_icon_send("std:edit-copy");
+// _op_run("cp", files, NULL);
+ }
+ else if (!strcmp(args[0], "ln"))
+ {
+ _cmd_typebuf_icon_send("std:insert-link");
+// _op_run("ln", files, NULL);
+ }
+ else if (!strcmp(args[0], "cd"))
+ {
+ _cmd_typebuf_icon_send("std:folder");
+ if ((op) && (!strcmp(op, "run")))
+ {
+ if (args[1]) _typebuf_cd(args[1]);
+ else
+ {
+ Eina_Strbuf *strbuf = cmd_strbuf_new("view-refresh");
+ cmd_strbuf_print_consume(strbuf);
+ }
}
}
else
@@ -1662,23 +1736,16 @@ do_handle_cmd(Cmd *c)
if (d)
{
- Eina_Strbuf *strbuf = cmd_strbuf_new("typebuf-icon");
- if (strbuf)
- {
- Eina_Strbuf *buf2 = eina_strbuf_new();
+ Eina_Strbuf *buf2 = eina_strbuf_new();
- if (buf2)
- {
- eina_strbuf_append(buf2, "std:");
- eina_strbuf_append(buf2, d->icon);
- cmd_strbuf_append(strbuf, "icon",
- eina_strbuf_string_get(buf2));
- eina_strbuf_free(buf2);
- }
- cmd_strbuf_print_consume(strbuf);
+ if (buf2)
+ {
+ eina_strbuf_append_printf(buf2, "std:%s", d->icon);
+ _cmd_typebuf_icon_send(eina_strbuf_string_get(buf2));
+ eina_strbuf_free(buf2);
}
+ efreet_desktop_free(d);
}
- efreet_desktop_free(d);
}
// for (p = args; *p != NULL; p++)
// fprintf(stderr, "XXX:ZZZ: [%s]\n", *p);
diff --git a/src/efm/efm_typebuf.c b/src/efm/efm_typebuf.c
index 435faa9..3ae4ccf 100644
--- a/src/efm/efm_typebuf.c
+++ b/src/efm/efm_typebuf.c
@@ -79,10 +79,11 @@ _typebuf_cmd_send(Smart_Data *sd, const char *op)
char *s = _typebuf_command_get(sd);
int cpos = elm_entry_cursor_pos_get(sd->o_typebuf);
- if ((!s) ||
- ((sd->typebuf.prevcmd.line) &&
- (!strcmp(s, sd->typebuf.prevcmd.line)) &&
- (sd->typebuf.prevcmd.cursor_pos == cpos)))
+ if ((!s)
+ || ((sd->typebuf.prevcmd.line)
+ && (!strcmp(s, sd->typebuf.prevcmd.line))
+ && (sd->typebuf.prevcmd.cursor_pos == cpos)
+ && (!!strcmp(op, "run"))))
{
if (buf) eina_strbuf_free(buf);
return;
@@ -628,6 +629,7 @@ _cb_typebuf_activated(void *data, Evas_Object *obj EINA_UNUSED,
}
if (pos > 0)
{
+ fprintf(stderr, "XXX: RUUUUUUUUUUUUUUUUUUUUNNNN\n");
_typebuf_cmd_send(sd, "run");
}
else
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.