summaryrefslogtreecommitdiffstats
path: root/player/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/client.c')
-rw-r--r--player/client.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/player/client.c b/player/client.c
index 21c6807ad3..4a7307194a 100644
--- a/player/client.c
+++ b/player/client.c
@@ -19,7 +19,6 @@
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
-#include <locale.h>
#include <math.h>
#include <assert.h>
@@ -462,15 +461,18 @@ static void *core_thread(void *tag)
{
mpthread_set_name("mpv core");
+ mpv_handle *ctx = NULL;
struct MPContext *mpctx = mp_create();
- mpctx->autodetach = true;
- mpv_handle *ctx = mp_new_client(mpctx->clients, "main");
- if (ctx) {
- ctx->owner = true;
- ctx->fuzzy_initialized = true;
- m_config_set_profile(mpctx->mconfig, "libmpv", 0);
- } else {
- mp_destroy(mpctx);
+ if (mpctx) {
+ mpctx->autodetach = true;
+ ctx = mp_new_client(mpctx->clients, "main");
+ if (ctx) {
+ ctx->owner = true;
+ ctx->fuzzy_initialized = true;
+ m_config_set_profile(mpctx->mconfig, "libmpv", 0);
+ } else {
+ mp_destroy(mpctx);
+ }
}
// Let mpv_create() return, and pass it the handle.
@@ -491,24 +493,8 @@ static void *core_thread(void *tag)
return NULL;
}
-// We mostly care about LC_NUMERIC, and how "." vs. "," is treated,
-// Other locale stuff might break too, but probably isn't too bad.
-static bool check_locale(void)
-{
- char *name = setlocale(LC_NUMERIC, NULL);
- return !name || strcmp(name, "C") == 0 || strcmp(name, "C.UTF-8") == 0;
-}
-
mpv_handle *mpv_create(void)
{
- if (!check_locale()) {
- // Normally, we never print anything (except if the "terminal" option
- // is enabled), so this is an exception.
- fprintf(stderr, "Non-C locale detected. This is not supported.\n"
- "Call 'setlocale(LC_NUMERIC, \"C\");' in your code.\n");
- return NULL;
- }
-
char tag;
pthread_t thread;
if (pthread_create(&thread, NULL, core_thread, &tag) != 0)