summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2015-12-01 16:17:02 +0100
committerBastien Nocera <hadess@hadess.net>2015-12-14 11:39:50 +0100
commit6d68858dad2afbc0662021f9ca4d7167d79fb48a (patch)
treeef51273f2ead6f96d3470feb6ecf470254e45435
parent539cf42ce0a7f6f6fc4698b12bd0845a711957af (diff)
core: Remove trailing '/' from GrlMedia IDs
grl-launch-0.3 -S browse -k title grlbox://grl-tracker-source/videos/ should have the same output as: grl-launch-0.3 -S browse -k title grlbox://grl-tracker-source/videos The first would get its ID parsed to "videos/" whereas the second would be parsed to "videos". Chomp the trailing '/'. https://bugzilla.gnome.org/show_bug.cgi?id=758654
-rw-r--r--src/data/grl-media.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/data/grl-media.c b/src/data/grl-media.c
index e87882d..5043a6d 100644
--- a/src/data/grl-media.c
+++ b/src/data/grl-media.c
@@ -35,6 +35,7 @@
#include "grl-media.h"
#include <grilo.h>
#include <stdlib.h>
+#include <string.h>
#define GRL_LOG_DOMAIN_DEFAULT media_log_domain
GRL_LOG_DOMAIN(media_log_domain);
@@ -551,6 +552,9 @@ grl_media_unserialize (const gchar *serial)
/* Add id */
escaped_value = g_match_info_fetch (match_info, 3);
if (escaped_value && escaped_value[0] == '/') {
+ guint len = strlen (escaped_value);
+ if (len > 2 && escaped_value[len - 1] == '/')
+ escaped_value[len - 1] = '\0';
value = g_uri_unescape_string (escaped_value + 1, NULL);
grl_media_set_id (media, value);
g_free (value);