From 44e6558934e39d067550b8e5b25b2e75ba1bae73 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Wed, 4 Sep 2024 16:01:11 +0200 Subject: [PATCH] dix: generate MakePredeclaredAtoms() from BuiltInAtoms file This function probably been (half?) auto generated somewhere back in the dark ages (there're still remains of the former generator, which doesn't work anymore, and hasn't been updated for ages). It's been added to SCM with R6.6 baseline - and from that on manually maintained. Adding a little generator to create source from "BuiltInAtoms" file, directly in the build process. Signed-off-by: Enrico Weigelt, metux IT consult Part-of: --- dix/generate-atoms | 37 +++++++++++ dix/initatoms.c | 151 --------------------------------------------- dix/meson.build | 10 ++- 3 files changed, 45 insertions(+), 153 deletions(-) create mode 100755 dix/generate-atoms delete mode 100644 dix/initatoms.c diff --git a/dix/generate-atoms b/dix/generate-atoms new file mode 100755 index 000000000..86b1477a7 --- /dev/null +++ b/dix/generate-atoms @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: MIT OR X11 +# +# Copyright © 2024 Enrico Weigelt, metux IT consult + +INPUT="$1" +OUTPUT="$2" + +do_line() { + local name="$1" + [ "$2" != "@" ] && return 0 + echo " if (MakeAtom(\"$name\", ${#name}, 1) != XA_$name)" + echo " AtomError();" +} + +cat > "$OUTPUT" << __END__ +/* THIS IS A GENERATED FILE + * + * Do not change! Changing this file implies a protocol change! + */ + +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#include +#include +#include "misc.h" +#include "dix.h" +void +MakePredeclaredAtoms(void) +{ +__END__ + +( grep '@' < "$INPUT" ) | ( while read l ; do do_line $l ; done ) >> "$OUTPUT" + +echo "}" >> "$OUTPUT" diff --git a/dix/initatoms.c b/dix/initatoms.c deleted file mode 100644 index 931f03439..000000000 --- a/dix/initatoms.c +++ /dev/null @@ -1,151 +0,0 @@ -/* THIS IS A GENERATED FILE - * - * Do not change! Changing this file implies a protocol change! - */ - -#include - -#include -#include -#include "misc.h" -#include "dix.h" -void -MakePredeclaredAtoms(void) -{ - if (MakeAtom("PRIMARY", 7, 1) != XA_PRIMARY) - AtomError(); - if (MakeAtom("SECONDARY", 9, 1) != XA_SECONDARY) - AtomError(); - if (MakeAtom("ARC", 3, 1) != XA_ARC) - AtomError(); - if (MakeAtom("ATOM", 4, 1) != XA_ATOM) - AtomError(); - if (MakeAtom("BITMAP", 6, 1) != XA_BITMAP) - AtomError(); - if (MakeAtom("CARDINAL", 8, 1) != XA_CARDINAL) - AtomError(); - if (MakeAtom("COLORMAP", 8, 1) != XA_COLORMAP) - AtomError(); - if (MakeAtom("CURSOR", 6, 1) != XA_CURSOR) - AtomError(); - if (MakeAtom("CUT_BUFFER0", 11, 1) != XA_CUT_BUFFER0) - AtomError(); - if (MakeAtom("CUT_BUFFER1", 11, 1) != XA_CUT_BUFFER1) - AtomError(); - if (MakeAtom("CUT_BUFFER2", 11, 1) != XA_CUT_BUFFER2) - AtomError(); - if (MakeAtom("CUT_BUFFER3", 11, 1) != XA_CUT_BUFFER3) - AtomError(); - if (MakeAtom("CUT_BUFFER4", 11, 1) != XA_CUT_BUFFER4) - AtomError(); - if (MakeAtom("CUT_BUFFER5", 11, 1) != XA_CUT_BUFFER5) - AtomError(); - if (MakeAtom("CUT_BUFFER6", 11, 1) != XA_CUT_BUFFER6) - AtomError(); - if (MakeAtom("CUT_BUFFER7", 11, 1) != XA_CUT_BUFFER7) - AtomError(); - if (MakeAtom("DRAWABLE", 8, 1) != XA_DRAWABLE) - AtomError(); - if (MakeAtom("FONT", 4, 1) != XA_FONT) - AtomError(); - if (MakeAtom("INTEGER", 7, 1) != XA_INTEGER) - AtomError(); - if (MakeAtom("PIXMAP", 6, 1) != XA_PIXMAP) - AtomError(); - if (MakeAtom("POINT", 5, 1) != XA_POINT) - AtomError(); - if (MakeAtom("RECTANGLE", 9, 1) != XA_RECTANGLE) - AtomError(); - if (MakeAtom("RESOURCE_MANAGER", 16, 1) != XA_RESOURCE_MANAGER) - AtomError(); - if (MakeAtom("RGB_COLOR_MAP", 13, 1) != XA_RGB_COLOR_MAP) - AtomError(); - if (MakeAtom("RGB_BEST_MAP", 12, 1) != XA_RGB_BEST_MAP) - AtomError(); - if (MakeAtom("RGB_BLUE_MAP", 12, 1) != XA_RGB_BLUE_MAP) - AtomError(); - if (MakeAtom("RGB_DEFAULT_MAP", 15, 1) != XA_RGB_DEFAULT_MAP) - AtomError(); - if (MakeAtom("RGB_GRAY_MAP", 12, 1) != XA_RGB_GRAY_MAP) - AtomError(); - if (MakeAtom("RGB_GREEN_MAP", 13, 1) != XA_RGB_GREEN_MAP) - AtomError(); - if (MakeAtom("RGB_RED_MAP", 11, 1) != XA_RGB_RED_MAP) - AtomError(); - if (MakeAtom("STRING", 6, 1) != XA_STRING) - AtomError(); - if (MakeAtom("VISUALID", 8, 1) != XA_VISUALID) - AtomError(); - if (MakeAtom("WINDOW", 6, 1) != XA_WINDOW) - AtomError(); - if (MakeAtom("WM_COMMAND", 10, 1) != XA_WM_COMMAND) - AtomError(); - if (MakeAtom("WM_HINTS", 8, 1) != XA_WM_HINTS) - AtomError(); - if (MakeAtom("WM_CLIENT_MACHINE", 17, 1) != XA_WM_CLIENT_MACHINE) - AtomError(); - if (MakeAtom("WM_ICON_NAME", 12, 1) != XA_WM_ICON_NAME) - AtomError(); - if (MakeAtom("WM_ICON_SIZE", 12, 1) != XA_WM_ICON_SIZE) - AtomError(); - if (MakeAtom("WM_NAME", 7, 1) != XA_WM_NAME) - AtomError(); - if (MakeAtom("WM_NORMAL_HINTS", 15, 1) != XA_WM_NORMAL_HINTS) - AtomError(); - if (MakeAtom("WM_SIZE_HINTS", 13, 1) != XA_WM_SIZE_HINTS) - AtomError(); - if (MakeAtom("WM_ZOOM_HINTS", 13, 1) != XA_WM_ZOOM_HINTS) - AtomError(); - if (MakeAtom("MIN_SPACE", 9, 1) != XA_MIN_SPACE) - AtomError(); - if (MakeAtom("NORM_SPACE", 10, 1) != XA_NORM_SPACE) - AtomError(); - if (MakeAtom("MAX_SPACE", 9, 1) != XA_MAX_SPACE) - AtomError(); - if (MakeAtom("END_SPACE", 9, 1) != XA_END_SPACE) - AtomError(); - if (MakeAtom("SUPERSCRIPT_X", 13, 1) != XA_SUPERSCRIPT_X) - AtomError(); - if (MakeAtom("SUPERSCRIPT_Y", 13, 1) != XA_SUPERSCRIPT_Y) - AtomError(); - if (MakeAtom("SUBSCRIPT_X", 11, 1) != XA_SUBSCRIPT_X) - AtomError(); - if (MakeAtom("SUBSCRIPT_Y", 11, 1) != XA_SUBSCRIPT_Y) - AtomError(); - if (MakeAtom("UNDERLINE_POSITION", 18, 1) != XA_UNDERLINE_POSITION) - AtomError(); - if (MakeAtom("UNDERLINE_THICKNESS", 19, 1) != XA_UNDERLINE_THICKNESS) - AtomError(); - if (MakeAtom("STRIKEOUT_ASCENT", 16, 1) != XA_STRIKEOUT_ASCENT) - AtomError(); - if (MakeAtom("STRIKEOUT_DESCENT", 17, 1) != XA_STRIKEOUT_DESCENT) - AtomError(); - if (MakeAtom("ITALIC_ANGLE", 12, 1) != XA_ITALIC_ANGLE) - AtomError(); - if (MakeAtom("X_HEIGHT", 8, 1) != XA_X_HEIGHT) - AtomError(); - if (MakeAtom("QUAD_WIDTH", 10, 1) != XA_QUAD_WIDTH) - AtomError(); - if (MakeAtom("WEIGHT", 6, 1) != XA_WEIGHT) - AtomError(); - if (MakeAtom("POINT_SIZE", 10, 1) != XA_POINT_SIZE) - AtomError(); - if (MakeAtom("RESOLUTION", 10, 1) != XA_RESOLUTION) - AtomError(); - if (MakeAtom("COPYRIGHT", 9, 1) != XA_COPYRIGHT) - AtomError(); - if (MakeAtom("NOTICE", 6, 1) != XA_NOTICE) - AtomError(); - if (MakeAtom("FONT_NAME", 9, 1) != XA_FONT_NAME) - AtomError(); - if (MakeAtom("FAMILY_NAME", 11, 1) != XA_FAMILY_NAME) - AtomError(); - if (MakeAtom("FULL_NAME", 9, 1) != XA_FULL_NAME) - AtomError(); - if (MakeAtom("CAP_HEIGHT", 10, 1) != XA_CAP_HEIGHT) - AtomError(); - if (MakeAtom("WM_CLASS", 8, 1) != XA_WM_CLASS) - AtomError(); - if (MakeAtom("WM_TRANSIENT_FOR", 16, 1) != XA_WM_TRANSIENT_FOR) - AtomError(); -} diff --git a/dix/meson.build b/dix/meson.build index 0b5cfbf8f..aa0c908dc 100644 --- a/dix/meson.build +++ b/dix/meson.build @@ -18,7 +18,6 @@ srcs_dix = [ 'globals.c', 'glyphcurs.c', 'grabs.c', - 'initatoms.c', 'inpututils.c', 'pixmap.c', 'privates.c', @@ -35,6 +34,13 @@ srcs_dix = [ 'window.c', ] +atom_generator = generator( + find_program('generate-atoms'), + output: '@BASENAME@.c', + arguments : ['@INPUT@', '@OUTPUT@']) + +builtinatoms_src = atom_generator.process('BuiltInAtoms') + dtrace_src = [] if with_dtrace dtrace_object = generator(dtrace, @@ -48,7 +54,7 @@ endif dtrace_dep = declare_dependency(sources: [dtrace_src, dtrace_hdr]) libxserver_dix = static_library('libxserver_dix', - srcs_dix, + [ srcs_dix, builtinatoms_src ], include_directories: inc, dependencies: [ dtrace_dep, common_dep, ] )