diff options
-rw-r--r-- | src/libpiano/response.c | 3 | ||||
-rw-r--r-- | src/ui_act.c | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/libpiano/response.c b/src/libpiano/response.c index 42e2ffe..0be8872 100644 --- a/src/libpiano/response.c +++ b/src/libpiano/response.c @@ -520,7 +520,8 @@ PianoReturn_t PianoResponse (PianoHandle_t *ph, PianoRequest_t *req) { assert (reqData != NULL); json_object *explanations; - if (json_object_object_get_ex (result, "explanations", &explanations)) { + if (json_object_object_get_ex (result, "explanations", &explanations) && + json_object_array_length (explanations) > 0) { reqData->retExplain = malloc (strSize * sizeof (*reqData->retExplain)); strncpy (reqData->retExplain, "We're playing this track " diff --git a/src/ui_act.c b/src/ui_act.c index 30bd4e5..fa5c43b 100644 --- a/src/ui_act.c +++ b/src/ui_act.c @@ -271,8 +271,12 @@ BarUiActCallback(BarUiActExplain) { BarUiMsg (&app->settings, MSG_INFO, "Receiving explanation... "); if (BarUiActDefaultPianoCall (PIANO_REQUEST_EXPLAIN, &reqData)) { - BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain); - free (reqData.retExplain); + if (reqData.retExplain == NULL) { + BarUiMsg (&app->settings, MSG_ERR, "No explanation provided.\n"); + } else { + BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain); + free (reqData.retExplain); + } } BarUiActDefaultEventcmd ("songexplain"); } |