diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-24 08:54:48 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-24 08:54:48 +0100 | 
| commit | 163a663518f33bab48b28431972e580b366b4d49 (patch) | |
| tree | f518ffabaca4a0b93f0103d617e803792d3b0b43 /lib/hard-locale.c | |
| parent | 1b3a8d5ad2ea2f099d514d9dd51ebf926a628076 (diff) | |
| parent | dd0000f7e25abe6c28d4329d324fd7fcab54094f (diff) | |
Merge branch 'release/debian/1.2-1'debian/1.2-1
Diffstat (limited to 'lib/hard-locale.c')
| -rw-r--r-- | lib/hard-locale.c | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/lib/hard-locale.c b/lib/hard-locale.c index f7fbc470..653c5809 100644 --- a/lib/hard-locale.c +++ b/lib/hard-locale.c @@ -1,6 +1,6 @@  /* hard-locale.c -- Determine whether a locale is hard. -   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2022 Free Software +   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2024 Free Software     Foundation, Inc.     This file is free software: you can redistribute it and/or modify @@ -21,6 +21,7 @@  #include "hard-locale.h"  #include <locale.h> +#include <stdlib.h>  #include <string.h>  bool @@ -31,5 +32,16 @@ hard_locale (int category)    if (setlocale_null_r (category, locale, sizeof (locale)))      return false; -  return !(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0); +  if (!(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)) +    return true; + +#if defined __ANDROID__ +  /* On Android 5.0 or newer, it is possible to set a locale that has the same +     name as the "C" locale but in fact uses UTF-8 encoding.  Cf. test case 2 in +     <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00141.html>.  */ +  if (MB_CUR_MAX > 1) +    return true; +#endif + +  return false;  } | 
