Skip to content
Snippets Groups Projects
Commit cd11dbf6 authored by xtex's avatar xtex Committed by Celeste
Browse files
parent 97b16abe
No related branches found
No related tags found
1 merge request!69240community/onboard: fix GIL for obj alloc & fix sticking key
Pipeline #249470 skipped
......@@ -16,6 +16,7 @@ source="https://launchpad.net/onboard/${pkgver%.*}/$pkgver/+download/onboard-$pk
glibc-musl-error.patch
no-werror.patch
fix-gil-for-alloc.patch
fix-pyunicode.patch
"
options="!check" # cannot open display
subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc"
......@@ -33,4 +34,5 @@ ed75c1dce893e3420ecf532faffb15efc9fba56cf6622b03fe5e1cebb88d32304636b0268e4b8b75
23742c38f877fc31260d4d7d3ff38c8d72541a77e099183d6633de74bcb223bbd34cedd88016f043867b2571f1196b59a3378a94186b468dbaa7a5d00661065a glibc-musl-error.patch
b6613340246ac3821e38850d3dbf05cd85cb42f7253416e9e524573d4839b0dc249c49adff61e4b2129f6ed1a34ba075b2b9b6d4da3820abe5aa38bb154787af no-werror.patch
bb4e088e017ddbf56f9d794396802488614e44bfa1ae60d577620c2a738458bc21821c78834202e188469f8924fb0189f1c91c4e178ea04399ec8e9031edee92 fix-gil-for-alloc.patch
294a172eb7934f825f1351838bf4e69d5f98d807ee99aecb1068851d3628c561889599234e5d6c6b3cab2df9fd2a49b1ac2474ae235b806534a763c394fafc67 fix-pyunicode.patch
"
From 49be15ac7bcae04459d89b0488c09ed7e875f57b Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebster@gmail.com>
Date: Fri, 19 Jul 2024 11:05:16 -0400
Subject: [PATCH] osk_virtkey.c: Don't use legacy Py_UNICODE for converting
utf8 to keysyms.
The 'u' format is removed in python 3.12, switch to using
PyUnicode_AsWideCharString as recommended.
Fixes linuxmint/mint22-beta#22.
---
Onboard/osk/osk_module.h | 2 ++
Onboard/osk/osk_virtkey.c | 19 ++++++++++++++-----
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/Onboard/osk/osk_module.h b/Onboard/osk/osk_module.h
index f611f7b..d049df4 100644
--- a/Onboard/osk/osk_module.h
+++ b/Onboard/osk/osk_module.h
@@ -22,6 +22,8 @@
#ifndef __OSK_MODULE__
#define __OSK_MODULE__
+#define PY_SSIZE_T_CLEAN
+
#include <Python.h>
#include <structmember.h>
diff --git a/Onboard/osk/osk_virtkey.c b/Onboard/osk/osk_virtkey.c
index 87eb5bf..f054a5c 100644
--- a/Onboard/osk/osk_virtkey.c
+++ b/Onboard/osk/osk_virtkey.c
@@ -1461,14 +1461,23 @@ osk_virtkey_keycode_from_keysym (PyObject *self, PyObject *args)
static PyObject *
osk_virtkey_keysym_from_unicode (PyObject *self, PyObject *args)
{
- long keysym;
- Py_UNICODE* ucs;
+ PyObject *utf_obj;
+ wchar_t *str = NULL;
- if (!PyArg_ParseTuple (args, "u", &ucs))
+ if (!PyArg_ParseTuple (args, "O", &utf_obj))
return NULL;
- keysym = ucs2keysym(*ucs);
- return PyLong_FromLong (keysym);
+ str = PyUnicode_AsWideCharString(utf_obj, NULL);
+ if (str != NULL)
+ {
+ long keysym;
+ keysym = ucs2keysym(str[0]);
+ PyMem_Free (str);
+
+ return PyLong_FromLong (keysym);
+ }
+
+ return NULL;
}
static PyObject *
--
GitLab
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment