My "./dev.sh build" failed with
Compiling kitty/screen.c ...
gcc -MMD -DNDEBUG -DPRIMARY_VERSION=4000 -DSECONDARY_VERSION=37 -DXT_VERSION="0.37.0" -I/home/johannes/git/kitty/dependencies/linux-amd64/include -Wextra -Wfloat-conversion -Wno-missing-field-initializers -Wall -Wstrict-prototypes -std=c11 -pedantic-errors -Werror -O3 -fwrapv -fstack-protector-strong -pipe -fvisibility=hidden -fno-plt -fPIC -D_FORTIFY_SOURCE=2 -flto -fcf-protection=full -march=native -mtune=native -pthread -I/home/johannes/git/kitty/dependencies/linux-amd64/include/libpng16 -I/home/johannes/git/kitty/dependencies/linux-amd64/include -I/home/johannes/git/kitty/dependencies/linux-amd64/include -I/home/johannes/git/kitty/dependencies/linux-amd64/include -I/home/johannes/git/kitty/dependencies/linux-amd64/include/freetype2 -I/home/johannes/git/kitty/dependencies/linux-amd64/include/libpng16 -I/usr/include/uuid -I/home/johannes/git/kitty/dependencies/linux-amd64/include/harfbuzz -I/home/johannes/git/kitty/dependencies/linux-amd64/include/freetype2 -I/home/johannes/git/kitty/dependencies/linux-amd64/include/libpng16 -I/home/johannes/git/kitty/dependencies/linux-amd64/include -I/home/johannes/git/kitty/dependencies/linux-amd64/include/python3.12 -c kitty/screen.c -o build/fast_data_types-kitty-screen.c.o
In file included from /home/johannes/git/kitty/dependencies/linux-amd64/include/python3.12/Python.h:12,
from kitty/data-types.h:11,
from kitty/text-cache.h:10,
from kitty/line.h:10,
from kitty/history.h:10,
from kitty/lineops.h:9,
from kitty/fonts.h:9,
from kitty/screen.c:19:
/home/johannes/git/kitty/dependencies/linux-amd64/include/python3.12/pyconfig.h:1875:9: error: "_POSIX_C_SOURCE" redefined
1875 | #define _POSIX_C_SOURCE 200809L
| ^~~~~~~~~~~~~~~
In file included from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdint.h:26,
from /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h:9,
from kitty/charsets.h:9,
from kitty/screen.c:17:
/usr/include/features.h:329:10: note: this is the location of the previous definition
329 | # define _POSIX_C_SOURCE 199506L
| ^~~~~~~~~~~~~~~
The following build command failed: /home/johannes/git/kitty/dependencies/linux-amd64/bin/python setup.py develop
exit status 1
[Python docs](https://docs.python.org/3/c-api/intro.html) say:
> Since Python may define some pre-processor definitions which affect
> the standard headers on some systems, you must include Python.h
> before any standard headers are included.
Make it so. Since data-types.h is already included first in a lot of
*.c and *.h files, let's use that one.
Also fix the includes in launcher.
This is similar to commit 8e84b2145 (Re-order includes for
"_POSIX_C_SOURCE", 2018-06-02).
Also add an explicit error for this case, to make the resolution more
obvious? Here's the error when I try to include <stdlib.h> in screen.c:
In file included from kitty/screen.c:14:
kitty/data-types.h:11:2: error: #error "Must include \"data-types.h\" before any system headers"
11 | #error "Must include \"data-types.h\" before any system headers"
| ^~~~~
In file included from /home/johannes/git/kitty/dependencies/linux-amd64/include/python3.12/Python.h:12,
from kitty/data-types.h:14:
/home/johannes/git/kitty/dependencies/linux-amd64/include/python3.12/pyconfig.h:1875:9: error: "_POSIX_C_SOURCE" redefined
1875 | #define _POSIX_C_SOURCE 200809L
| ^~~~~~~~~~~~~~~
In file included from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdlib.h:26,
from kitty/screen.c:13:
/usr/include/features.h:329:10: note: this is the location of the previous definition
329 | # define _POSIX_C_SOURCE 199506L
| ^~~~~~~~~~~~~~~
The following build command failed: /home/johannes/git/kitty/dependencies/linux-amd64/bin/python setup.py develop
exit status 1
Explicitly turn off in-band resize notifications if they were requested
as part of the loop. Kitty implicitly resets this mode when `XTRESTORE`
(`CSI ? r`) is seen, however some terminals implementing mode 2048
(eg foot and Ghostty) follow the xterm behavior of only restoring the
state of explicitly passed modes.
Some of the kittens have become very useful outside of just Kitty
(`show-key`, for example). Add an explicit reset of mode 2048 to support
the behavior of other terminal emulators.