Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package SDL2 for openSUSE:Factory checked in 
at 2023-03-05 20:08:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/SDL2 (Old)
 and      /work/SRC/openSUSE:Factory/.SDL2.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "SDL2"

Sun Mar  5 20:08:02 2023 rev:50 rq:1069345 version:2.26.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/SDL2/SDL2.changes        2023-02-08 
17:19:43.561776123 +0100
+++ /work/SRC/openSUSE:Factory/.SDL2.new.31432/SDL2.changes     2023-03-05 
20:08:05.988732712 +0100
@@ -1,0 +2,10 @@
+Fri Mar  3 22:41:23 UTC 2023 - Michal Suchanek <msucha...@suse.com>
+
+- Use current keymap on console
+  (https://github.com/libsdl-org/SDL/pull/7400 )
+  + 0001-Cleanup-add-brace-6545.patch
+  + 0002-Update-for-SDL3-coding-style-6717.patch
+  + 0003-Clang-Tidy-fixes-6725.patch
+  + 0004-evdev_kbd-Use-current-keymap.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Cleanup-add-brace-6545.patch
  0002-Update-for-SDL3-coding-style-6717.patch
  0003-Clang-Tidy-fixes-6725.patch
  0004-evdev_kbd-Use-current-keymap.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ SDL2.spec ++++++
--- /var/tmp/diff_new_pack.lXifjJ/_old  2023-03-05 20:08:06.864736761 +0100
+++ /var/tmp/diff_new_pack.lXifjJ/_new  2023-03-05 20:08:06.872736798 +0100
@@ -31,6 +31,10 @@
 Source3:        %name.keyring
 Source4:        baselibs.conf
 Patch1:         sdl2-symvers.patch
+Patch2:         0001-Cleanup-add-brace-6545.patch
+Patch3:         0002-Update-for-SDL3-coding-style-6717.patch
+Patch4:         0003-Clang-Tidy-fixes-6725.patch
+Patch5:         0004-evdev_kbd-Use-current-keymap.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  libdecor-devel

++++++ 0001-Cleanup-add-brace-6545.patch ++++++
>From fb0ce375f0474501764a4bce7b609a1eab143526 Mon Sep 17 00:00:00 2001
From: Sylvain Becker <sylvain.bec...@gmail.com>
Date: Sun, 27 Nov 2022 17:38:43 +0100
Subject: [PATCH 1/5] Cleanup add brace (#6545)

* Add braces after if conditions

* More add braces after if conditions

* Add braces after while() conditions

* Fix compilation because of macro being modified

* Add braces to for loop

* Add braces after if/goto

* Move comments up

* Remove extra () in the 'return ...;' statements

* More remove extra () in the 'return ...;' statements

* More remove extra () in the 'return ...;' statements after merge

* Fix inconsistent patterns are xxx == NULL vs !xxx

* More "{}" for "if() break;"  and "if() continue;"

* More "{}" after if() short statement

* More "{}" after "if () return;" statement

* More fix inconsistent patterns are xxx == NULL vs !xxx

* Revert some modificaion on SDL_RLEaccel.c

* SDL_RLEaccel: no short statement

* Cleanup 'if' where the bracket is in a new line

* Cleanup 'while' where the bracket is in a new line

* Cleanup 'for' where the bracket is in a new line

* Cleanup 'else' where the bracket is in a new line

(cherry picked from commit 6a2200823c66e53bd3cda4a25f0206b834392652 to reduce 
conflicts merging between SDL2 and SDL3)
---
 src/core/linux/SDL_evdev_kbd.c | 64 +++++++++++++++++++++-------------
 1 file changed, 39 insertions(+), 25 deletions(-)

diff --git a/src/core/linux/SDL_evdev_kbd.c b/src/core/linux/SDL_evdev_kbd.c
index f090bff41..f7f01deb4 100644
--- a/src/core/linux/SDL_evdev_kbd.c
+++ b/src/core/linux/SDL_evdev_kbd.c
@@ -270,13 +270,14 @@ static void kbd_unregister_emerg_cleanup()
         old_action_p = &(old_sigaction[signum]);
 
         /* Examine current signal action */
-        if (sigaction(signum, NULL, &cur_action))
+        if (sigaction(signum, NULL, &cur_action)) {
             continue;
+        }
 
         /* Check if action installed and not modifed */
-        if (!(cur_action.sa_flags & SA_SIGINFO)
-                || cur_action.sa_sigaction != &kbd_cleanup_signal_action)
+        if (!(cur_action.sa_flags & SA_SIGINFO) || cur_action.sa_sigaction != 
&kbd_cleanup_signal_action) {
             continue;
+        }
 
         /* Restore original action */
         sigaction(signum, old_action_p, NULL);
@@ -320,16 +321,16 @@ static void 
kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state * kbd)
         struct sigaction new_action;
         signum = fatal_signals[tabidx];   
         old_action_p = &(old_sigaction[signum]);
-        if (sigaction(signum, NULL, old_action_p))
+        if (sigaction(signum, NULL, old_action_p)) {
             continue;
+        }
 
         /* Skip SIGHUP and SIGPIPE if handler is already installed
          * - assume the handler will do the cleanup
          */
-        if ((signum == SIGHUP || signum == SIGPIPE)
-                && (old_action_p->sa_handler != SIG_DFL 
-                    || (void (*)(int))old_action_p->sa_sigaction != SIG_DFL))
+        if ((signum == SIGHUP || signum == SIGPIPE) && 
(old_action_p->sa_handler != SIG_DFL || 
(void(*)(int))old_action_p->sa_sigaction != SIG_DFL)) {
             continue;
+        }
 
         new_action = *old_action_p;
         new_action.sa_flags |= SA_SIGINFO;
@@ -347,7 +348,7 @@ SDL_EVDEV_kbd_init(void)
     char shift_state[ sizeof (long) ] = {TIOCL_GETSHIFTSTATE, 0};
 
     kbd = (SDL_EVDEV_keyboard_state *)SDL_calloc(1, sizeof(*kbd));
-    if (!kbd) {
+    if (kbd == NULL) {
         return NULL;
     }
 
@@ -413,7 +414,7 @@ SDL_EVDEV_kbd_init(void)
 void
 SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
 {
-    if (!kbd) {
+    if (kbd == NULL) {
         return;
     }
 
@@ -461,10 +462,12 @@ static void put_utf8(SDL_EVDEV_keyboard_state *kbd, uint 
c)
         put_queue(kbd, 0xc0 | (c >> 6));
         put_queue(kbd, 0x80 | (c & 0x3f));
     } else if (c < 0x10000) {
-        if (c >= 0xD800 && c < 0xE000)
+        if (c >= 0xD800 && c < 0xE000) {
             return;
-        if (c == 0xFFFF)
+        }
+        if (c == 0xFFFF) {
             return;
+        }
         /* 1110**** 10****** 10****** */
         put_queue(kbd, 0xe0 | (c >> 12));
         put_queue(kbd, 0x80 | ((c >> 6) & 0x3f));
@@ -499,8 +502,9 @@ static unsigned int handle_diacr(SDL_EVDEV_keyboard_state 
*kbd, unsigned int ch)
         }
     }
 
-    if (ch == ' ' || ch == d)
+    if (ch == ' ' || ch == d) {
         return d;
+    }
 
     put_utf8(kbd, d);
 
@@ -554,24 +558,27 @@ static void fn_enter(SDL_EVDEV_keyboard_state *kbd)
 
 static void fn_caps_toggle(SDL_EVDEV_keyboard_state *kbd)
 {
-    if (kbd->rep)
+    if (kbd->rep) {
         return;
+    }
 
     chg_vc_kbd_led(kbd, K_CAPSLOCK);
 }
 
 static void fn_caps_on(SDL_EVDEV_keyboard_state *kbd)
 {
-    if (kbd->rep)
+    if (kbd->rep) {
         return;
+    }
 
     set_vc_kbd_led(kbd, K_CAPSLOCK);
 }
 
 static void fn_num(SDL_EVDEV_keyboard_state *kbd)
 {
-    if (!kbd->rep)
+    if (!kbd->rep) {
         chg_vc_kbd_led(kbd, K_NUMLOCK);
+    }
 }
 
 static void fn_compose(SDL_EVDEV_keyboard_state *kbd)
@@ -589,12 +596,15 @@ static void k_ignore(SDL_EVDEV_keyboard_state *kbd, 
unsigned char value, char up
 
 static void k_spec(SDL_EVDEV_keyboard_state *kbd, unsigned char value, char 
up_flag)
 {
-    if (up_flag)
+    if (up_flag) {
         return;
-    if (value >= SDL_arraysize(fn_handler))
+    }
+    if (value >= SDL_arraysize(fn_handler)) {
         return;
-    if (fn_handler[value])
+    }
+    if (fn_handler[value]) {
         fn_handler[value](kbd);
+    }
 }
 
 static void k_lowercase(SDL_EVDEV_keyboard_state *kbd, unsigned char value, 
char up_flag)
@@ -603,11 +613,13 @@ static void k_lowercase(SDL_EVDEV_keyboard_state *kbd, 
unsigned char value, char
 
 static void k_self(SDL_EVDEV_keyboard_state *kbd, unsigned char value, char 
up_flag)
 {
-    if (up_flag)
-        return;        /* no action, if this is a key release */
+    if (up_flag) {
+        return; /* no action, if this is a key release */
+    } 
 
-    if (kbd->diacr)
+    if (kbd->diacr) {
         value = handle_diacr(kbd, value);
+    }
 
     if (kbd->dead_key_next) {
         kbd->dead_key_next = SDL_FALSE;
@@ -676,8 +688,9 @@ static void k_shift(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_
      */
     if (value == KVAL(K_CAPSSHIFT)) {
         value = KVAL(K_SHIFT);
-        if (!up_flag)
+        if (!up_flag) {
             clr_vc_kbd_led(kbd, K_CAPSLOCK);
+        }
     }
 
     if (up_flag) {
@@ -685,8 +698,9 @@ static void k_shift(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_
          * handle the case that two shift or control
          * keys are depressed simultaneously
          */
-        if (kbd->shift_down[value])
+        if (kbd->shift_down[value]) {
             kbd->shift_down[value]--;
+        }
     } else
         kbd->shift_down[value]++;
 
@@ -762,7 +776,7 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, 
unsigned int keycode, int d
     unsigned short *key_map;
     unsigned short keysym;
 
-    if (!kbd) {
+    if (kbd == NULL) {
         return;
     }
 
@@ -770,7 +784,7 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, 
unsigned int keycode, int d
 
     shift_final = (kbd->shift_state | kbd->slockstate) ^ kbd->lockstate;
     key_map = kbd->key_maps[shift_final];
-    if (!key_map) {
+    if (key_map == NULL) {
         /* Unsupported shift state (e.g. ctrl = 4, alt = 8), just reset to the 
default state */
         kbd->shift_state = 0;
         kbd->slockstate = 0;
-- 
2.39.2


++++++ 0002-Update-for-SDL3-coding-style-6717.patch ++++++
>From b8d85c6939eaa3fca676af832b5d64320b2296ca Mon Sep 17 00:00:00 2001
From: Sam Lantinga <slou...@libsdl.org>
Date: Wed, 30 Nov 2022 12:51:59 -0800
Subject: [PATCH 2/5] Update for SDL3 coding style (#6717)

I updated .clang-format and ran clang-format 14 over the src and test 
directories to standardize the code base.

In general I let clang-format have it's way, and added markup to prevent 
formatting of code that would break or be completely unreadable if formatted.

The script I ran for the src directory is added as 
build-scripts/clang-format-src.sh

This fixes:
#6592
#6593
#6594

(cherry picked from commit 5750bcb174300011b91d1de20edb288fcca70f8c)
---
 src/core/linux/SDL_evdev_kbd.c | 92 ++++++++++++++++------------------
 1 file changed, 42 insertions(+), 50 deletions(-)

diff --git a/src/core/linux/SDL_evdev_kbd.c b/src/core/linux/SDL_evdev_kbd.c
index f7f01deb4..42b634a92 100644
--- a/src/core/linux/SDL_evdev_kbd.c
+++ b/src/core/linux/SDL_evdev_kbd.c
@@ -53,33 +53,31 @@
  * Handler Tables.
  */
 
-#define K_HANDLERS\
-    k_self,     k_fn,       k_spec,       k_pad,\
-    k_dead,     k_cons,     k_cur,        k_shift,\
-    k_meta,     k_ascii,    k_lock,       k_lowercase,\
-    k_slock,    k_dead2,    k_brl,        k_ignore
+#define K_HANDLERS                            \
+    k_self, k_fn, k_spec, k_pad,              \
+        k_dead, k_cons, k_cur, k_shift,       \
+        k_meta, k_ascii, k_lock, k_lowercase, \
+        k_slock, k_dead2, k_brl, k_ignore
 
-typedef void (k_handler_fn)(SDL_EVDEV_keyboard_state *kbd, unsigned char 
value, char up_flag);
+typedef void(k_handler_fn)(SDL_EVDEV_keyboard_state *kbd, unsigned char value, 
char up_flag);
 static k_handler_fn K_HANDLERS;
 static k_handler_fn *k_handler[16] = { K_HANDLERS };
 
-typedef void (fn_handler_fn)(SDL_EVDEV_keyboard_state *kbd);
+typedef void(fn_handler_fn)(SDL_EVDEV_keyboard_state *kbd);
 static void fn_enter(SDL_EVDEV_keyboard_state *kbd);
 static void fn_caps_toggle(SDL_EVDEV_keyboard_state *kbd);
 static void fn_caps_on(SDL_EVDEV_keyboard_state *kbd);
 static void fn_num(SDL_EVDEV_keyboard_state *kbd);
 static void fn_compose(SDL_EVDEV_keyboard_state *kbd);
 
-static fn_handler_fn *fn_handler[] =
-{
-    NULL,       fn_enter,   NULL,       NULL,
-    NULL,       NULL,       NULL,       fn_caps_toggle,
-    fn_num,     NULL,       NULL,       NULL,
-    NULL,       fn_caps_on, fn_compose, NULL,
-    NULL,       NULL,       NULL,       fn_num
+static fn_handler_fn *fn_handler[] = {
+    NULL, fn_enter, NULL, NULL,
+    NULL, NULL, NULL, fn_caps_toggle,
+    fn_num, NULL, NULL, NULL,
+    NULL, fn_caps_on, fn_compose, NULL,
+    NULL, NULL, NULL, fn_num
 };
 
-
 /*
  * Keyboard State
  */
@@ -89,12 +87,12 @@ struct SDL_EVDEV_keyboard_state
     int console_fd;
     int old_kbd_mode;
     unsigned short **key_maps;
-    unsigned char shift_down[NR_SHIFT];        /* shift state counters.. */
+    unsigned char shift_down[NR_SHIFT]; /* shift state counters.. */
     SDL_bool dead_key_next;
-    int npadch;                    /* -1 or number assembled on pad */
+    int npadch; /* -1 or number assembled on pad */
     struct kbdiacrs *accents;
     unsigned int diacr;
-    SDL_bool rep;                    /* flag telling character repeat */
+    SDL_bool rep; /* flag telling character repeat */
     unsigned char lockstate;
     unsigned char slockstate;
     unsigned char ledflagstate;
@@ -114,7 +112,7 @@ static void SDL_EVDEV_dump_accents(SDL_EVDEV_keyboard_state 
*kbd)
     for (i = 0; i < kbd->accents->kb_cnt; ++i) {
         struct kbdiacr *diacr = &kbd->accents->kbdiacr[i];
         printf("        { 0x%.2x, 0x%.2x, 0x%.2x },\n",
-            diacr->diacr, diacr->base, diacr->result);
+               diacr->diacr, diacr->base, diacr->result);
     }
     while (i < 256) {
         printf("        { 0x00, 0x00, 0x00 },\n");
@@ -134,7 +132,7 @@ static void SDL_EVDEV_dump_keymap(SDL_EVDEV_keyboard_state 
*kbd)
         if (kbd->key_maps[i]) {
             printf("static unsigned short default_key_map_%d[NR_KEYS] = {", i);
             for (j = 0; j < NR_KEYS; ++j) {
-                if ((j%8) == 0) {
+                if ((j % 8) == 0) {
                     printf("\n    ");
                 }
                 printf("0x%.4x, ", kbd->key_maps[i][j]);
@@ -194,23 +192,22 @@ static int 
SDL_EVDEV_kbd_load_keymaps(SDL_EVDEV_keyboard_state *kbd)
     return 0;
 }
 
-static SDL_EVDEV_keyboard_state * kbd_cleanup_state = NULL;
+static SDL_EVDEV_keyboard_state *kbd_cleanup_state = NULL;
 static int kbd_cleanup_sigactions_installed = 0;
 static int kbd_cleanup_atexit_installed = 0;
 
 static struct sigaction old_sigaction[NSIG];
 
-static int fatal_signals[] =
-{
+static int fatal_signals[] = {
     /* Handlers for SIGTERM and SIGINT are installed in SDL_QuitInit. */
-    SIGHUP,  SIGQUIT, SIGILL,  SIGABRT,
-    SIGFPE,  SIGSEGV, SIGPIPE, SIGBUS,
+    SIGHUP, SIGQUIT, SIGILL, SIGABRT,
+    SIGFPE, SIGSEGV, SIGPIPE, SIGBUS,
     SIGSYS
 };
 
 static void kbd_cleanup(void)
 {
-    SDL_EVDEV_keyboard_state* kbd = kbd_cleanup_state;
+    SDL_EVDEV_keyboard_state *kbd = kbd_cleanup_state;
     if (kbd == NULL) {
         return;
     }
@@ -219,18 +216,17 @@ static void kbd_cleanup(void)
     ioctl(kbd->console_fd, KDSKBMODE, kbd->old_kbd_mode);
 }
 
-static void
-SDL_EVDEV_kbd_reraise_signal(int sig)
+static void SDL_EVDEV_kbd_reraise_signal(int sig)
 {
     raise(sig);
 }
 
-siginfo_t* SDL_EVDEV_kdb_cleanup_siginfo = NULL;
-void*      SDL_EVDEV_kdb_cleanup_ucontext = NULL;
+siginfo_t *SDL_EVDEV_kdb_cleanup_siginfo = NULL;
+void *SDL_EVDEV_kdb_cleanup_ucontext = NULL;
 
-static void kbd_cleanup_signal_action(int signum, siginfo_t* info, void* 
ucontext)
+static void kbd_cleanup_signal_action(int signum, siginfo_t *info, void 
*ucontext)
 {
-    struct sigaction* old_action_p = &(old_sigaction[signum]);
+    struct sigaction *old_action_p = &(old_sigaction[signum]);
     sigset_t sigset;
 
     /* Restore original signal handler before going any further. */
@@ -264,7 +260,7 @@ static void kbd_unregister_emerg_cleanup()
     kbd_cleanup_sigactions_installed = 0;
 
     for (tabidx = 0; tabidx < sizeof(fatal_signals) / 
sizeof(fatal_signals[0]); ++tabidx) {
-        struct sigaction* old_action_p;
+        struct sigaction *old_action_p;
         struct sigaction cur_action;
         signum = fatal_signals[tabidx];
         old_action_p = &(old_sigaction[signum]);
@@ -293,7 +289,7 @@ static void kbd_cleanup_atexit(void)
     kbd_unregister_emerg_cleanup();
 }
 
-static void kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state * kbd)
+static void kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state *kbd)
 {
     int tabidx, signum;
 
@@ -317,9 +313,9 @@ static void 
kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state * kbd)
     kbd_cleanup_sigactions_installed = 1;
 
     for (tabidx = 0; tabidx < sizeof(fatal_signals) / 
sizeof(fatal_signals[0]); ++tabidx) {
-        struct sigaction* old_action_p;
+        struct sigaction *old_action_p;
         struct sigaction new_action;
-        signum = fatal_signals[tabidx];   
+        signum = fatal_signals[tabidx];
         old_action_p = &(old_sigaction[signum]);
         if (sigaction(signum, NULL, old_action_p)) {
             continue;
@@ -328,7 +324,7 @@ static void 
kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state * kbd)
         /* Skip SIGHUP and SIGPIPE if handler is already installed
          * - assume the handler will do the cleanup
          */
-        if ((signum == SIGHUP || signum == SIGPIPE) && 
(old_action_p->sa_handler != SIG_DFL || 
(void(*)(int))old_action_p->sa_sigaction != SIG_DFL)) {
+        if ((signum == SIGHUP || signum == SIGPIPE) && 
(old_action_p->sa_handler != SIG_DFL || (void 
(*)(int))old_action_p->sa_sigaction != SIG_DFL)) {
             continue;
         }
 
@@ -345,7 +341,7 @@ SDL_EVDEV_kbd_init(void)
     SDL_EVDEV_keyboard_state *kbd;
     int i;
     char flag_state;
-    char shift_state[ sizeof (long) ] = {TIOCL_GETSHIFTSTATE, 0};
+    char shift_state[sizeof(long)] = { TIOCL_GETSHIFTSTATE, 0 };
 
     kbd = (SDL_EVDEV_keyboard_state *)SDL_calloc(1, sizeof(*kbd));
     if (kbd == NULL) {
@@ -411,8 +407,7 @@ SDL_EVDEV_kbd_init(void)
     return kbd;
 }
 
-void
-SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
+void SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
 {
     if (kbd == NULL) {
         return;
@@ -447,7 +442,7 @@ SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
 static void put_queue(SDL_EVDEV_keyboard_state *kbd, uint c)
 {
     /* c is already part of a UTF-8 sequence and safe to add as a character */
-    if (kbd->text_len < (sizeof(kbd->text)-1)) {
+    if (kbd->text_len < (sizeof(kbd->text) - 1)) {
         kbd->text[kbd->text_len++] = (char)c;
     }
 }
@@ -615,7 +610,7 @@ static void k_self(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_f
 {
     if (up_flag) {
         return; /* no action, if this is a key release */
-    } 
+    }
 
     if (kbd->diacr) {
         value = handle_diacr(kbd, value);
@@ -639,7 +634,7 @@ static void k_deadunicode(SDL_EVDEV_keyboard_state *kbd, 
unsigned int value, cha
 
 static void k_dead(SDL_EVDEV_keyboard_state *kbd, unsigned char value, char 
up_flag)
 {
-    const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' };
+    const unsigned char ret_diacr[NR_DEAD] = { '`', '\'', '^', '~', '"', ',' };
 
     k_deadunicode(kbd, ret_diacr[value], up_flag);
 }
@@ -666,7 +661,7 @@ static void k_pad(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_fl
     static const char pad_chars[] = "0123456789+-*/\015,.?()#";
 
     if (up_flag)
-        return;        /* no action, if this is a key release */
+        return; /* no action, if this is a key release */
 
     if (!vc_kbd_led(kbd, K_NUMLOCK)) {
         /* unprintable action */
@@ -768,8 +763,7 @@ static void k_brl(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_fl
 {
 }
 
-void
-SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int 
down)
+void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int 
keycode, int down)
 {
     unsigned char shift_final;
     unsigned char type;
@@ -841,13 +835,11 @@ SDL_EVDEV_kbd_init(void)
     return NULL;
 }
 
-void
-SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *state, unsigned int keycode, 
int down)
+void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *state, unsigned int 
keycode, int down)
 {
 }
 
-void
-SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *state)
+void SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *state)
 {
 }
 
-- 
2.39.2


++++++ 0003-Clang-Tidy-fixes-6725.patch ++++++
>From d0bbfdbfb881e5407911d84c12899bd5b442a130 Mon Sep 17 00:00:00 2001
From: Pierre Wendling <50808272+ftzpetru...@users.noreply.github.com>
Date: Thu, 1 Dec 2022 16:07:03 -0500
Subject: [PATCH 3/5] Clang-Tidy fixes (#6725)

(cherry picked from commit 3c501b963dd8f0605a6ce7978882df39ba76f9cd)
---
 src/core/linux/SDL_evdev_kbd.c | 98 ++++++++++++++++++----------------
 1 file changed, 53 insertions(+), 45 deletions(-)

diff --git a/src/core/linux/SDL_evdev_kbd.c b/src/core/linux/SDL_evdev_kbd.c
index 42b634a92..1f54c67db 100644
--- a/src/core/linux/SDL_evdev_kbd.c
+++ b/src/core/linux/SDL_evdev_kbd.c
@@ -218,7 +218,7 @@ static void kbd_cleanup(void)
 
 static void SDL_EVDEV_kbd_reraise_signal(int sig)
 {
-    raise(sig);
+    (void)raise(sig);
 }
 
 siginfo_t *SDL_EVDEV_kdb_cleanup_siginfo = NULL;
@@ -303,7 +303,7 @@ static void 
kbd_register_emerg_cleanup(SDL_EVDEV_keyboard_state *kbd)
          * functions that are called when the shared library is unloaded.
          * -- man atexit(3)
          */
-        atexit(kbd_cleanup_atexit);
+        (void)atexit(kbd_cleanup_atexit);
         kbd_cleanup_atexit_installed = 1;
     }
 
@@ -407,33 +407,33 @@ SDL_EVDEV_kbd_init(void)
     return kbd;
 }
 
-void SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
+void SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *state)
 {
-    if (kbd == NULL) {
+    if (state == NULL) {
         return;
     }
 
     kbd_unregister_emerg_cleanup();
 
-    if (kbd->console_fd >= 0) {
+    if (state->console_fd >= 0) {
         /* Restore the original keyboard mode */
-        ioctl(kbd->console_fd, KDSKBMODE, kbd->old_kbd_mode);
+        ioctl(state->console_fd, KDSKBMODE, state->old_kbd_mode);
 
-        close(kbd->console_fd);
-        kbd->console_fd = -1;
+        close(state->console_fd);
+        state->console_fd = -1;
     }
 
-    if (kbd->key_maps && kbd->key_maps != default_key_maps) {
+    if (state->key_maps && state->key_maps != default_key_maps) {
         int i;
         for (i = 0; i < MAX_NR_KEYMAPS; ++i) {
-            if (kbd->key_maps[i]) {
-                SDL_free(kbd->key_maps[i]);
+            if (state->key_maps[i]) {
+                SDL_free(state->key_maps[i]);
             }
         }
-        SDL_free(kbd->key_maps);
+        SDL_free(state->key_maps);
     }
 
-    SDL_free(kbd);
+    SDL_free(state);
 }
 
 /*
@@ -449,10 +449,9 @@ static void put_queue(SDL_EVDEV_keyboard_state *kbd, uint 
c)
 
 static void put_utf8(SDL_EVDEV_keyboard_state *kbd, uint c)
 {
-    if (c < 0x80)
-        /*  0******* */
-        put_queue(kbd, c);
-    else if (c < 0x800) {
+    if (c < 0x80) {
+        put_queue(kbd, c); /*  0******* */
+    } else if (c < 0x800) {
         /* 110***** 10****** */
         put_queue(kbd, 0xc0 | (c >> 6));
         put_queue(kbd, 0x80 | (c & 0x3f));
@@ -626,8 +625,9 @@ static void k_self(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_f
 
 static void k_deadunicode(SDL_EVDEV_keyboard_state *kbd, unsigned int value, 
char up_flag)
 {
-    if (up_flag)
+    if (up_flag) {
         return;
+    }
 
     kbd->diacr = (kbd->diacr ? handle_diacr(kbd, value) : value);
 }
@@ -660,8 +660,9 @@ static void k_pad(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_fl
 {
     static const char pad_chars[] = "0123456789+-*/\015,.?()#";
 
-    if (up_flag)
+    if (up_flag) {
         return; /* no action, if this is a key release */
+    }
 
     if (!vc_kbd_led(kbd, K_NUMLOCK)) {
         /* unprintable action */
@@ -675,8 +676,9 @@ static void k_shift(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_
 {
     int old_state = kbd->shift_state;
 
-    if (kbd->rep)
+    if (kbd->rep) {
         return;
+    }
     /*
      * Mimic typewriter:
      * a CapsShift key acts like Shift but undoes CapsLock
@@ -696,13 +698,15 @@ static void k_shift(SDL_EVDEV_keyboard_state *kbd, 
unsigned char value, char up_
         if (kbd->shift_down[value]) {
             kbd->shift_down[value]--;
         }
-    } else
+    } else {
         kbd->shift_down[value]++;
+    }
 
-    if (kbd->shift_down[value])
+    if (kbd->shift_down[value]) {
         kbd->shift_state |= (1 << value);
-    else
+    } else {
         kbd->shift_state &= ~(1 << value);
+    }
 
     /* kludge */
     if (up_flag && kbd->shift_state != old_state && kbd->npadch != -1) {
@@ -719,8 +723,9 @@ static void k_ascii(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_
 {
     int base;
 
-    if (up_flag)
+    if (up_flag) {
         return;
+    }
 
     if (value < 10) {
         /* decimal input of code, while Alt depressed */
@@ -731,16 +736,18 @@ static void k_ascii(SDL_EVDEV_keyboard_state *kbd, 
unsigned char value, char up_
         base = 16;
     }
 
-    if (kbd->npadch == -1)
+    if (kbd->npadch == -1) {
         kbd->npadch = value;
-    else
+    } else {
         kbd->npadch = kbd->npadch * base + value;
+    }
 }
 
 static void k_lock(SDL_EVDEV_keyboard_state *kbd, unsigned char value, char 
up_flag)
 {
-    if (up_flag || kbd->rep)
+    if (up_flag || kbd->rep) {
         return;
+    }
 
     chg_vc_kbd_lock(kbd, value);
 }
@@ -748,8 +755,9 @@ static void k_lock(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_f
 static void k_slock(SDL_EVDEV_keyboard_state *kbd, unsigned char value, char 
up_flag)
 {
     k_shift(kbd, value, up_flag);
-    if (up_flag || kbd->rep)
+    if (up_flag || kbd->rep) {
         return;
+    }
 
     chg_vc_kbd_slock(kbd, value);
     /* try to make Alt, oops, AltGr and such work */
@@ -763,26 +771,26 @@ static void k_brl(SDL_EVDEV_keyboard_state *kbd, unsigned 
char value, char up_fl
 {
 }
 
-void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int 
keycode, int down)
+void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *state, unsigned int 
keycode, int down)
 {
     unsigned char shift_final;
     unsigned char type;
     unsigned short *key_map;
     unsigned short keysym;
 
-    if (kbd == NULL) {
+    if (state == NULL) {
         return;
     }
 
-    kbd->rep = (down == 2);
+    state->rep = (down == 2);
 
-    shift_final = (kbd->shift_state | kbd->slockstate) ^ kbd->lockstate;
-    key_map = kbd->key_maps[shift_final];
+    shift_final = (state->shift_state | state->slockstate) ^ state->lockstate;
+    key_map = state->key_maps[shift_final];
     if (key_map == NULL) {
         /* Unsupported shift state (e.g. ctrl = 4, alt = 8), just reset to the 
default state */
-        kbd->shift_state = 0;
-        kbd->slockstate = 0;
-        kbd->lockstate = 0;
+        state->shift_state = 0;
+        state->slockstate = 0;
+        state->lockstate = 0;
         return;
     }
 
@@ -796,7 +804,7 @@ void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, 
unsigned int keycode,
 
     if (type < 0xf0) {
         if (down) {
-            put_utf8(kbd, keysym);
+            put_utf8(state, keysym);
         }
     } else {
         type -= 0xf0;
@@ -805,25 +813,25 @@ void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, 
unsigned int keycode,
         if (type == KT_LETTER) {
             type = KT_LATIN;
 
-            if (vc_kbd_led(kbd, K_CAPSLOCK)) {
-                key_map = kbd->key_maps[shift_final ^ (1 << KG_SHIFT)];
+            if (vc_kbd_led(state, K_CAPSLOCK)) {
+                key_map = state->key_maps[shift_final ^ (1 << KG_SHIFT)];
                 if (key_map) {
                     keysym = key_map[keycode];
                 }
             }
         }
 
-        (*k_handler[type])(kbd, keysym & 0xff, !down);
+        (*k_handler[type])(state, keysym & 0xff, !down);
 
         if (type != KT_SLOCK) {
-            kbd->slockstate = 0;
+            state->slockstate = 0;
         }
     }
 
-    if (kbd->text_len > 0) {
-        kbd->text[kbd->text_len] = '\0';
-        SDL_SendKeyboardText(kbd->text);
-        kbd->text_len = 0;
+    if (state->text_len > 0) {
+        state->text[state->text_len] = '\0';
+        SDL_SendKeyboardText(state->text);
+        state->text_len = 0;
     }
 }
 
-- 
2.39.2


++++++ 0004-evdev_kbd-Use-current-keymap.patch ++++++
>From 96a2a6b94515c5a0c920d5ffd64bf83acb74d7a8 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msucha...@suse.de>
Date: Fri, 3 Mar 2023 19:44:11 +0100
Subject: [PATCH] evdev_kbd: Use current keymap

keymap can change over time, caching the keymap causes wrong keys
returned when user changes keymap during runtime

Signed-off-by: Michal Suchanek <msucha...@suse.de>
---
 src/core/linux/SDL_evdev_kbd.c | 126 ++++++++++++---------------------
 1 file changed, 47 insertions(+), 79 deletions(-)

diff --git a/src/core/linux/SDL_evdev_kbd.c b/src/core/linux/SDL_evdev_kbd.c
index f7ccca7ef..6535fdfc8 100644
--- a/src/core/linux/SDL_evdev_kbd.c
+++ b/src/core/linux/SDL_evdev_kbd.c
@@ -153,45 +153,6 @@ static void SDL_EVDEV_dump_keymap(SDL_EVDEV_keyboard_state 
*kbd)
 }
 #endif /* DUMP_KEYMAP */
 
-static int SDL_EVDEV_kbd_load_keymaps(SDL_EVDEV_keyboard_state *kbd)
-{
-    int i, j;
-
-    kbd->key_maps = (unsigned short **)SDL_calloc(MAX_NR_KEYMAPS, 
sizeof(unsigned short *));
-    if (!kbd->key_maps) {
-        return -1;
-    }
-
-    for (i = 0; i < MAX_NR_KEYMAPS; ++i) {
-        struct kbentry kbe;
-
-        kbe.kb_table = i;
-        kbe.kb_index = 0;
-        if (ioctl(kbd->console_fd, KDGKBENT, &kbe) < 0) {
-            return -1;
-        }
-
-        if (kbe.kb_value == K_NOSUCHMAP) {
-            continue;
-        }
-
-        kbd->key_maps[i] = (unsigned short *)SDL_malloc(NR_KEYS * 
sizeof(unsigned short));
-        if (!kbd->key_maps[i]) {
-            return -1;
-        }
-
-        for (j = 0; j < NR_KEYS; ++j) {
-            kbe.kb_table = i;
-            kbe.kb_index = j;
-            if (ioctl(kbd->console_fd, KDGKBENT, &kbe) < 0) {
-                return -1;
-            }
-            kbd->key_maps[i][j] = (kbe.kb_value ^ 0xf000);
-        }
-    }
-    return 0;
-}
-
 static SDL_EVDEV_keyboard_state *kbd_cleanup_state = NULL;
 static int kbd_cleanup_sigactions_installed = 0;
 static int kbd_cleanup_atexit_installed = 0;
@@ -339,8 +300,8 @@ SDL_EVDEV_keyboard_state *
 SDL_EVDEV_kbd_init(void)
 {
     SDL_EVDEV_keyboard_state *kbd;
-    int i;
     char flag_state;
+    char kbtype;
     char shift_state[sizeof(long)] = { TIOCL_GETSHIFTSTATE, 0 };
 
     kbd = (SDL_EVDEV_keyboard_state *)SDL_calloc(1, sizeof(*kbd));
@@ -348,10 +309,14 @@ SDL_EVDEV_kbd_init(void)
         return NULL;
     }
 
-    kbd->npadch = -1;
-
     /* This might fail if we're not connected to a tty (e.g. on the Steam 
Link) */
     kbd->console_fd = open("/dev/tty", O_RDONLY | O_CLOEXEC);
+    if (!((ioctl(kbd->console_fd, KDGKBTYPE, &kbtype) == 0) && ((kbtype == 
KB_101) || (kbtype == KB_84)))) {
+        close(kbd->console_fd);
+        kbd->console_fd = -1;
+    }
+
+    kbd->npadch = -1;
 
     if (ioctl(kbd->console_fd, TIOCLINUX, shift_state) == 0) {
         kbd->shift_state = *shift_state;
@@ -362,48 +327,27 @@ SDL_EVDEV_kbd_init(void)
     }
 
     kbd->accents = &default_accents;
-    if (ioctl(kbd->console_fd, KDGKBDIACR, kbd->accents) < 0) {
-        /* No worries, we'll use the default accent table */
-    }
-
     kbd->key_maps = default_key_maps;
+
     if (ioctl(kbd->console_fd, KDGKBMODE, &kbd->old_kbd_mode) == 0) {
         /* Set the keyboard in UNICODE mode and load the keymaps */
         ioctl(kbd->console_fd, KDSKBMODE, K_UNICODE);
+    }
 
-        if (SDL_EVDEV_kbd_load_keymaps(kbd) < 0) {
-            for (i = 0; i < MAX_NR_KEYMAPS; ++i) {
-                if (kbd->key_maps[i]) {
-                    SDL_free(kbd->key_maps[i]);
-                }
-            }
-            SDL_free(kbd->key_maps);
-
-            kbd->key_maps = default_key_maps;
-        }
+    /* Allow inhibiting keyboard mute with env. variable for debugging etc. */
+    if (SDL_getenv("SDL_INPUT_LINUX_KEEP_KBD") == NULL) {
+        /* Mute the keyboard so keystrokes only generate evdev events
+         * and do not leak through to the console
+         */
+        ioctl(kbd->console_fd, KDSKBMODE, K_OFF);
 
-        /* Allow inhibiting keyboard mute with env. variable for debugging 
etc. */
-        if (SDL_getenv("SDL_INPUT_LINUX_KEEP_KBD") == NULL) {
-            /* Mute the keyboard so keystrokes only generate evdev events
-             * and do not leak through to the console
-             */
-            ioctl(kbd->console_fd, KDSKBMODE, K_OFF);
-
-            /* Make sure to restore keyboard if application fails to call
-             * SDL_Quit before exit or fatal signal is raised.
-             */
-            if (!SDL_GetHintBoolean(SDL_HINT_NO_SIGNAL_HANDLERS, SDL_FALSE)) {
-                kbd_register_emerg_cleanup(kbd);
-            }
+        /* Make sure to restore keyboard if application fails to call
+         * SDL_Quit before exit or fatal signal is raised.
+         */
+        if (!SDL_GetHintBoolean(SDL_HINT_NO_SIGNAL_HANDLERS, SDL_FALSE)) {
+            kbd_register_emerg_cleanup(kbd);
         }
     }
-
-#ifdef DUMP_ACCENTS
-    SDL_EVDEV_dump_accents(kbd);
-#endif
-#ifdef DUMP_KEYMAP
-    SDL_EVDEV_dump_keymap(kbd);
-#endif
     return kbd;
 }
 
@@ -489,6 +433,11 @@ static unsigned int handle_diacr(SDL_EVDEV_keyboard_state 
*kbd, unsigned int ch)
 
     kbd->diacr = 0;
 
+    if (kbd->console_fd >= 0)
+        if (ioctl(kbd->console_fd, KDGKBDIACR, kbd->accents) < 0) {
+            /* No worries, we'll use the default accent table */
+        }
+
     for (i = 0; i < kbd->accents->kb_cnt; i++) {
         if (kbd->accents->kbdiacr[i].diacr == d &&
             kbd->accents->kbdiacr[i].base == ch) {
@@ -795,7 +744,17 @@ void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state 
*state, unsigned int keycode
     }
 
     if (keycode < NR_KEYS) {
-        keysym = key_map[keycode];
+        if (state->console_fd < 0) {
+            keysym = key_map[keycode];
+        } else {
+            struct kbentry kbe;
+            kbe.kb_table = shift_final;
+            kbe.kb_index = keycode;
+            if (ioctl(state->console_fd, KDGKBENT, &kbe) == 0)
+                keysym = (kbe.kb_value ^ 0xf000);
+            else
+                return;
+        }
     } else {
         return;
     }
@@ -814,9 +773,18 @@ void SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state 
*state, unsigned int keycode
             type = KT_LATIN;
 
             if (vc_kbd_led(state, K_CAPSLOCK)) {
-                key_map = state->key_maps[shift_final ^ (1 << KG_SHIFT)];
+                shift_final = shift_final ^ (1 << KG_SHIFT);
+                key_map = state->key_maps[shift_final];
                 if (key_map) {
-                    keysym = key_map[keycode];
+                    if (state->console_fd < 0) {
+                        keysym = key_map[keycode];
+                    } else {
+                        struct kbentry kbe;
+                        kbe.kb_table = shift_final;
+                        kbe.kb_index = keycode;
+                        if (ioctl(state->console_fd, KDGKBENT, &kbe) == 0)
+                            keysym = (kbe.kb_value ^ 0xf000);
+                    }
                 }
             }
         }
-- 
2.39.2

Reply via email to