[gjs/locale-agnostic-camel-properties: 1/5] jsapi-util-strings: Ignore locale to compute the upper case of a char
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs/locale-agnostic-camel-properties: 1/5] jsapi-util-strings: Ignore locale to compute the upper case of a char
- Date: Thu, 28 Apr 2022 18:50:06 +0000 (UTC)
commit 753f70ae577d1a31a6eb1a4413e2a8c626e75b1c
Author: Marco Trevisan (Treviño) <mail 3v1n0 net>
Date: Thu Apr 28 19:53:59 2022 +0200
jsapi-util-strings: Ignore locale to compute the upper case of a char
We used to compute camel-case name of properties using toupper(),
however this is locale-dependent, while in this case we want to be sure
that we're only using ASCII values.
This is particularly problematic in Turkish (and maybe other locales)
because there 'i'.toLocaleUpperCase() is 'İ', that is definitely not an
ASCII char, causing problems to with our generated properties.
See: https://github.com/micheleg/dash-to-dock/issues/1687
gjs/gjs_pch.hh | 1 -
gjs/jsapi-util-string.cpp | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
---
diff --git a/gjs/gjs_pch.hh b/gjs/gjs_pch.hh
index 46bea8a9b..6f1b0b4fb 100644
--- a/gjs/gjs_pch.hh
+++ b/gjs/gjs_pch.hh
@@ -28,7 +28,6 @@
#include <vector>
#include <assert.h>
-#include <ctype.h>
#include <errno.h>
#include <ffi.h>
#include <gio/gio.h>
diff --git a/gjs/jsapi-util-string.cpp b/gjs/jsapi-util-string.cpp
index c78069a83..a39a0c055 100644
--- a/gjs/jsapi-util-string.cpp
+++ b/gjs/jsapi-util-string.cpp
@@ -4,7 +4,6 @@
#include <config.h>
-#include <ctype.h> // for toupper
#include <stdint.h>
#include <string.h> // for size_t, strlen
#include <sys/types.h> // for ssize_t
@@ -59,7 +58,7 @@ GjsAutoChar gjs_hyphen_to_camel(const char* str) {
if (*input_iter == '-') {
uppercase_next = true;
} else if (uppercase_next) {
- *output_iter++ = toupper(*input_iter);
+ *output_iter++ = g_ascii_toupper(*input_iter);
uppercase_next = false;
} else {
*output_iter++ = *input_iter;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]