aboutsummaryrefslogtreecommitdiffstats
path: root/src/player_error.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_error.c')
-rw-r--r--src/player_error.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/player_error.c b/src/player_error.c
index 4c7f7b9de..38e76e2c4 100644
--- a/src/player_error.c
+++ b/src/player_error.c
@@ -4,50 +4,52 @@
#include "path.h"
enum player_error player_errno;
-Song *player_errsong;
+static char errsong_url[MPD_PATH_MAX];
void player_clearerror(void)
{
player_errno = PLAYER_ERROR_NONE;
- player_errsong = NULL;
+ *errsong_url = '\0';
}
-void player_seterror(enum player_error err, Song *song)
+void player_seterror(enum player_error err, const char *url)
{
if (player_errno)
ERROR("Clobbering existing error: %s\n", player_strerror());
player_errno = err;
- player_errsong = song;
+ pathcpy_trunc(errsong_url, url);
}
const char *player_strerror(void)
{
/* static OK here, only one user in main task */
static char error[MPD_PATH_MAX + 64]; /* still too much */
- char path_max_tmp[MPD_PATH_MAX];
- *error = '\0'; /* likely */
+ const char *ret = NULL;
switch (player_errno) {
- case PLAYER_ERROR_NONE: break;
+ case PLAYER_ERROR_NONE:
+ ret = "";
+ break;
case PLAYER_ERROR_FILE:
- snprintf(error, sizeof(error), "problems decoding \"%s\"",
- get_song_url(path_max_tmp, player_errsong));
+ snprintf(error, sizeof(error),
+ "problems decoding \"%s\"", errsong_url);
break;
case PLAYER_ERROR_AUDIO:
- strcpy(error, "problems opening audio device");
+ ret = "problems opening audio device";
break;
case PLAYER_ERROR_SYSTEM:
- strcpy(error, "system error occured");
+ /* DONTFIX: misspelling "occurred" here is client-visible */
+ ret = "system error occured";
break;
case PLAYER_ERROR_UNKTYPE:
- snprintf(error, sizeof(error), "file type of \"%s\" is unknown",
- get_song_url(path_max_tmp, player_errsong));
- case PLAYER_ERROR_FILENOTFOUND:
snprintf(error, sizeof(error),
- "file \"%s\" does not exist or is inaccessible",
- get_song_url(path_max_tmp, player_errsong));
+ "file type of \"%s\" is unknown", errsong_url);
break;
+ case PLAYER_ERROR_FILENOTFOUND:
+ snprintf(error, sizeof(error),
+ "file \"%s\" does not exist or is inaccessible",
+ errsong_url);
}
- return *error ? error : NULL;
+ return ret ? ret : error;
}