<nullie> is there way to get tag name by id, easier than parsing tag_status ?
<The-Compiler> heh, why does the tags object only have a by-name, and no by-id? :P
<The-Compiler> if it had, it'd be easy \o/
And so this was born.
--
() ascii ribbon campaign - stop html mail www.asciiribbon.org
/\ www.the-compiler.org | I love long mails http://email.is-not-s.ms/
I just thought of something funny...your mother. - Cheech Marin
From 52638a947d708032c464e729bb18d52d6f418483 Mon Sep 17 00:00:00 2001
From: Florian Bruhin <git _at_ the _minus_ compiler _dot_ org>
Date: Mon, 21 Apr 2014 18:44:43 +0200
Subject: [PATCH] Add tag id objects.
---
src/tag.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/tag.c b/src/tag.c
index 483495b..831abde 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -205,6 +205,20 @@ static int tag_attr_index(void* data) {
return tag_index_of(tag);
}
+static void tag_unlink_id_object(HSTag* tag, void* data) {
+ (void)data;
+ hsobject_unlink(g_tag_object, tag->object);
+}
+
+static void tag_link_id_object(HSTag* tag, void* data) {
+ (void)data;
+ GString* index_str = g_string_new("");
+ int index = tag_index_of(tag);
+ g_string_printf(index_str, "%d", index);
+ hsobject_link(g_tag_object, tag->object, index_str->str);
+ g_string_free(index_str, true);
+}
+
HSTag* add_tag(char* name) {
HSTag* find_result = find_tag(name);
if (find_result) {
@@ -233,6 +247,7 @@ HSTag* add_tag(char* name) {
ATTRIBUTE_LAST,
};
hsobject_set_attributes(tag->object, attributes);
+ tag_link_id_object(tag, NULL);
ewmh_update_desktops();
ewmh_update_desktop_names();
@@ -332,6 +347,7 @@ int tag_remove_command(int argc, char** argv, GString*
output) {
}
}
g_free(buf);
+ tag_foreach(tag_unlink_id_object, NULL);
// remove tag
char* oldname = g_strdup(tag->name->str);
tag_free(tag);
@@ -347,6 +363,7 @@ int tag_remove_command(int argc, char** argv, GString*
output) {
tag_set_flags_dirty();
hook_emit_list("tag_removed", oldname, target->name->str, NULL);
g_free(oldname);
+ tag_foreach(tag_link_id_object, NULL);
return 0;
}
--
1.9.2
Attachment:
pgpmbDAd9y61P.pgp
Description: PGP signature