summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* nls: make the Amharic compose sequences use the dead-vowel symbolsHEADmasterBenno Schulenberg2023-04-161-274/+274
| | | | | | | | | | | | | | | | | | | Last year, commit 488b156fe2 changed mistaken ASCII characters to the code points that were actually used in the Ethiopian keyboard layout. But those code points were mistaken too: the intention was not to use the code point U+FE68 in the layout but the raw symbol code 0xfe68 -- and so on for the other codes. The symbols that these raw codes were intended to refer to were `dead_a` and friends. But these dead vowels were added under different codes: 0xfe80 to 0xfe8b. So, correct the Amharic compose sequences to make use of the dead-vowel symbols that were specifically added for them fifteen years ago. (As soon as this is merged, xkeyboard-config wil be changed too to use the dead vowels in the Ethiopian layout.) Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: add compose sequence for capital schwa, and delete a deviant onejmcwilliams4032023-04-062-4/+1
| | | | | | | | | | | | | This sequence has already been defined in the iso8859-9e compose file meant for the Azerbaijani locale, yet for the longest time, only the lowercase form has existed in the en_US.UTF-8 master compose file. This patch adds one sequence for Latin Capital Letter Schwa for the Azerbaijani language. Additionally, the sequence in the pt_BR.UTF-8 locale for capital schwa has been removed as it uses two lowercase e's as part of its sequence, which in practice would make typing both `Multi_key e e` and `Multi_key E E` output capital schwa.
* XSetScreenSaver.man: restore the part that was accidentally snippedBenno Schulenberg2023-04-041-0/+78
| | | | | | | | | | | | Four years ago, while removing private macros, commit fe46eb2871 unintentionally truncated the XSetScreenSaver manpage. Restore the snipped part (minus trailing spaces and a mistaken singular). This fixes issue #187. Reported-by: Sergio Gelato Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* NLS: Remove strange dead_cedilla cedi sign sequencesjmcwilliams4032023-03-291-7/+4
| | | | | | | | | | | | | | | These sequences appear to be a leftover artifact of auto-generating dead_currency sequences for cent and the cedi sign, where chaining with ascii "c" vs "ccedilla" would output cent vs the cedi sign respectively, but somehow this ended up creating strange sequences with dead_cedilla followed by cent or the colon sign to output the cedi sign, the latter sequence of which was already removed recently. Additionally, sequences beginninng with dead_cedilla followed by currency have been removed as they also appear to be related to these artifacts. The two remaining sequences beginning with dead_currency followed by dead_cedilla are maintained and moved to the stretch of dead_currency sequences next to ccedilla, and sorted in order of unicode decompositional complexity.
* nls: remove twenty two untypable Greek compose sequencesBenno Schulenberg2023-03-241-22/+0
| | | | | | | | | | | | None of the keyboard layouts in xkeyboard-config contains accented Greek characters like `Greek_alphaaccent` or `Greek_iotadieresis` (nor in their Unicode hexadecimal forms, like U03AC or 0x10003CA), so none of these sequences could be typed on an existing layout. Also, the two sequences that started with `Greek_accentdieresis` were plain wrong: making a spacing character into a dead key. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: remove four hundred and sixty untypable Greek compose sequencesBenno Schulenberg2023-03-241-463/+0
| | | | | | | | | | | | | | | | | | | None of the keyboard layouts in xkeyboard-config contains code points in the range U+1F00..U+1FFF (the Greek Extended block), so none of the removed sequences could be typed on an existing layout. (Of course it is possible that some people have their own private layout that contains some of the Greek Extended characters, but if they do, then they can also define private compose sequences, when needed.) Modern Greek does not use these characters with polytonic diacritics anyway -- they are useful only for typing traditional Greek. The useless sequences were removed with this command: sed -i '/<U1F..>/d' nls/en_US.UTF-8/Compose.pre Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: delete compose sequences that pointlessly mix upper and lower caseBenno Schulenberg2023-03-211-10/+0
| | | | | | | | It's nice to have compose sequences for things like © and ®, but allowing them to be composed also with letters of different case is unneeded. It is good enough to have sequences of only lowercase and only uppercase. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* NLS: move dead-caron subscript compositions to the relevant Unicode blockjmcwilliams4032023-03-191-15/+15
|
* NLS: implement the expansion of the six Breton N-graph keysymsjmcwilliams4032023-03-161-0/+8
| | | | | These one-keysym-to-multiple-characters sequences will allow fully defining the Breton keyboard layout, without needing custom compose sequences.
* gitlab CI: add workflow rulesAlan Coopersmith2023-03-141-0/+9
| | | | | | | Needed due to the gitlab config changes described in: https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* NLS: move long S compositions to respective blocksjmcwilliams4032023-03-051-6/+4
|
* configure: Use LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOLAlan Coopersmith2023-03-041-2/+2
| | | | | | | | | | | | | | AC_PROG_LIBTOOL was replaced by LT_INIT in libtool 2 in 2008, so it's time to rely on it. Clears autoconf warnings: configure.ac:20: warning: The macro `AC_PROG_LIBTOOL' is obsolete. configure.ac:20: You should run autoupdate. m4/libtool.m4:100: AC_PROG_LIBTOOL is expanded from... configure.ac:20: the top level Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* configure: replace deprecated AC_HELP_STRING with AS_HELP_STRINGAlan Coopersmith2023-02-061-1/+1
| | | | | | This silences an autoconf warning. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* configure: raise minimum autoconf requirement to 2.70Alan Coopersmith2023-02-061-1/+1
| | | | | | | | Needed for builds on NetBSD to work correctly, since it depends on AC_USE_SYSTEM_EXTENSIONS defining _OPENBSD_SOURCE to expose the prototype for reallocarray() in the system headers. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* gitlab CI: Add libtool to required packagesAlan Coopersmith2023-02-061-2/+2
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* libX11 1.8.4libX11-1.8.4Alan Coopersmith2023-02-041-1/+1
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* configure: options summary should say "libX11", not just "X11"Alan Coopersmith2023-01-151-1/+1
| | | | | | We're not configuring the entire window system here, just one library Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11GaryOderNichts2023-01-145-56/+33
|
* nls: add two compose sequences for capital B with stroke, for consistencyBenno Schulenberg2023-01-071-1/+3
| | | | | | | | | | | Two compose sequences (with plain ASCII characters) existed for the lowercase b with stroke (ƀ) but not for the capital one (Ƀ). This addresses part of issue #166. Reported-by: J. McWilliams Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: delete twelve compose sequences that cannot be typedBenno Schulenberg2023-01-071-12/+0
| | | | | | | | | | | | | | | | There is not any keyboard layout (in xkeyboard-config) that contains `obelowdot` or `ubelowdot`, so having compose sequences that use these symbols is pointless. There are some layouts that contain `otilde` (and one that contains `utilde`), but those layouts then do not contain `dead_horn`, so the compose sequences that combine the two symbols are pointless. There are a few layouts that contain U+0256, U+025C, U+025F or U+0279, but those layouts do not contain `dead_hook`, so the compose sequences that combine the latter with one of the former are pointless. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: delete 88 compose sequences that have the accents in the wrong orderBenno Schulenberg2023-01-071-88/+0
| | | | | | | The various compose sequences with the accents in their proper order (the highest placed accent first) continue to exist. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: move the compose sequences for Ș and Ț to the fitting Unicode blockBenno Schulenberg2023-01-071-12/+12
| | | | | | | | This addresses a side note of issue #166. Reported-by: J. McWilliams Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* xlibi18n: Update Imake instructions to autoconf equivalent in commentsAlan Coopersmith2023-01-071-2/+2
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Revert "Update XPutBackEvent() to support clients that put back unpadded events"Yuxuan Shui2023-01-031-14/+1
| | | | | | | | | | | | | | | | | | | This reverts commit d6d6cba90215d323567fef13d6565756c9956f60. The reverted commit intended to fix the problem where an unpadded X event struct is passed into XPutBackEvent, by creating a padded struct with _XEventToWire and _XWireToEvent. However, _XWireToEvent updates the last sequence number in Display, which may cause xlib to complain about lost sequence numbers. IMO, the problem that commit tried to solve is a bug in the client library, and workaround it inside Xlib is bad practice, especially given the problem it caused. Plus, the offender cited in the original commit message, freeglut, has already fixed this problem. Fixes: #176 #174 Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
* libX11 1.8.3libX11-1.8.3Alan Coopersmith2022-12-152-1/+10
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Update XPutBackEvent() to support clients that put back unpadded eventsKeith Packard2022-12-111-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems to be common practice of some X11 clients to pass specific event types into APIs that take XEvent*. For example, freeglut does: XConfigureEvent fakeEvent = {0}; ... XPutBackEvent(fgDisplay.Display, (XEvent*)&fakeEvent); This can result in reads overflowing the input event when libX11 does: XEvent store = *event; ================================================================= ==75304==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x00016ee4a8e8 at pc 0x000101c54d14 bp 0x00016ee4a0d0 sp 0x00016ee49888 READ of size 192 at 0x00016ee4a8e8 thread T0 #0 0x101c54d10 in __asan_memcpy+0x1a4 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3cd10) #1 0x102848a18 in _XPutBackEvent PutBEvent.c:41 #2 0x1028490a4 in XPutBackEvent PutBEvent.c:84 #3 0x1013295c8 in fgOpenWindow freeglut_window.c:1178 #4 0x101321984 in fgCreateWindow freeglut_structure.c:108 #5 0x10132b138 in glutCreateWindow freeglut_window.c:1551 #6 0x100fb7d94 in main+0x78 (checkeredTriangles:arm64+0x100003d94) #7 0x197de3e4c (<unknown module>) Address 0x00016ee4a8e8 is located in stack of thread T0 at offset 840 in frame #0 0x1013282f8 in fgOpenWindow freeglut_window.c:1063 This frame has 8 object(s): [32, 40) 'title.addr' [64, 176) 'winAttr' (line 1066) [208, 240) 'textProperty' (line 1067) [272, 352) 'sizeHints' (line 1068) [384, 440) 'wmHints' (line 1069) [480, 672) 'eventReturnBuffer' (line 1070) [736, 740) 'num_FBConfigs' (line 1072) [752, 840) 'fakeEvent' (line 1074) <== Memory access at offset 840 overflows this variable This change allows XPutBackEvent() to support such clients without risk of memory read overflow. Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Tested-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
* ximcp: Address warning found by UBSan when growing an empty treeJeremy Huddleston Sequoia2022-12-101-1/+1
| | | | | | imLcPrs.c:681:52: runtime error: applying zero offset to null pointer Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
* nls: consecutive cs number in en_US.UTF-8/XLC_LOCALETakao Fujiwara2022-12-061-20/+20
|
* ChkIfEv.c: fix wrong handling of dpy->in_ifeventUlrich Sibiller2022-12-011-1/+1
| | | | | | Is no longer a bool but a counter. Signed-off-by: Ulrich Sibiller <uli42@gmx.de>
* Indentation fixes around recent dpy->in_ifevent changesUlrich Sibiller2022-12-015-17/+17
| | | | | | | Use the same indentation as the surrounding code. Signed-off-by: Ulrich Sibiller <uli42@gmx.de> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Fix 797755 Allow X*IfEvent() to reenter libX11Matthieu Herrb2022-11-196-13/+30
| | | | | | | | | - the activation logic is reversed - there is also _XInternalLockDisplay() that needs protection - I've found cases (in fvwm2) where the callback calls XCheckIfEvent() recursively. So the flag needs to be a counter. Reviewed-by: Adam Jackson <ajax@redhat.com>
* Don't use pragma inside a function, it breaks compiling with older GCCs.Nia Alarie2022-11-111-9/+10
| | | | | | XKBBind.c:230: error: #pragma GCC diagnostic not allowed inside functions Signed-off-by: Thomas Klausner <wiz@gatalith.at>
* Add XFreeThreads function.Oliver2022-11-114-1/+40
|
* libX11 1.8.2libX11-1.8.2Alan Coopersmith2022-11-101-2/+2
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* README.md: Add 1.8.2 changesAlan Coopersmith2022-11-071-0/+21
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Remove NEWS file which only covered 2006 & 2007 releasesAlan Coopersmith2022-11-071-185/+0
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* specs: document change in XIMPreeditCallbacksPo Lu2022-11-031-1/+5
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* man pages: document XCloseIM frees its argumentAlan Coopersmith2022-11-031-1/+2
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Copyright & license cleanupAlan Coopersmith2022-11-03224-225/+240
|
* nls: reshuffle a few compose sequences, to have similar ones togetherBenno Schulenberg2022-11-021-14/+14
| | | | | It makes more sense to have similar sequences grouped together than to rigidly follow the order of ascending Unicode codes.
* nls: remove two compose sequences that use deprecated symbolsBenno Schulenberg2022-11-021-2/+0
| | | | | The last few occurrences of `leftcaret` and `rightcaret` were replaced with `less` and `greater` in xkeyboard-config half a year ago.
* nls: let `<Multi_key> <minus> <underscore>` compose U+2212 (MINUS SIGN)Benno Schulenberg2022-11-021-0/+1
| | | | There was not yet any way to compose the Unicode minus sign, U+2212.
* Allow X*IfEvent() to reenter libX11Adam Jackson2022-11-026-0/+39
| | | | | | | | | | | | | | | | | | | | | The documentation for this family of functions very clearly says not to call into xlib in your predicate function, but historically single threaded apps could get away with it just fine, and now that we've forced thread-safety on the world such apps will now deadlock instead. That's not an acceptable regression even if the app is technically broken. This has been reported with XFCE and FVWM, and Motif's cut-and-paste code has the same bug by inspection, so this does need to be addressed. This change nerfs LockDisplay/UnlockDisplay while inside the critical bit of an IfEvent function. This is still safe in the sense that the display remains locked and no other thread should be able to change it from under us, but the loop that scans the event queue might not be robust against it being modified as a side effect of protocol emitted by the predicate callback. But that's not new, non-XInitThreads'd xlib would have the same caveat. Closes: xorg/lib/libx11#157
* nls: change <Compose> <^> <-> to mean superscript minus instead of macronBenno Schulenberg2022-10-311-1/+4
| | | | | | | | | | | | | | | | | | Several other `<Multi_key> <asciicircum> <symbol>` sequences produce the superscript equivalent of the given symbol. So, let `<Multi_key> <asciicircum> <minus>` do the same. Also, add two other sequences for producing a plain macron, to compensate a bit the loss of the above sequence. Additionally, make `<Multi_key> <underscore> <minus>` produce a subscript minus, for consistency. This fixes issue #165. Requested-by: J. McWilliams Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* nls: Map sr locales to sr_RS compose filesJan Tojnar2022-10-201-2/+2
| | | | | | | | | | | | | | | | | | Serbian used sr_YU (Yugoslavia) code in the past. Then it was succeeded by sr_CS (Serbia and Montenegro). Finally, it was split into sr_RS (Serbia) and sr_ME (Montenegro). https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/da95ecbbdcacc483cd0b5fd7db1fb2e2543341bd introduced the modern sr_RS and sr_ME codes. Next, https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/40761898692e5063957bfa2518cca3d35b2e354a added the Serbian compose table but only for the legacy sr_CS entry. https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/5cd60398b7787297008b13a848ed3cfbd7ef178d removed the legacy sr_CS entry, the only one pointing to the correct compose file. It also renamed the file to sr_RS, but did not update the compose mapping. Let’s point all Serbian locales to the Compose file again.
* COPYING: remove notice for the removed UIThrStubs.cAlan Coopersmith2022-10-141-29/+0
| | | | | | Fixes: 701e9e9a ("Use same pthread-stubs as libxcb") Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* nls: delete two compose sequences with an anomalous post-fixed breveBenno Schulenberg2022-10-141-4/+2
| | | | | | | | | | | | Two years ago, commit b126bfd7fe allowed using also a lowercase `u` wherever an uppercase `U` was used to represent a breve. But the commit should have limited itself to only the prefixed uses of `U`, as that is how most letters with a breve are composed. Also, group the two compose sequences with an uppercase post-fixed `U` together with the corresponding other post-fixed sequences. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
* Use same pthread-stubs as libxcbAlan Coopersmith2022-10-083-168/+8
| | | | | | | | | | Avoid conflicts when libX11 calls libxcb and gets its pthread functions overriding our ancient stubs. v2: Keep linking with real threads libraries when thread safety constructor is enabled. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* fix a memory leak in XRegisterIMInstantiateCallbackThomas E. Dickey2022-10-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Analysis: _XimRegisterIMInstantiateCallback() opens an XIM and closes it using the internal function pointers, but the internal close function does not free the pointer to the XIM (this would be done in XCloseIM()). Report/patch: Date: Mon, 03 Oct 2022 18:47:32 +0800 From: Po Lu <luangruo@yahoo.com> To: xorg-devel@lists.x.org Subject: Re: Yet another leak in Xlib For reference, here's how I'm calling XRegisterIMInstantiateCallback: XSetLocaleModifiers (""); XRegisterIMInstantiateCallback (compositor.display, XrmGetDatabase (compositor.display), (char *) compositor.resource_name, (char *) compositor.app_name, IMInstantiateCallback, NULL); and XMODIFIERS is: @im=ibus Signed-off-by: Thomas E. Dickey <dickey@invisible-island.net>
* If thread-safety-constructor is enabled, link against pthreads not stubsAlan Coopersmith2022-09-272-3/+9
| | | | | | | | | Only really makes a difference if pthreads is not in libc. Fixes: #162 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Adam Jackson <ajax@redhat.com>