From 62600666d21aacea63cece3b4ec64f0ffb40168b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Jun 2016 12:44:58 +0200 Subject: ignore std::locale exeception on non-existent "" locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In 8b79c94af7f7cf2e5e5342294bc6e5a908cacabf changing to usage of C++ way of setting the locale causes us to be terminated in case of usage of an ungenerated locale as LC_ALL (or similar) – but we don't want to fail here, we just want to carry on as before with setlocale which we call in that case just for good measure. --- methods/aptmethod.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'methods') diff --git a/methods/aptmethod.h b/methods/aptmethod.h index cf3496e45..bef61a8bc 100644 --- a/methods/aptmethod.h +++ b/methods/aptmethod.h @@ -46,7 +46,11 @@ public: aptMethod(char const * const Binary, char const * const Ver, unsigned long const Flags) : pkgAcqMethod(Ver, Flags), Binary(Binary) { - std::locale::global(std::locale("")); + try { + std::locale::global(std::locale("")); + } catch (...) { + setlocale(LC_ALL, ""); + } } }; -- cgit v1.2.3-70-g09d2