From bf76a30fad0369041aab053700dae6dad6d29a6d Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Wed, 4 Sep 2024 16:01:11 +0200 Subject: [PATCH] (!1670) 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 --- 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..20687f157 --- /dev/null +++ b/dix/generate-atoms @@ -0,0 +1,37 @@ +#!/bin/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 1e542b715..a0185f743 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', @@ -36,6 +35,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, @@ -49,7 +55,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, ] )