(!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 <info@metux.net>
This commit is contained in:
		
							parent
							
								
									b9132f2fb5
								
							
						
					
					
						commit
						bf76a30fad
					
				|  | @ -0,0 +1,37 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | # SPDX-License-Identifier: MIT OR X11 | ||||||
|  | # | ||||||
|  | # Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net> | ||||||
|  | 
 | ||||||
|  | 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 <dix-config.h> | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #include <X11/X.h> | ||||||
|  | #include <X11/Xatom.h> | ||||||
|  | #include "misc.h" | ||||||
|  | #include "dix.h" | ||||||
|  | void | ||||||
|  | MakePredeclaredAtoms(void) | ||||||
|  | { | ||||||
|  | __END__ | ||||||
|  | 
 | ||||||
|  | ( grep '@' < "$INPUT" ) | ( while read l ; do do_line $l ; done ) >> "$OUTPUT" | ||||||
|  | 
 | ||||||
|  | echo "}" >> "$OUTPUT" | ||||||
							
								
								
									
										151
									
								
								dix/initatoms.c
								
								
								
								
							
							
						
						
									
										151
									
								
								dix/initatoms.c
								
								
								
								
							|  | @ -1,151 +0,0 @@ | ||||||
| /* THIS IS A GENERATED FILE
 |  | ||||||
|  * |  | ||||||
|  * Do not change!  Changing this file implies a protocol change! |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <dix-config.h> |  | ||||||
| 
 |  | ||||||
| #include <X11/X.h> |  | ||||||
| #include <X11/Xatom.h> |  | ||||||
| #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(); |  | ||||||
| } |  | ||||||
|  | @ -18,7 +18,6 @@ srcs_dix = [ | ||||||
|     'globals.c', |     'globals.c', | ||||||
|     'glyphcurs.c', |     'glyphcurs.c', | ||||||
|     'grabs.c', |     'grabs.c', | ||||||
|     'initatoms.c', |  | ||||||
|     'inpututils.c', |     'inpututils.c', | ||||||
|     'pixmap.c', |     'pixmap.c', | ||||||
|     'privates.c', |     'privates.c', | ||||||
|  | @ -36,6 +35,13 @@ srcs_dix = [ | ||||||
|     'window.c', |     'window.c', | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | atom_generator = generator( | ||||||
|  |     find_program('generate-atoms'), | ||||||
|  |     output: '@BASENAME@.c', | ||||||
|  |     arguments : ['@INPUT@', '@OUTPUT@']) | ||||||
|  | 
 | ||||||
|  | builtinatoms_src = atom_generator.process('BuiltInAtoms') | ||||||
|  | 
 | ||||||
| dtrace_src = [] | dtrace_src = [] | ||||||
| if with_dtrace | if with_dtrace | ||||||
|     dtrace_object = generator(dtrace, |     dtrace_object = generator(dtrace, | ||||||
|  | @ -49,7 +55,7 @@ endif | ||||||
| dtrace_dep = declare_dependency(sources: [dtrace_src, dtrace_hdr]) | dtrace_dep = declare_dependency(sources: [dtrace_src, dtrace_hdr]) | ||||||
| 
 | 
 | ||||||
| libxserver_dix = static_library('libxserver_dix', | libxserver_dix = static_library('libxserver_dix', | ||||||
|     srcs_dix, |     [ srcs_dix, builtinatoms_src ], | ||||||
|     include_directories: inc, |     include_directories: inc, | ||||||
|     dependencies: [ dtrace_dep, common_dep, ] |     dependencies: [ dtrace_dep, common_dep, ] | ||||||
| ) | ) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue