From 55995b6415a4fe82857eda424686e01aef048ec5 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Thu, 14 May 2020 19:55:41 +0200 Subject: [PATCH] Cherry pick from multiaddid --- inc/lektor/uri.h | 6 +++++- src/commands.c | 4 +--- src/database/queue.c | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/inc/lektor/uri.h b/inc/lektor/uri.h index e9bc81c2..caf93425 100644 --- a/inc/lektor/uri.h +++ b/inc/lektor/uri.h @@ -16,13 +16,17 @@ enum lkt_uri_type { struct lkt_uri { enum lkt_uri_type type; - void *value; + union { + void *value; + size_t id; + }; bool _allocated; }; /* Create and delete URIs */ bool lkt_uri_from(struct lkt_uri *ret, char *const str); +bool lkt_uri_from_list(struct lkt_uri *ret, char **list); void lkt_uri_free(struct lkt_uri *ret); /* Make an URL to download from kurisu. diff --git a/src/commands.c b/src/commands.c index 9b25a076..7d155a86 100644 --- a/src/commands.c +++ b/src/commands.c @@ -267,13 +267,11 @@ command_addid(volatile sqlite3 *db, struct lkt_win *win, char *args[LKT_MESSAGE_ { UNUSED(win); RETURN_UNLESS(args, "Invalid argument", false); - long id; char *endptr = NULL, err = 0; struct lkt_uri uri = { .type = uri_id }; *watch_mask_ptr |= MPD_IDLE_PLAYLIST; - STRTOL(id, args[0], endptr, err); + STRTOL(uri.id, args[0], endptr, err); RETURN_IF(err, "STRTOL failed", false); - uri.value = (void *) (size_t) id; return database_queue_add_uri(db, &uri, 1); } diff --git a/src/database/queue.c b/src/database/queue.c index e421ea06..d59484b9 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -265,7 +265,7 @@ database_queue_add_uri(volatile sqlite3 *db, struct lkt_uri *uri, int priority) return queue_add_with_col_like_str(db, LKT_DATABASE_KARA_ALL, uri->value, priority); case uri_id: - return database_queue_add_id(db, *(int *) uri->value, priority); + return database_queue_add_id(db, uri->id, priority); case uri_type: return queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KTYPE, uri->value, priority); -- GitLab