From 8e87055bb53cbc7578351834a4d4b52ffd53f491 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 | 153 --------------------------------------------- dix/meson.build | 10 ++- 3 files changed, 45 insertions(+), 155 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 bcc38a0f1..000000000 --- a/dix/initatoms.c +++ /dev/null @@ -1,153 +0,0 @@ -/* 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) -{ - 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, ] )