xorgproto: Branch 'master' - 3 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Feb 5 04:10:49 UTC 2024


 include/X11/keysymdef.h |   35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

New commits:
commit fe12c5102762afcbf852e50dcbbdea2ef625570c
Author: Pierre Le Marre <dev at wismill.eu>
Date:   Sat Feb 3 17:35:00 2024 +0100

    keysyms: Add regex for keysyms with Unicode annotation in angle brackets

diff --git a/include/X11/keysymdef.h b/include/X11/keysymdef.h
index 3360a36..6bdd920 100644
--- a/include/X11/keysymdef.h
+++ b/include/X11/keysymdef.h
@@ -103,6 +103,7 @@ SOFTWARE.
  * that match one of these Perl regular expressions:
  *
  *    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U\+([0-9A-F]{4,6}) (.*) \*\/\s*$/
+ *    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*<U\+([0-9A-F]{4,6}) (.*)>\*\/\s*$/
  *    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U\+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
  *    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
  *
commit fbd19fa7e5f9e10b64c93380e0d2ed09a6a3693a
Author: Pierre Le Marre <dev at wismill.eu>
Date:   Sat Feb 3 18:09:01 2024 +0100

    keysyms: Add warning about removals & canonical names changes

diff --git a/include/X11/keysymdef.h b/include/X11/keysymdef.h
index 29647fe..3360a36 100644
--- a/include/X11/keysymdef.h
+++ b/include/X11/keysymdef.h
@@ -126,6 +126,24 @@ SOFTWARE.
  *   - the protocol specification in specs/keysyms.xml in this repo
  *     https://gitlab.freedesktop.org/xorg/proto/xorgproto
  *
+ * Before removing or changing the order of the keysyms, please consider
+ * the following: it is very difficult to know what keysyms are used and
+ * how.
+ *
+ *   - A sandboxed application may have incompatibilities with the host
+ *     system. For example, if new keysym name is introduced and is made
+ *     the canonical name, then an application with an older keysym parser
+ *     will not be able to parse the new name.
+ *   - Customization of keyboard layout and Compose files are two popular
+ *     use cases. Checking the standard keyboard layout database xkeyboard-config
+ *     https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config
+ *     and the standard Compose files in libx11
+ *     https://gitlab.freedesktop.org/xorg/lib/libx11 is a mandatory
+ *     step, but may *not* be enough for a proper impact assessment for
+ *     e.g. keysyms removals.
+ *
+ * Therefore, it is advised to proceed to no removal and to make a new
+ * name canonical only 10 years after its introduction.
  */
 
 #define XK_VoidSymbol                  0xffffff  /* Void symbol */
commit e9a98ce6a754e46ba9bbb6e02fbfb5b7117c09d3
Author: Pierre Le Marre <dev at wismill.eu>
Date:   Sat Feb 3 16:51:48 2024 +0100

    keysyms: Revert removals and postpone effective deprecation
    
    Recent removals & deprecations of keysyms have caused quite a lot of
    trouble:
    - Removed keysyms *were* used in the wild, especially the dead keys:
      e.g. in Neo-like and Bépo-like layouts.
      While checking for keysyms use in xkeyboard-config database is a
      mandatory first step, it is not enough.
    - Removed keysyms broke Qt build.
    - Deprecated names are now replaced by their new non-deprecated version.
      It is problematic in the case that a sandbox application (e.g. with
      flatpak) uses X11 or xkbcommon libraries older than the system’s one:
      they are not able to parse the new names.
    
    For the sake of the stability, this commit restore all previous keysyms
    and introduces the new names as alternative. While the comments mark
    some names as “deprecated”, they will remain the canonical names (i.e.
    they are *output* by `xkbcomp` and `xkbcommon`) for the next 10 years.
    
    Details of the modified commits:
    - "keysymdef.h: add better names for the dead schwa and SCHWA symbols"
      (commit e5cccecd814dd2005b3c5e9d22e426ff985ef387)
    - "keysymdef.h: delete four symbolic names that serve no purpose"
      (commit cb44799b72f611eb4c9d7cc185bc3b09e070be08)
    - "keysymdef.h: name the masculine ordinal indicator similar to feminine one"
      (commit 3ddfc9803676dd3b3ed909f8d9fbe1a699a5ce35)
    - "keysymdef.h: add correctly spelled names for the left and right guillemet"
      (commit 8cfcc91a3f86cbea5ba676715412880ff6a61b21)

diff --git a/include/X11/keysymdef.h b/include/X11/keysymdef.h
index eef28fc..29647fe 100644
--- a/include/X11/keysymdef.h
+++ b/include/X11/keysymdef.h
@@ -430,6 +430,12 @@ SOFTWARE.
 #define XK_dead_belowcomma               0xfe6e
 #define XK_dead_currency                 0xfe6f
 
+/* extra dead elements for German T3 layout */
+#define XK_dead_lowline                  0xfe90
+#define XK_dead_aboveverticalline        0xfe91
+#define XK_dead_belowverticalline        0xfe92
+#define XK_dead_longsolidusoverlay       0xfe93
+
 /* dead vowels for universal syllable entry */
 #define XK_dead_a                        0xfe80
 #define XK_dead_A                        0xfe81
@@ -441,10 +447,10 @@ SOFTWARE.
 #define XK_dead_O                        0xfe87
 #define XK_dead_u                        0xfe88
 #define XK_dead_U                        0xfe89
+#define XK_dead_small_schwa              0xfe8a  /* deprecated, use dead_schwa instead */
+#define XK_dead_capital_schwa            0xfe8b  /* deprecated, use dead_SCHWA instead */
 #define XK_dead_schwa                    0xfe8a
 #define XK_dead_SCHWA                    0xfe8b
-#define XK_dead_small_schwa              0xfe8a  /* deprecated, remove in 2025 */
-#define XK_dead_capital_schwa            0xfe8b  /* deprecated, remove in 2025 */
 
 #define XK_dead_greek                    0xfe8c
 #define XK_dead_hamza                    0xfe8d
@@ -663,8 +669,8 @@ SOFTWARE.
 #define XK_diaeresis                     0x00a8  /* U+00A8 DIAERESIS */
 #define XK_copyright                     0x00a9  /* U+00A9 COPYRIGHT SIGN */
 #define XK_ordfeminine                   0x00aa  /* U+00AA FEMININE ORDINAL INDICATOR */
+#define XK_guillemotleft                 0x00ab  /* deprecated misspelling. Use guillemetleft instead. */
 #define XK_guillemetleft                 0x00ab  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
-#define XK_guillemotleft                 0x00ab  /* deprecated misspelling */
 #define XK_notsign                       0x00ac  /* U+00AC NOT SIGN */
 #define XK_hyphen                        0x00ad  /* U+00AD SOFT HYPHEN */
 #define XK_registered                    0x00ae  /* U+00AE REGISTERED SIGN */
@@ -679,10 +685,10 @@ SOFTWARE.
 #define XK_periodcentered                0x00b7  /* U+00B7 MIDDLE DOT */
 #define XK_cedilla                       0x00b8  /* U+00B8 CEDILLA */
 #define XK_onesuperior                   0x00b9  /* U+00B9 SUPERSCRIPT ONE */
+#define XK_masculine                     0x00ba  /* deprecated inconsistent name (see ordfeminine), use ordmasculine instead */
 #define XK_ordmasculine                  0x00ba  /* U+00BA MASCULINE ORDINAL INDICATOR */
-#define XK_masculine                     0x00ba  /* deprecated inconsistent name */
+#define XK_guillemotright                0x00bb  /* deprecated misspelling. Use guillemotright instead. */
 #define XK_guillemetright                0x00bb  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
-#define XK_guillemotright                0x00bb  /* deprecated misspelling */
 #define XK_onequarter                    0x00bc  /* U+00BC VULGAR FRACTION ONE QUARTER */
 #define XK_onehalf                       0x00bd  /* U+00BD VULGAR FRACTION ONE HALF */
 #define XK_threequarters                 0x00be  /* U+00BE VULGAR FRACTION THREE QUARTERS */


More information about the xorg-commit mailing list