<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wayland/cursor, branch main</title>
<subtitle>[no description]</subtitle>
<id>http://git.sudomsg.com/mirror/wayland/atom/cursor?h=main</id>
<link rel='self' href='http://git.sudomsg.com/mirror/wayland/atom/cursor?h=main'/>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/'/>
<updated>2026-07-20T05:24:49Z</updated>
<entry>
<title>build: remove redundant Meson version conditionals</title>
<updated>2026-07-20T05:24:49Z</updated>
<author>
<name>Benjamin Gilbert</name>
<email>bgilbert@backtick.net</email>
</author>
<published>2026-07-20T05:21:46Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5a819837646842aa74cb0a1b3c74d2fe14694ac6'/>
<id>urn:sha1:5a819837646842aa74cb0a1b3c74d2fe14694ac6</id>
<content type='text'>
Fixes warning with Meson 1.12:

    src/meson.build:221: WARNING: Conditional on version '&gt;= 0.54.0' always evaluates to true

Signed-off-by: Benjamin Gilbert &lt;bgilbert@backtick.net&gt;
</content>
</entry>
<entry>
<title>cursor: fix discards 'const' qualifier</title>
<updated>2026-03-03T21:36:37Z</updated>
<author>
<name>Rudi Heitbaum</name>
<email>rudi@heitbaum.com</email>
</author>
<published>2026-03-03T21:28:56Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=fe4d7620ddd33797f554909f9c9ca99f0a192e10'/>
<id>urn:sha1:fe4d7620ddd33797f554909f9c9ca99f0a192e10</id>
<content type='text'>
Fixes:
../cursor/xcursor.c: In function 'xcursor_next_path':
../cursor/xcursor.c:610:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  610 |         char *colon = strchr(path, ':');
      |                       ^~~~~~

Signed-off-by: Rudi Heitbaum &lt;rudi@heitbaum.com&gt;
</content>
</entry>
<entry>
<title>cursor: Free theme when size check fails to avoid memory leak</title>
<updated>2025-08-03T11:36:34Z</updated>
<author>
<name>YaoBing Xiao</name>
<email>xiaoyaobing@uniontech.com</email>
</author>
<published>2025-07-16T14:29:40Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=264da6a92b48ef41661021236c5d51ca52722309'/>
<id>urn:sha1:264da6a92b48ef41661021236c5d51ca52722309</id>
<content type='text'>
Signed-off-by: YaoBing Xiao &lt;xiaoyaobing@uniontech.com&gt;
</content>
</entry>
<entry>
<title>cursor: Properly check realloc for errors</title>
<updated>2025-06-08T16:16:09Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T21:07:45Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0de833da296e59e2495738afc450d1d3cb0314b3'/>
<id>urn:sha1:0de833da296e59e2495738afc450d1d3cb0314b3</id>
<content type='text'>
Do not override realloc's input pointer before checking for errors,
otherwise it's not possible to keep old value, as intended.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: Ignore invalid cursor files</title>
<updated>2025-06-08T16:16:09Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T20:18:30Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2978fd701a6987668a4ff41f9434f6c0da705596'/>
<id>urn:sha1:2978fd701a6987668a4ff41f9434f6c0da705596</id>
<content type='text'>
The header offset must not be smaller than file header length.
Ignore such invalid files.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: Gracefully handle huge cursor files</title>
<updated>2025-06-08T16:16:09Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T20:05:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5c2f31d8d6e5f24962300f4608a0d6f887ca3bea'/>
<id>urn:sha1:5c2f31d8d6e5f24962300f4608a0d6f887ca3bea</id>
<content type='text'>
If cursor files require more than INT_MAX bytes, it is possible to
trigger out of boundary writes.

Since these sizes are most likely not desired anyway, gracefully
handle these situations like out of memory errors.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: Gracefully handle out of memory condition</title>
<updated>2025-06-08T16:16:09Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T18:52:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ce0ac4f29e720688ea94fbe412a0b332304d8ee6'/>
<id>urn:sha1:ce0ac4f29e720688ea94fbe412a0b332304d8ee6</id>
<content type='text'>
If the full path could not be constructed, avoid calling opendir(NULL)
which, depending on library, might trigger undefined behavior.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: Fix undefined behavior with huge names</title>
<updated>2025-06-08T16:16:09Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T18:36:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1bee7aa4a7d6590f882a61a29da16316ba27c600'/>
<id>urn:sha1:1bee7aa4a7d6590f882a61a29da16316ba27c600</id>
<content type='text'>
If an index.theme contains a theme name which gets close to INT_MAX,
then creation of full path can lead to a signed integer overflow,
which is undefined behavior.

Fix this by turning one of the values to size_t. Easy solution for a
probably never occurring issue.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>Fix typos</title>
<updated>2025-05-20T20:49:32Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2024-09-12T13:26:26Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=cc06c3825f38ab069ff787311c9ec9f172579347'/>
<id>urn:sha1:cc06c3825f38ab069ff787311c9ec9f172579347</id>
<content type='text'>
Typos found with codespell and during code audit.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: add check to ensure wl_shm_create_pool succeeded</title>
<updated>2024-10-18T08:49:45Z</updated>
<author>
<name>YaoBing Xiao</name>
<email>xiaoyaobing@uniontech.com</email>
</author>
<published>2024-10-18T02:25:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f67db75ec118f6ec64e60113dbdecb20b4ea1abd'/>
<id>urn:sha1:f67db75ec118f6ec64e60113dbdecb20b4ea1abd</id>
<content type='text'>
Signed-off-by: YaoBing Xiao &lt;xiaoyaobing@uniontech.com&gt;
</content>
</entry>
<entry>
<title>src: Finish assert() clean-up</title>
<updated>2024-08-09T20:38:52Z</updated>
<author>
<name>Derek Foreman</name>
<email>derek.foreman@collabora.com</email>
</author>
<published>2024-07-16T11:31:13Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=58bb6c721126c12ab644bee557bef6825562440a'/>
<id>urn:sha1:58bb6c721126c12ab644bee557bef6825562440a</id>
<content type='text'>
From cleanup commit 0cecde304:
assert()s can be compiled away by #defining NDEBUG. Some build systems
do this. Using wl_abort gives a human readable error message and it
isn't compiled away.

That commit missed one final assert, presumably due to missing it with
grep because of a coding style issue. Fix that up, and remove inclusion
of &lt;assert.h&gt; as appropriate.

Signed-off-by: Derek Foreman &lt;derek.foreman@collabora.com&gt;
</content>
</entry>
<entry>
<title>xcursor: catch theme inheritance loops</title>
<updated>2024-04-24T10:28:38Z</updated>
<author>
<name>Chloé Vulquin</name>
<email>code@toast.bunkerlabs.net</email>
</author>
<published>2024-03-28T12:44:36Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=16aee2ec3829b37f4db623ab9ddab1b789bdd2e2'/>
<id>urn:sha1:16aee2ec3829b37f4db623ab9ddab1b789bdd2e2</id>
<content type='text'>
As of currently, when an xcursor theme depends on itself or another theme
that will eventually depend on it, `xcursor_load_theme` will recurse
infinitely while processing the inherits.

This change introduces a stack-allocated linked list of visited nodes
by name, and skips any already visited nodes in the inherit list.

Side effects:
* Since the linked list is stack-allocated, there is a potential for an
  overflow if there is a very long list of dependencies. If this turns out
  to be a legitimate concern, the linked list is trivial to convert to
  being heap-allocated.
* There is an existing linked list (technically doubly linked list)
  implementation in the wayland codebase. As of currently, the xcursor
  codebase does not refer to it. Consequently, this change writes a
  minimal single linked list implementation to utilize directly.

This changeset fixes #317.

Signed-off-by: Chloé Vulquin &lt;toast@bunkerlabs.net&gt;
</content>
</entry>
<entry>
<title>cursor: memfd_create: try MFD_NOEXEC_SEAL</title>
<updated>2024-04-21T17:17:46Z</updated>
<author>
<name>6t8k</name>
<email>6t8k@noreply.codeberg.org</email>
</author>
<published>2023-10-14T21:25:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=03e304544b9b01c175813215f5930a07152be448'/>
<id>urn:sha1:03e304544b9b01c175813215f5930a07152be448</id>
<content type='text'>
Effective from Linux 6.3 onward, this creates the memfd without execute
permissions and prevents that setting from ever being changed. A
run-time fallback is made to not using MFD_NOEXEC_SEAL when a
libwayland-cursor compiled on Linux &gt;= 6.3 is run on Linux &lt; 6.3.

This is a defense-in-depth security measure and silences a respective
kernel warning; see: https://lwn.net/Articles/918106/

This implementation is adopted from dnkl's `foot` terminal emulator.

Signed-off-by: 6t8k &lt;6t8k@noreply.codeberg.org&gt;
</content>
</entry>
<entry>
<title>cursor: add aliases for cursor name spec</title>
<updated>2024-01-19T14:08:16Z</updated>
<author>
<name>Consolatis</name>
<email>Consolatis@noreply.invalid</email>
</author>
<published>2023-02-01T13:35:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6daa1b8713f0fa569eb9f5c101b61c4ef1500775'/>
<id>urn:sha1:6daa1b8713f0fa569eb9f5c101b61c4ef1500775</id>
<content type='text'>
The cursor name spec [1] describes how cursors should be named,
and is widely used. Add aliases so that users can pass these
names to libwayland-cursor without having to add fallbacks for
X11 cursor names.

[1]: https://www.freedesktop.org/wiki/Specifications/cursor-spec/

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: check return value of snprintf()</title>
<updated>2023-08-02T14:47:07Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-08-02T14:46:11Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7b27881cd1cbe55ec66c1455867eda9606eab8c7'/>
<id>urn:sha1:7b27881cd1cbe55ec66c1455867eda9606eab8c7</id>
<content type='text'>
Fixes a new warning in GCC 7:

    FAILED: cursor/libwayland-cursor.so.0.22.90.p/xcursor.c.o
    cc -Icursor/libwayland-cursor.so.0.22.90.p -Icursor -I../cursor -I. -I.. -Isrc -I../src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c99 -O3 -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC '-DICONDIR="/usr/share/X11/icons"' -MD -MQ cursor/libwayland-cursor.so.0.22.90.p/xcursor.c.o -MF cursor/libwayland-cursor.so.0.22.90.p/xcursor.c.o.d -o cursor/libwayland-cursor.so.0.22.90.p/xcursor.c.o -c ../cursor/xcursor.c
    ../cursor/xcursor.c: In function 'xcursor_load_theme':
    ../cursor/xcursor.c:596:39: error: '%s' directive output between 7 and 7 bytes may cause result to exceed 'INT_MAX' [-Werror=format-truncation=]
      596 |         snprintf(full, full_size, "%s/%s/%s", dir, subdir, file);
          |                                       ^~
    ......
      764 |                 full = xcursor_build_fullname(dir, "cursors", "");
          |                                                    ~~~~~~~~~
    ../cursor/xcursor.c:596:41: error: '/' directive output between 1 and 1 bytes may cause result to exceed 'INT_MAX' [-Werror=format-truncation=]
      596 |         snprintf(full, full_size, "%s/%s/%s", dir, subdir, file);
          |                                         ^
    cc1: all warnings being treated as errors

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: make param names match with documentation</title>
<updated>2022-09-13T18:01:57Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-09-08T08:38:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2d5acfa5c3f4a184072171b0ed9673abd55a9496'/>
<id>urn:sha1:2d5acfa5c3f4a184072171b0ed9673abd55a9496</id>
<content type='text'>
There was a mismatch here.

Use a good-looking function param name because that's what will
show up in docs. Use an abbreviation inside the function.

Fixes the following warnings:

    cursor/wayland-cursor.c:504: warning: argument 'cursor' of command @param is not found in the argument list of wl_cursor_frame(struct wl_cursor *_cursor, uint32_t time)
    cursor/wayland-cursor.c:504: warning: The following parameter of wl_cursor_frame(struct wl_cursor *_cursor, uint32_t time) is not documented:
      parameter '_cursor'
    cursor/wayland-cursor.c:452: warning: argument 'cursor' of command @param is not found in the argument list of wl_cursor_frame_and_duration(struct wl_cursor *_cursor, uint32_t time, uint32_t *duration)
    cursor/wayland-cursor.c:452: warning: The following parameter of wl_cursor_frame_and_duration(struct wl_cursor *_cursor, uint32_t time, uint32_t *duration) is not documented:
      parameter '_cursor'
    cursor/wayland-cursor.c:147: warning: argument 'image' of command @param is not found in the argument list of wl_cursor_image_get_buffer(struct wl_cursor_image *_img)
    cursor/wayland-cursor.c:147: warning: The following parameter of wl_cursor_image_get_buffer(struct wl_cursor_image *_img) is not documented:
      parameter '_img'
    cursor/wayland-cursor.c:504: warning: argument 'cursor' of command @param is not found in the argument list of wl_cursor_frame(struct wl_cursor *_cursor, uint32_t time)
    cursor/wayland-cursor.c:504: warning: The following parameter of wl_cursor_frame(struct wl_cursor *_cursor, uint32_t time) is not documented:
      parameter '_cursor'
    cursor/wayland-cursor.c:452: warning: argument 'cursor' of command @param is not found in the argument list of wl_cursor_frame_and_duration(struct wl_cursor *_cursor, uint32_t time, uint32_t *duration)
    cursor/wayland-cursor.c:452: warning: The following parameter of wl_cursor_frame_and_duration(struct wl_cursor *_cursor, uint32_t time, uint32_t *duration) is not documented:
      parameter '_cursor'
    cursor/wayland-cursor.c:147: warning: argument 'image' of command @param is not found in the argument list of wl_cursor_image_get_buffer(struct wl_cursor_image *_img)
    cursor/wayland-cursor.c:147: warning: The following parameter of wl_cursor_image_get_buffer(struct wl_cursor_image *_img) is not documented:
      parameter '_img'

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor/os-compatibility: handle EINTR gracefully</title>
<updated>2022-06-09T19:18:47Z</updated>
<author>
<name>Olivier Fourdan</name>
<email>ofourdan@redhat.com</email>
</author>
<published>2022-05-30T07:14:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=dd00220b1ef6a4c823632a02b535b40602bfb8d4'/>
<id>urn:sha1:dd00220b1ef6a4c823632a02b535b40602bfb8d4</id>
<content type='text'>
If os_resize_anonymous_file() called from os_create_anonymous_file()
fails with EINTR (Interrupted system call), then the buffer allocation
fails.

To avoid that, retry posix_fallocate() on EINTR.

However, in the presence of an alarm, the interrupt may trigger
repeatedly and prevent a large posix_fallocate() to ever complete
successfully, so we need to first block SIGALRM to prevent this.

Signed-off-by: Olivier Fourdan &lt;ofourdan@redhat.com&gt;
</content>
</entry>
<entry>
<title>Check that XDG base directories paths are absolute</title>
<updated>2022-06-09T18:34:17Z</updated>
<author>
<name>Antonin Décimo</name>
<email>antonin.decimo@gmail.com</email>
</author>
<published>2022-03-11T13:08:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9434e8d69f76d7859ed7b18edc5a62450ad8d040'/>
<id>urn:sha1:9434e8d69f76d7859ed7b18edc5a62450ad8d040</id>
<content type='text'>
The [spec][1] reads:

&gt; All paths set in these environment variables must be absolute. If an
&gt; implementation encounters a relative path in any of these variables it should
&gt; consider the path invalid and ignore it.

and

&gt; If $XDG_DATA_HOME is either not set or empty, a default equal to
&gt; $HOME/.local/share should be used.

Testing that the path is absolute also entails that is is non-empty.

[1]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Signed-off-by: Antonin Décimo &lt;antonin.decimo@gmail.com&gt;
</content>
</entry>
<entry>
<title>cursor/os-compatibility: fix trailing space</title>
<updated>2022-06-04T20:58:50Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-06-04T20:58:50Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f710d01663bc054825b0ed84be20ab5fc201362e'/>
<id>urn:sha1:f710d01663bc054825b0ed84be20ab5fc201362e</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor/os-compatibility: remove strcpy/strcat usage</title>
<updated>2022-06-04T20:58:47Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-06-04T20:56:36Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0297c2c47ad7321444add0be6cb8bf68cf270aac'/>
<id>urn:sha1:0297c2c47ad7321444add0be6cb8bf68cf270aac</id>
<content type='text'>
These functions don't perform bounds checking, so they are easy to
misuse and complicate audits.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: move xcursor_theme_inherits declarations at the top</title>
<updated>2022-05-27T20:41:12Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:52:35Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=355c8e885c559354590c1a94a9aadf7030642151'/>
<id>urn:sha1:355c8e885c559354590c1a94a9aadf7030642151</id>
<content type='text'>
Per code style, declarations need to be at the start of the block.

And make l const while at it.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop xcursor_add_path_elt</title>
<updated>2022-05-27T20:41:12Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:49:10Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=dfe820efcea45d46dc436e8fa64def9c69efbdfa'/>
<id>urn:sha1:dfe820efcea45d46dc436e8fa64def9c69efbdfa</id>
<content type='text'>
Just use snprintf instead. It doesn't really matter if we have
some duplicate slashes in filenames.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop unused XCursor comment declarations</title>
<updated>2022-05-27T20:41:12Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:17:42Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ccca002691a94cb6f25c092a33a5d5112e2d627a'/>
<id>urn:sha1:ccca002691a94cb6f25c092a33a5d5112e2d627a</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix indentation of xcursor_load_theme declaration</title>
<updated>2022-05-27T20:41:12Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:16:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1cb728246ba04fd7f8c0557d74fa5ea18d1f07c6'/>
<id>urn:sha1:1cb728246ba04fd7f8c0557d74fa5ea18d1f07c6</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: simplify xcursor_library_path</title>
<updated>2022-05-27T20:41:11Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:14:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7a399383fc6b4586368c1083062bd28e9e30d5fb'/>
<id>urn:sha1:7a399383fc6b4586368c1083062bd28e9e30d5fb</id>
<content type='text'>
- Use early returns
- De-duplicate XDG_DATA_HOME code-paths
- Don't crash on allocation failure
- Use size_t when appropriate
- Fix indentation

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove unnecessary ifs in xcursor_load_theme</title>
<updated>2022-05-27T20:41:11Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:09:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f33356742e7f89962db6d7f58c3c3c6f9667cd15'/>
<id>urn:sha1:f33356742e7f89962db6d7f58c3c3c6f9667cd15</id>
<content type='text'>
load_all_cursors_from_dir and xcursor_theme_inherits already have
the NULL checks we want.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop xcursor_images_set_name</title>
<updated>2022-05-27T20:41:11Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T15:07:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6c49a8f7e508ad51a913f6205b9359dec8132296'/>
<id>urn:sha1:6c49a8f7e508ad51a913f6205b9359dec8132296</id>
<content type='text'>
We don't ever need to set the name multiple times for a single
struct xcursor_images, so we can just set the field directly. Also
replace the hand-rolled logic with strdup.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: use getline instead of fgets</title>
<updated>2022-05-27T20:41:11Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T14:54:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6cf5e8f9324095f2226ee666eee9090fbc6da287'/>
<id>urn:sha1:6cf5e8f9324095f2226ee666eee9090fbc6da287</id>
<content type='text'>
This avoids storing 8KiB on the stack, and removes the line length
limit.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove unnecessary parentheses in load_all_cursors_from_dir</title>
<updated>2022-05-27T20:41:10Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T14:03:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0b8793ab0c5a6324490fc7cd2c51832c3fcc7c03'/>
<id>urn:sha1:0b8793ab0c5a6324490fc7cd2c51832c3fcc7c03</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove xcursor_file_load_images wrapper</title>
<updated>2022-05-27T14:01:42Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-27T14:01:42Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c2a150f7c253c65d376821df900fbe42b89c7e94'/>
<id>urn:sha1:c2a150f7c253c65d376821df900fbe42b89c7e94</id>
<content type='text'>
It's just calling xcursor_xc_file_load_images.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: rename local variables to snake case</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T10:01:19Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=93b61fde1f4fae57222b176a789d993454cb6e91'/>
<id>urn:sha1:93b61fde1f4fae57222b176a789d993454cb6e91</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop xcursor_file abstraction</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:57:31Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=cf9065dfb8823d663e7e1e0b8f830d370381eff3'/>
<id>urn:sha1:cf9065dfb8823d663e7e1e0b8f830d370381eff3</id>
<content type='text'>
Just use FILE * directly instead.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: refactor xcursor_theme_inherits</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:53:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=245d30ecb8a5001ec698e2db1fd77c3661563da5'/>
<id>urn:sha1:245d30ecb8a5001ec698e2db1fd77c3661563da5</id>
<content type='text'>
Use early returns and breaks to avoid dealing with very long
indentation lines.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: convert macros to functions</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:48:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=963014459c5eb54b1317c688f9e2dfbac44a672d'/>
<id>urn:sha1:963014459c5eb54b1317c688f9e2dfbac44a672d</id>
<content type='text'>
Improves readability since there's no need for so many parentheses
anymore, adds type safety. The compiler will inline the function
automatically as necessary.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: rename functions to snake case</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:45:20Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=bcfcd49232e3881d995da83a15dbc2897148c5fb'/>
<id>urn:sha1:bcfcd49232e3881d995da83a15dbc2897148c5fb</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix whitespace in function args definitions</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:31:45Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3c12a7a1bef7c9c316925dce55a2dff2df4c87d2'/>
<id>urn:sha1:3c12a7a1bef7c9c316925dce55a2dff2df4c87d2</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove struct typedefs, rename to snake case</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:29:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a46d8be4e1e8d3fc9920e280282b0e32054e6d02'/>
<id>urn:sha1:a46d8be4e1e8d3fc9920e280282b0e32054e6d02</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix spacing around conditions and loops</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-21T09:17:12Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=21394fd5f77dc84eb3bcf3ba3fcd74e69393d610'/>
<id>urn:sha1:21394fd5f77dc84eb3bcf3ba3fcd74e69393d610</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix indentation</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:40:55Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=315126d3bd9291d4d4c7bf316b9e5a3f694402c9'/>
<id>urn:sha1:315126d3bd9291d4d4c7bf316b9e5a3f694402c9</id>
<content type='text'>
Use tabs.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove unnecessary if before free</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:30:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=450bb7c1452e901660311f1d971d007b3769b3fc'/>
<id>urn:sha1:450bb7c1452e901660311f1d971d007b3769b3fc</id>
<content type='text'>
free(NULL) is valid and is a no-op.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix variable declaration style</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:28:44Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=92e758834c4ba55cd3d7dc29b812f7fc963296f6'/>
<id>urn:sha1:92e758834c4ba55cd3d7dc29b812f7fc963296f6</id>
<content type='text'>
Use a single space between type and variable name.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix struct declaration style</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:20:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b0a4e633512e966c00a47184d4a303091ca3dcdc'/>
<id>urn:sha1:b0a4e633512e966c00a47184d4a303091ca3dcdc</id>
<content type='text'>
Use tabs for indentation, don't use tabs to align field names.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix define style</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:19:31Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=329be63d6ba4d52e08ae0bef78974bcf0c11ab31'/>
<id>urn:sha1:329be63d6ba4d52e08ae0bef78974bcf0c11ab31</id>
<content type='text'>
Don't use tabs, don't align.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop whitespace before parens in function calls</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:10:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5f5f1da691f9888c94552ab72a2cca61c01a12ba'/>
<id>urn:sha1:5f5f1da691f9888c94552ab72a2cca61c01a12ba</id>
<content type='text'>
This is in line with the rest of the Wayland code style.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop XCURSOR_LIB_* defines</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:02:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=13d4ae01cbc70f0fcd37d883869382f3a567425a'/>
<id>urn:sha1:13d4ae01cbc70f0fcd37d883869382f3a567425a</id>
<content type='text'>
These are unused.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: drop XcursorTrue and XcursorFalse</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T15:01:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7658cff241d7d89fba3733e0f3d0718993308450'/>
<id>urn:sha1:7658cff241d7d89fba3733e0f3d0718993308450</id>
<content type='text'>
Just use &lt;stdbool.h&gt; instead.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: remove private Xcursor int typedefs</title>
<updated>2022-05-23T08:59:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-04-17T14:57:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4ea5ad1d11973344446d4078cfd45114101442b0'/>
<id>urn:sha1:4ea5ad1d11973344446d4078cfd45114101442b0</id>
<content type='text'>
Just use the types directly instead.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: use MAP_FAILED instead of hardcoded constant</title>
<updated>2022-05-06T19:57:24Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-05-06T19:57:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2dcc35af81cfc894335088a3843fc26af7ac9306'/>
<id>urn:sha1:2dcc35af81cfc894335088a3843fc26af7ac9306</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: Remove unused XcursorLibraryLoadImages() function</title>
<updated>2022-02-05T14:33:32Z</updated>
<author>
<name>Vlad Zahorodnii</name>
<email>vlad.zahorodnii@kde.org</email>
</author>
<published>2022-01-27T19:11:20Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4ebd997de2b52c0998a91436ed05ffbe6d56a306'/>
<id>urn:sha1:4ebd997de2b52c0998a91436ed05ffbe6d56a306</id>
<content type='text'>
XcursorLibraryLoadImages() function is unused and not exported according to
objdump, so its removal should be an ABI compatible change.

Signed-off-by: Vlad Zahorodnii &lt;vlad.zahorodnii@kde.org&gt;
</content>
</entry>
<entry>
<title>build: don't rely on implicit GNU extensions</title>
<updated>2022-01-10T14:08:46Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-01-10T13:51:55Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9'/>
<id>urn:sha1:0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9</id>
<content type='text'>
Currently libwayland assumes GNU extensions will be available, but
doesn't define the C standard to use. Instead, let's unconditionally
enable POSIX extensions, and enable GNU extensions on a case-by-case
basis as needed.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>meson: override dependencies to ease use as subproject</title>
<updated>2021-12-07T23:27:58Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-12-07T23:27:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ba82e0d80617f720b133ecf3a251a53cca47a6f3'/>
<id>urn:sha1:ba82e0d80617f720b133ecf3a251a53cca47a6f3</id>
<content type='text'>
Make it easier to use Wayland as a Meson subproject by overriding
dependencies we define. This allows to easily build Wayland as a
subproject like so:

    subproject('wayland', required: false, default_options: ['documentation=false'])

After this statement, the wayland-* dependencies will use the subproject
instead of the system if available.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>build: Include the Wayland minor version in libraries' ABI versions</title>
<updated>2021-10-28T12:46:06Z</updated>
<author>
<name>Simon McVittie</name>
<email>smcv@collabora.com</email>
</author>
<published>2021-09-10T17:32:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0cdd2a5c54771d18dc3ec9d690b7fbb754b90dfd'/>
<id>urn:sha1:0cdd2a5c54771d18dc3ec9d690b7fbb754b90dfd</id>
<content type='text'>
The ABI of a shared library on Linux is given by a major version, which
is part of the SONAME and is incremented (rarely) on incompatible
changes, and a minor version, which is part of the basename of the
regular file to which the SONAME provides a symlink.

Until now, the ABI minor version was hard-coded, which means we can't
tell which of a pair of Wayland libraries is newer (and therefore
likely to have more symbols and/or fewer bugs).

libwayland-egl already had ABI major version 1, so we can use the
"marketing" version number as the ABI major.minor version number
directly, so Wayland 1.19.90 would produce
libwayland-egl.so.1 -&gt; libwayland-egl.so.1.19.90.

libwayland-cursor and libwayland-server have ABI major version 0,
and OS distributions don't like it when there's a SONAME bump for no
good reason, so use their existing ABI major version together with
the "marketing" minor version:
libwayland-cursor.so.0 -&gt; libwayland-cursor.so.0.19.90.

If the Wayland major version number is incremented to 2, we'll have to
rethink this, so add some error() to break the build if/when that
happens. Assuming that Wayland 2.0 would involve breaking changes,
the best way would probably to bump all the SONAMEs to
libwayland-foo.so.2.

Resolves: https://gitlab.freedesktop.org/wayland/wayland/-/issues/175
Signed-off-by: Simon McVittie &lt;smcv@collabora.com&gt;
</content>
</entry>
<entry>
<title>cursor: remove unused wl_cursor_theme.name</title>
<updated>2021-08-06T09:26:03Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-08-05T16:09:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6ebe3cfed0aaa934cd571d2b89c0ba23aa242055'/>
<id>urn:sha1:6ebe3cfed0aaa934cd571d2b89c0ba23aa242055</id>
<content type='text'>
Let's just delete this field since it's not used anywhere and not
exposed in our public API.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: rename load_default_theme to load_fallback_theme</title>
<updated>2021-08-05T15:24:02Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-08-05T15:24:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2dfa0dcb24766b03f4a9f05154b474b722aaa025'/>
<id>urn:sha1:2dfa0dcb24766b03f4a9f05154b474b722aaa025</id>
<content type='text'>
The theme getting loaded by this function is not to be confused
with the theme named "default" located on the filesystem. Instead,
it's a minimal theme directly bundled into libwayland-cursor.

Make this clearer by naming this theme "fallback".

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: Try to fall back to a default xcursor theme first</title>
<updated>2021-08-05T15:09:40Z</updated>
<author>
<name>Olivier Tilloy</name>
<email>olivier.tilloy@canonical.com</email>
</author>
<published>2021-05-05T15:15:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f80879c03c194109190f48eb49a5ed649ce5da97'/>
<id>urn:sha1:f80879c03c194109190f48eb49a5ed649ce5da97</id>
<content type='text'>
The use case is systems where for some reason the current xcursor theme
cannot be accessed (an application packaged as a strictly confined snap,
for example).

Before falling back to wayland's default cursor theme, it is worth
trying the xcursor theme called "default", which hopefully looks better
than the former.

Fixes: https://gitlab.gnome.org/Community/Ubuntu/gnome-sdk/-/issues/6

Signed-off-by: Olivier Tilloy &lt;olivier.tilloy@canonical.com&gt;
</content>
</entry>
<entry>
<title>cursor: fix crash with weird input files</title>
<updated>2021-06-02T13:46:33Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2021-05-14T11:06:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=abcf1048e23525865c2ff43ce90bbdaa80524246'/>
<id>urn:sha1:abcf1048e23525865c2ff43ce90bbdaa80524246</id>
<content type='text'>
If a cursor file contains multiple images for the same size, this
typically indicates an animation. The compositor weston uses
wl_cursor_frame_and_duration to figure out at which time a specific image
should be shown.

The total delay is the sum of all image delays. But if all images have a
delay of 0, the total delay is 0 as well. The code does not check for this
special condition and triggers a floating point exception by eventually
performing a modulo operation with 0.

This, of course, could also happen if the sum of all image delays
triggers an unsigned int overflow. But since a comment in the code
already indicates that it does not try to "fix" handling of weird files,
I would argue that it's "okay" if that happens. At least the program
won't crash.

Proof of Concept:

install -D ~/.icons/poc/cursors
base64 -d &gt; ~/.icons/poc/cursors/left_ptr &lt;&lt; EOF
WGN1chAAAAAAAAEAAgAAAAIA/f8BAAAAKAAAAAIA/f8BAAAAKAAAACQAAAACAP3/AQAAAAEAAAAB
AAAAAQAAAAEAAAABAAAAAAAAAAAAAAA=
EOF
cat &gt; /tmp/weston.ini &lt;&lt; EOF
[shell]
cursor-theme=poc
EOF
weston -c /tmp/weston.ini

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: fix CVE-2013-2003</title>
<updated>2021-05-02T19:35:23Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2021-05-02T19:35:23Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ed55438366e93d70867e3ba6b80978673e536fc0'/>
<id>urn:sha1:ed55438366e93d70867e3ba6b80978673e536fc0</id>
<content type='text'>
The libXcursor fix for CVE-2013-2003 has never been imported into
wayland, leaving it vulnerable to it.

Changing the argument type to an unsigned type is an effective merge of
Ilja Van Sprundel's commit in libXcursor.

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
</content>
</entry>
<entry>
<title>cursor: add one more directory to XCURSORPATH</title>
<updated>2021-04-27T11:16:17Z</updated>
<author>
<name>Alexander Dunaev</name>
<email>adunaev@igalia.com</email>
</author>
<published>2021-02-17T08:44:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0aebb5b94d6c9ba5e5b1440cb57060d9063e202d'/>
<id>urn:sha1:0aebb5b94d6c9ba5e5b1440cb57060d9063e202d</id>
<content type='text'>
The user may install cursor themes manually, and the desktop environment
may provide a special directory for storing them.  For instance, GTK puts
those themes into ~/.local/share/icons, and many Linux distributions suggest
using that directory for user-specific themes.  However, users of
libwayland-cursor cannot load these themes using the API provided by the
library because the latter does not look into that directory.

This patch adds ~/.local/share/icons to the search path, so user-specific
themes can be loaded through the API provided by libwayland-cursor.

Signed-off-by: Alexander Dunaev &lt;adunaev@igalia.com&gt;
Reviewed-by: Emmanuel Gil Peyrot &lt;linkmauve@linkmauve.fr&gt;
Reviewed-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>build: drop autotools</title>
<updated>2021-03-05T09:15:04Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-12-14T13:46:46Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3bda3d1b4729c8ee7c533520a199611cb841bc8f'/>
<id>urn:sha1:3bda3d1b4729c8ee7c533520a199611cb841bc8f</id>
<content type='text'>
Meson now replaces autotools.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: fix typo "insufficent"</title>
<updated>2020-12-17T21:03:14Z</updated>
<author>
<name>Maxime Roussin-Bélanger</name>
<email>maxime.roussinbelanger@gmail.com</email>
</author>
<published>2020-12-17T20:40:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0f0951d5c4d62fa5d1f2ccb5e69354b5116220a5'/>
<id>urn:sha1:0f0951d5c4d62fa5d1f2ccb5e69354b5116220a5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cursor/convert_font.c: malloc cannot guarantee that the memory allocated is always successful</title>
<updated>2020-10-29T13:00:20Z</updated>
<author>
<name>ganjing</name>
<email>ganjing@uniontech.com</email>
</author>
<published>2020-07-27T03:22:40Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1ea08d748cfa86d7395315ca3e52085b0e1c8155'/>
<id>urn:sha1:1ea08d748cfa86d7395315ca3e52085b0e1c8155</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix undefined behavior</title>
<updated>2020-09-04T10:27:33Z</updated>
<author>
<name>Valentin</name>
<email>vakevk+git@gmail.com</email>
</author>
<published>2020-09-04T10:15:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1ab6a81816f52c17be2138ba569256b5afc029f2'/>
<id>urn:sha1:1ab6a81816f52c17be2138ba569256b5afc029f2</id>
<content type='text'>
Without the casts the bytes accesses get converted to int. but int is
not guaranteed to be 4 bytes large. Even when it is 4 bytes large
`bytes[3] &lt;&lt; 24` does not fit because int is signed.

Signed-off-by: Valentin Kettner &lt;vakevk@gmail.com&gt;
</content>
</entry>
<entry>
<title>Use fixed size integer type</title>
<updated>2020-09-04T10:27:23Z</updated>
<author>
<name>Valentin</name>
<email>vakevk+git@gmail.com</email>
</author>
<published>2020-09-04T10:12:56Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=fc3beac71f631fb16ee2257e9a6c9ec07cd0c90d'/>
<id>urn:sha1:fc3beac71f631fb16ee2257e9a6c9ec07cd0c90d</id>
<content type='text'>
This type is meant to be 4 bytes large as seen in _XcursorReadUInt which
always reads 4 bytes. An unsigned int is often 4 bytes large but this
isnt' guaranteed so it is cleaner to use the exact type we want.

Signed-off-by: Valentin Kettner &lt;vakevk@gmail.com&gt;
</content>
</entry>
<entry>
<title>cursor: Properly document wl_cursor_image and wl_cursor</title>
<updated>2020-06-05T11:05:20Z</updated>
<author>
<name>Emmanuel Gil Peyrot</name>
<email>linkmauve@linkmauve.fr</email>
</author>
<published>2019-11-13T21:53:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c81cbae3f2233f189d32927c6d33c90804f28953'/>
<id>urn:sha1:c81cbae3f2233f189d32927c6d33c90804f28953</id>
<content type='text'>
Signed-off-by: Emmanuel Gil Peyrot &lt;linkmauve@linkmauve.fr&gt;
</content>
</entry>
<entry>
<title>cursor: Use spaces for alignment in the header</title>
<updated>2020-06-05T11:05:20Z</updated>
<author>
<name>Emmanuel Gil Peyrot</name>
<email>linkmauve@linkmauve.fr</email>
</author>
<published>2019-11-13T19:39:01Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=95a3272625296293c1d508e79a6e670b1af2abca'/>
<id>urn:sha1:95a3272625296293c1d508e79a6e670b1af2abca</id>
<content type='text'>
Signed-off-by: Emmanuel Gil Peyrot &lt;linkmauve@linkmauve.fr&gt;
</content>
</entry>
<entry>
<title>cursor/os-compatibility: move resizing into a separate function</title>
<updated>2020-02-23T20:42:54Z</updated>
<author>
<name>Jan Beich</name>
<email>jbeich@FreeBSD.org</email>
</author>
<published>2020-02-16T05:54:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=230885ebb40b35c68a3b88a649f449afa344ec28'/>
<id>urn:sha1:230885ebb40b35c68a3b88a649f449afa344ec28</id>
<content type='text'>
Signed-off-by: Jan Beich &lt;jbeich@FreeBSD.org&gt;
</content>
</entry>
<entry>
<title>cursor: ignore posix_fallocate in shm_pool_resize if not supported by FS</title>
<updated>2020-02-23T20:42:54Z</updated>
<author>
<name>Jan Beich</name>
<email>jbeich@FreeBSD.org</email>
</author>
<published>2020-02-15T15:16:51Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3a3dd0820de331d560af954bf9d786c1256ec577'/>
<id>urn:sha1:3a3dd0820de331d560af954bf9d786c1256ec577</id>
<content type='text'>
Signed-off-by: Jan Beich &lt;jbeich@FreeBSD.org&gt;
</content>
</entry>
<entry>
<title>cursor: posix_fallocate may fail with EINVAL if not supported</title>
<updated>2020-02-23T20:42:54Z</updated>
<author>
<name>Jan Beich</name>
<email>jbeich@FreeBSD.org</email>
</author>
<published>2020-02-15T15:15:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1283d54dac97216fb7bf099b864a6728043e2d8d'/>
<id>urn:sha1:1283d54dac97216fb7bf099b864a6728043e2d8d</id>
<content type='text'>
ZFS on FreeBSD &gt;= 12.0 returns EINVAL, see
https://svnweb.freebsd.org/changeset/base/325320

Signed-off-by: Jan Beich &lt;jbeich@FreeBSD.org&gt;
</content>
</entry>
<entry>
<title>os: fallback for unsupported posix_fallocate</title>
<updated>2020-01-23T20:32:59Z</updated>
<author>
<name>Ihor Antonov</name>
<email>ihor@antonovs.family</email>
</author>
<published>2020-01-18T05:13:12Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8e2199644e4fc34ebf46ea65b7598517eaa69f18'/>
<id>urn:sha1:8e2199644e4fc34ebf46ea65b7598517eaa69f18</id>
<content type='text'>
Some filesystems do not support fallocate and return EOPNOTSUPP.

On musl-based distros libwayland-cursor exits abruptly which causes the
application to crash. Unlike glibc, musl does not provide a fallback
mechanism for handling unsupported fallocate. Instead, musl developers
argue that application should handle the case of unsupported system
call.

This commit allows falback to ftruncate in case when EOPNOTSUPP
was recieved.

Signed-off-by: Ihor Antonov &lt;ihor@antonovs.family&gt;
</content>
</entry>
<entry>
<title>Add Meson build</title>
<updated>2020-01-10T22:44:38Z</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2018-04-23T13:29:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=60acba6e0f13741a66f414cb9ac2e44e6048403b'/>
<id>urn:sha1:60acba6e0f13741a66f414cb9ac2e44e6048403b</id>
<content type='text'>
Meson is a next generation build system, simpler than Autotools and also faster
and more portable. Most importantly, it will make integrating ASan easier in
CI.

The goal is to maintain feature parity of the Meson build with the
Autotools build, until such time when we can drop the latter.

Add a script which generates the desired Doxygen configuration for our various
output formats and executes it using that configuration. This is not something
Meson can or should do.

Fixes: https://gitlab.freedesktop.org/wayland/wayland/issues/80

[daniels: Changed to bump version, use GitLab issues URL, remove header
          checks not used in any code, remove pre-pkg-config Expat
	  support, added missing include paths to wayland-egl and
	  cpp-compile-test, added GitLab CI.
	  Bumped version, removed unnecessary pkg-config paths.]

[daniels: Properly install into mandir/man3 via some gross
          paramaterisation, generate real stamp files.]

Pekka:
- squashed patches
- removed MAKEFLAGS from meson CI
- remove unused PACKAGE* defines
- fix up scanner dependency handling
- instead of host_scanner option, build wayland-scanner twice when cross-compiling
- changed .pc files to match more closely the autotools versions
- reorder doxygen man sources to reduce diff to autotools
- fix pkgconfig.generate syntax warnings (new in Meson)
- bump meson version to 0.47 for configure_file(copy) and run_command(check)
- move doc tool checks into doc/meson.build, needed in more places
- make all doc tools mandatory if building docs
- check dot and doxygen versions
- add build files under doc/publican
- reindent to match Weston Meson style

Simon:
- Remove install arg from configure_file
- Don't build wayland-scanner twice during cross-build
- Fix naming of the threads dependency
- Store tests in dict
- Add missing HAVE_* decls for functions
- Remove unused cc_native variable
- Make doxygen targets a dict
- Make dot_gv a dict
- Use dicts in man_pages
- Make decls use dicts
- Make generated_headers use dicts
- Align Meson version number with autotool's

Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.com&gt;
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: Use memfd_create() when available</title>
<updated>2019-07-21T09:06:43Z</updated>
<author>
<name>Emmanuel Gil Peyrot</name>
<email>linkmauve@linkmauve.fr</email>
</author>
<published>2019-02-16T15:06:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6908c8c85a2e33e5654f64a55cd4f847bf385cae'/>
<id>urn:sha1:6908c8c85a2e33e5654f64a55cd4f847bf385cae</id>
<content type='text'>
This (so-far) Linux-only API lets users create file descriptors purely
in memory, without any backing file on the filesystem and the race
condition which could ensue when unlink()ing it.

It also allows seals to be placed on the file, ensuring to every other
process that we won’t be allowed to shrink the contents, potentially
causing a SIGBUS when they try reading it.

This patch is best viewed with the -w option of git log -p.

Signed-off-by: Emmanuel Gil Peyrot &lt;linkmauve@linkmauve.fr&gt;
Reviewed-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>cursor: add forward declaration for struct wl_buffer</title>
<updated>2017-12-04T19:45:38Z</updated>
<author>
<name>Emil Velikov</name>
<email>emil.velikov@collabora.com</email>
</author>
<published>2017-10-12T12:39:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2f392daadbf27fbd91907e27c3333af41ca15765'/>
<id>urn:sha1:2f392daadbf27fbd91907e27c3333af41ca15765</id>
<content type='text'>
This makes the header self-contained, since the struct is considered
opaque from waylad-cursor POV.

As we're here move the wl_shm fwd. declaration alongside the others.
Making it easier to read and track.

Signed-off-by: Emil Velikov &lt;emil.velikov@collabora.com&gt;
Reviewed-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
</content>
</entry>
<entry>
<title>cursor: Fix heap overflows when parsing malicious files.</title>
<updated>2017-11-29T07:45:10Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2017-11-28T20:38:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5d201df72f3d4f4cb8b8f75f980169b03507da38'/>
<id>urn:sha1:5d201df72f3d4f4cb8b8f75f980169b03507da38</id>
<content type='text'>
It is possible to trigger heap overflows due to an integer overflow
while parsing images.

The integer overflow occurs because the chosen limit 0x10000 for
dimensions is too large for 32 bit systems, because each pixel takes
4 bytes. Properly chosen values allow an overflow which in turn will
lead to less allocated memory than needed for subsequent reads.

See also: https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=103961

Signed-off-by: Tobias Stoeckmann &lt;tobias@stoeckmann.org&gt;
[Pekka: add link to the corresponding libXcursor commit]
Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>cursor: Remove "weston" from anonymous shm filenames</title>
<updated>2016-11-21T09:58:25Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2016-07-27T16:06:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5c48aac33b191b30f36e777be836441e211166b6'/>
<id>urn:sha1:5c48aac33b191b30f36e777be836441e211166b6</id>
<content type='text'>
This mildly confused me during some debugging, so I guess it wouldn't
hurt to make the filename more indicative of where it was actually
created.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
Reviewed-by: Giulio Camuffo &lt;giuliocamuffo@gmail.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>(multiple): Include stdint.h</title>
<updated>2016-07-26T01:39:32Z</updated>
<author>
<name>Yong Bakos</name>
<email>ybakos@humanoriented.com</email>
</author>
<published>2016-07-18T17:42:25Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2b1c1b2d66945c5cb237a7264759b6dbdf42b02a'/>
<id>urn:sha1:2b1c1b2d66945c5cb237a7264759b6dbdf42b02a</id>
<content type='text'>
Some headers and source files have been using types such as uint32_t
without explicitly including stdint.h.

Explicitly include stdint.h where appropriate.

Signed-off-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
Reviewed-by: Eric Engestrom &lt;eric.engestrom@imgtec.com&gt;
</content>
</entry>
<entry>
<title>cursor: Update printed license from MIT "X11" to MIT "Expat"</title>
<updated>2015-06-22T11:50:20Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2015-06-12T23:44:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a8a86010a660ec157b91a689763f2f66406f6e21'/>
<id>urn:sha1:a8a86010a660ec157b91a689763f2f66406f6e21</id>
<content type='text'>
The code generates a cursor-data.h file, with licensing information.
Change this from the MIT "X11" license to MIT "Expat" license for
consistency with the rest of Wayland.

Signed-off-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>xcursor: Change keithp licensed code from X11 to Expat license</title>
<updated>2015-06-12T22:51:38Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2015-06-10T18:36:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1faeb7ff4894be9649d042103178ce22693cd6d1'/>
<id>urn:sha1:1faeb7ff4894be9649d042103178ce22693cd6d1</id>
<content type='text'>
The license text for this file mentions Keith Packard specifically,
however it is otherwise identical to all the other MIT X11 licensed code
in Wayland, and so can be changed to the substantially identical MIT
Expat license.

Signed-off-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Acked-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>cursor-data.h: Change SuSE licensed code from X11 to Expat</title>
<updated>2015-06-12T22:51:38Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2015-06-10T18:27:29Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c78a0a62c6246ed9398a7f277cac02d3d55bc6f0'/>
<id>urn:sha1:c78a0a62c6246ed9398a7f277cac02d3d55bc6f0</id>
<content type='text'>
The license text for this file mentions SuSE specifically, however it is
otherwise identical to all the other MIT X11 licensed code in Wayland,
and so can be changed to the substantially identical MIT Expat license.

Signed-off-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Acked-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>cursor: Update boilerplate from MIT X11 license to MIT Expat license</title>
<updated>2015-06-12T22:51:38Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2015-06-10T18:03:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3540ea2b9fc3c2f244cf62d82b7d31d4223044c9'/>
<id>urn:sha1:3540ea2b9fc3c2f244cf62d82b7d31d4223044c9</id>
<content type='text'>
Signed-off-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>remove trailing whitespaces</title>
<updated>2015-05-15T20:10:15Z</updated>
<author>
<name>Michael Vetter</name>
<email>g.bluehut@googlemail.com</email>
</author>
<published>2015-05-15T15:12:41Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b409c919a28ffe9f72ec15156d91af0ab17a196e'/>
<id>urn:sha1:b409c919a28ffe9f72ec15156d91af0ab17a196e</id>
<content type='text'>
Remove trailing whitespaces because they are not needed and jumping to
the end of al ine should do just that and not jump to the whitespace.
</content>
</entry>
<entry>
<title>cursor: free the array from which images are linked</title>
<updated>2015-03-18T23:01:19Z</updated>
<author>
<name>Emmanuel Gil Peyrot</name>
<email>linkmauve@linkmauve.fr</email>
</author>
<published>2015-03-18T00:53:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c770b8465851862b293b91d9d115a2cccadb807c'/>
<id>urn:sha1:c770b8465851862b293b91d9d115a2cccadb807c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cursor: add wl_cursor_frame_and_duration</title>
<updated>2015-03-05T07:39:44Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2015-03-04T20:30:41Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4908bf0d0f49c766a814eefb31534561da9e8d6e'/>
<id>urn:sha1:4908bf0d0f49c766a814eefb31534561da9e8d6e</id>
<content type='text'>
It's useful to know how long the current cursor frame should be displayed
so we can wait that long to change it.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>Add error handling for wl_cursors</title>
<updated>2014-04-01T23:47:04Z</updated>
<author>
<name>Hardening</name>
<email>rdp.effort@gmail.com</email>
</author>
<published>2014-03-18T10:29:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=256324773f9d890f25da54e0dec1a08a405156d9'/>
<id>urn:sha1:256324773f9d890f25da54e0dec1a08a405156d9</id>
<content type='text'>
This patch adds some error management in wayland cursors

Reviewed-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>build: Move cursor Makefile.am into toplevel Makefile.am</title>
<updated>2014-03-07T07:15:02Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-03-07T07:15:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=267b28887dffa47eeb79bb4d6e737979b6fc3cc3'/>
<id>urn:sha1:267b28887dffa47eeb79bb4d6e737979b6fc3cc3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>xcursor: don't proceed if XcursorImageCreate failed</title>
<updated>2014-01-15T18:46:09Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-01-10T22:43:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=02952d040cce73c167eaaafe94748a253cd74f02'/>
<id>urn:sha1:02952d040cce73c167eaaafe94748a253cd74f02</id>
<content type='text'>
Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>cursor: check for memory allocation errors</title>
<updated>2014-01-15T18:46:09Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-01-10T22:33:36Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d6c6f2977de84d54395def96e18a448ae68bf711'/>
<id>urn:sha1:d6c6f2977de84d54395def96e18a448ae68bf711</id>
<content type='text'>
Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>cursor: free theme-&gt;name too</title>
<updated>2014-01-15T18:46:09Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-01-10T21:49:44Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7d96da1e651a046e8f688da1aebf45e52aed9096'/>
<id>urn:sha1:7d96da1e651a046e8f688da1aebf45e52aed9096</id>
<content type='text'>
Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>cursor: handle running out of buffer space</title>
<updated>2013-12-03T00:19:45Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>pekka.paalanen@collabora.co.uk</email>
</author>
<published>2013-11-29T15:47:09Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3b3e81f42e0bf05e606f40ac0145977766283548'/>
<id>urn:sha1:3b3e81f42e0bf05e606f40ac0145977766283548</id>
<content type='text'>
If posix_fallocate is available, use it to detect when we are running
out of buffer space.

Propagate the failure properly through the various functions, stopping
loading cursors but keeping the cursors that were already successfully
loaded.

This may result in an animated cursor not having all of its images, or a
cursor theme not having all of its cursors. When that happens, the
failure is NOT communicated to the application. Instead, the application
will get NULL from wl_cursor_theme_get_cursor() for a cursor that was
not loaded successfully. If an animated cursor is missing only some
images, the animation is truncated but the cursor is still available.

This patch relies on the commit "os: use posix_fallocate in creating
sharable buffers" for defining HAVE_POSIX_FALLOCATE.

Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>os: use posix_fallocate in creating sharable buffers</title>
<updated>2013-12-03T00:18:59Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>pekka.paalanen@collabora.co.uk</email>
</author>
<published>2013-11-29T15:47:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=011b6954031a25de8d9eb39631b6837553bb3cfb'/>
<id>urn:sha1:011b6954031a25de8d9eb39631b6837553bb3cfb</id>
<content type='text'>
If posix_fallocate is available, use it instead of ftruncate. Unlike
ftruncate, when posix_fallocate succeeds, it guarantees that you cannot
run out of disk space, when later writing to the mmap()'ed file.

With posix_fallocate, if os_create_anonymous_file() succeeds, the
program cannot get a SIGBUS later from accessing this file via mmap. If
there is insufficient disk space, the function fails and errno is set to
ENOSPC.

This is useful on systems, that limit the available buffer space by
having XDG_RUNTIME_DIR on a small tmpfs.

Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>wayland: Be consistent about #include-guard names</title>
<updated>2013-10-21T21:39:06Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2013-10-21T21:39:06Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=deddea6549af5f9c4f700b0949c2cb6393edb1bb'/>
<id>urn:sha1:deddea6549af5f9c4f700b0949c2cb6393edb1bb</id>
<content type='text'>
We had a mix of inconsistent names, some of which were non-conformant.
Standardize on all-uppercase-and-underscore naming convention.

https://bugs.freedesktop.org/show_bug.cgi?id=70679
</content>
</entry>
<entry>
<title>pkgconfig: Use configure provided directories</title>
<updated>2012-11-28T01:35:50Z</updated>
<author>
<name>Quentin Glidic</name>
<email>sardemff7+git@sardemff7.net</email>
</author>
<published>2012-11-27T21:35:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=92ca1a0e800cf85e42699774b141ac5204d0f7c8'/>
<id>urn:sha1:92ca1a0e800cf85e42699774b141ac5204d0f7c8</id>
<content type='text'>
https://bugs.freedesktop.org/show_bug.cgi?id=57630
</content>
</entry>
<entry>
<title>Move ARRAY_LENGTH out of public headers</title>
<updated>2012-10-19T21:08:38Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2012-10-19T21:08:38Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=bdd272f024744b4ed5ba6daedef7eb023bcac7cb'/>
<id>urn:sha1:bdd272f024744b4ed5ba6daedef7eb023bcac7cb</id>
<content type='text'>
Exporting unprefixed symbols is a pretty bad idea so don't do that.
Instea of redefining it WL_ARRAY_LENGTH, we just move the define to
our private header.  The scanner generates code that uses ARRAY_LENGTH,
but we can just make it count the number elements and emit an integer
constant instead.
</content>
</entry>
<entry>
<title>Ensure cursor_data.c is included in distribution tarballs</title>
<updated>2012-10-10T03:42:52Z</updated>
<author>
<name>Matt Roper</name>
<email>matthew.d.roper@intel.com</email>
</author>
<published>2012-10-04T21:27:39Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0371668dcca5aa29c0fc4b59b974e40bcf073563'/>
<id>urn:sha1:0371668dcca5aa29c0fc4b59b974e40bcf073563</id>
<content type='text'>
Signed-off-by: Matt Roper &lt;matthew.d.roper@intel.com&gt;
</content>
</entry>
<entry>
<title>xcursor: Fix allocation based on string length</title>
<updated>2012-10-10T03:01:23Z</updated>
<author>
<name>Rob Bradford</name>
<email>rob@linux.intel.com</email>
</author>
<published>2012-10-09T17:46:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=020170877332f828aaf639ebe5c56d3ff6444511'/>
<id>urn:sha1:020170877332f828aaf639ebe5c56d3ff6444511</id>
<content type='text'>
strlen() doesn't include the terminating NUL. Therefore when allocating a
block of memory to hold something equivalent to the length of the string we
must increment to take the NUL byte into consideration.

Signed-off-by: Rob Bradford &lt;rob@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>cursor: add cursor.pcf and extraction program</title>
<updated>2012-09-11T01:05:14Z</updated>
<author>
<name>Philipp Brüschweiler</name>
<email>blei42@gmail.com</email>
</author>
<published>2012-09-06T16:54:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7fafa994a42e3d8455afbd8d6ba39047b7c1f13d'/>
<id>urn:sha1:7fafa994a42e3d8455afbd8d6ba39047b7c1f13d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cursor: Add a default cursor theme</title>
<updated>2012-09-11T01:04:55Z</updated>
<author>
<name>Philipp Brüschweiler</name>
<email>blei42@gmail.com</email>
</author>
<published>2012-09-06T16:54:01Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9ce9336c5704510a3f5a57ef377870764217f2ec'/>
<id>urn:sha1:9ce9336c5704510a3f5a57ef377870764217f2ec</id>
<content type='text'>
This theme is loaded when the specified cursor theme can not be found.

These cursors are extracted from the xorg sources and transformed into
raw ARGB data by a small helper program (commited separately).
</content>
</entry>
<entry>
<title>Add support for X cursor themes.</title>
<updated>2012-08-13T15:02:56Z</updated>
<author>
<name>Christopher Michael</name>
<email>cpmichael1@comcast.net</email>
</author>
<published>2012-08-11T14:09:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b57694ca0e9dc7d2845ce9fb0ac9c4b0ebc940ce'/>
<id>urn:sha1:b57694ca0e9dc7d2845ce9fb0ac9c4b0ebc940ce</id>
<content type='text'>
This patch adds a few more directories to search for xcursor themes.

Along with the weston patch, this adds the ability to configure weston
to use an X11 cursor theme. Previously, wayland cursor would just look
in the icons and pixmaps directories for cursor images to load. This
adds the ability to also search in the x cursors directory.
</content>
</entry>
<entry>
<title>Don't skip the first directory entry when reading cursors.</title>
<updated>2012-07-27T02:04:32Z</updated>
<author>
<name>Dima Ryazanov</name>
<email>dima@gmail.com</email>
</author>
<published>2012-07-26T08:39:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=31c0258ff145c4a6524d3dd369dbf4643a5dc4b7'/>
<id>urn:sha1:31c0258ff145c4a6524d3dd369dbf4643a5dc4b7</id>
<content type='text'>
I end up missing the "bottom_right_corner" cursor.
</content>
</entry>
<entry>
<title>cursor: fix fd leak and a segfault</title>
<updated>2012-07-10T18:11:00Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>ppaalanen@gmail.com</email>
</author>
<published>2012-07-10T10:05:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=52e6dc71becf4ee7f473f8af79fd71f95b6889c0'/>
<id>urn:sha1:52e6dc71becf4ee7f473f8af79fd71f95b6889c0</id>
<content type='text'>
- don't leak fd in shm_pool_destroy()
- return NULL from wl_cursor_theme_load() if pool fails

Tha last one fixes a segfault, when shm_pool_create() has failed.

Signed-off-by: Pekka Paalanen &lt;ppaalanen@gmail.com&gt;
</content>
</entry>
<entry>
<title>cursor: use os_create_anonymous_file()</title>
<updated>2012-07-10T18:08:59Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>ppaalanen@gmail.com</email>
</author>
<published>2012-07-10T10:05:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a88a4386cbf5f3a627345f12683210c3b81b292b'/>
<id>urn:sha1:a88a4386cbf5f3a627345f12683210c3b81b292b</id>
<content type='text'>
Copy the implementation of os_create_anonymous_file() here from weston,
so we can use it instead of hardcoding a path to /tmp.

Signed-off-by: Pekka Paalanen &lt;ppaalanen@gmail.com&gt;
</content>
</entry>
</feed>
