From b3b81c8c2090cd49410960a021baf0d27fdd2ab3 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Fri, 3 Sep 2021 14:33:15 +0300 Subject: [PATCH] Drop DMX DDX It turns out xdmx currently crashes when any client attempts to use GL and it has been in such state for about 14 years. There was a patch to fix the problem [1] 4 years ago, but it never got merged. The last activity on any bugs referring to xdmx has been more than 4 years ago. Given such situation, I find it unlikely that anyone is still using xdmx and just having the code is a drain of resources. [1]: https://lists.x.org/archives/xorg-devel/2017-June/053919.html Signed-off-by: Povilas Kanapickas --- .appveyor.yml | 3 +- Makefile.am | 5 - configure.ac | 69 - hw/Makefile.am | 7 +- hw/dmx/.gitignore | 2 - hw/dmx/Makefile.am | 87 - hw/dmx/config/.gitignore | 7 - hw/dmx/config/Canvas.c | 165 -- hw/dmx/config/Canvas.h | 55 - hw/dmx/config/CanvasP.h | 65 - hw/dmx/config/Makefile.am | 68 - hw/dmx/config/TODO | 7 - hw/dmx/config/dmxcompat.c | 234 -- hw/dmx/config/dmxcompat.h | 44 - hw/dmx/config/dmxconfig.c | 560 ----- hw/dmx/config/dmxconfig.h | 61 - hw/dmx/config/dmxparse.c | 688 ------ hw/dmx/config/dmxparse.h | 291 --- hw/dmx/config/dmxprint.c | 532 ----- hw/dmx/config/dmxprint.h | 43 - hw/dmx/config/dmxtodmx.c | 51 - hw/dmx/config/man/Makefile.am | 2 - hw/dmx/config/man/dmxtodmx.man | 41 - hw/dmx/config/man/vdltodmx.man | 95 - hw/dmx/config/man/xdmxconfig.man | 63 - hw/dmx/config/meson.build | 82 - hw/dmx/config/parser.y | 227 -- hw/dmx/config/scanner.l | 187 -- hw/dmx/config/test-a.in | 1 - hw/dmx/config/test-a.out | 2 - hw/dmx/config/test-b.in | 1 - hw/dmx/config/test-b.out | 1 - hw/dmx/config/test-c.in | 1 - hw/dmx/config/test-c.out | 2 - hw/dmx/config/test-d.in | 1 - hw/dmx/config/test-d.out | 2 - hw/dmx/config/test-e.in | 1 - hw/dmx/config/test-e.out | 2 - hw/dmx/config/test-f.in | 2 - hw/dmx/config/test-f.out | Bin 69 -> 0 bytes hw/dmx/config/test-g.in | 4 - hw/dmx/config/test-g.out | 4 - hw/dmx/config/test-h.in | 7 - hw/dmx/config/test-h.out | 7 - hw/dmx/config/test-i.in | 3 - hw/dmx/config/test-i.out | 3 - hw/dmx/config/test-j.in | 13 - hw/dmx/config/test-j.out | 11 - hw/dmx/config/test-k.in | 3 - hw/dmx/config/test-k.out | 3 - hw/dmx/config/test-l.in | 12 - hw/dmx/config/test-l.out | 12 - hw/dmx/config/vdltodmx.c | 59 - hw/dmx/config/xdmxconfig.c | 1231 ---------- hw/dmx/dmx-config.h | 74 - hw/dmx/dmx.c | 1200 ---------- hw/dmx/dmx.h | 408 ---- hw/dmx/dmx_glxvisuals.c | 615 ----- hw/dmx/dmx_glxvisuals.h | 57 - hw/dmx/dmxcb.c | 229 -- hw/dmx/dmxcb.h | 53 - hw/dmx/dmxclient.h | 128 - hw/dmx/dmxcmap.c | 222 -- hw/dmx/dmxcmap.h | 65 - hw/dmx/dmxcursor.c | 1023 -------- hw/dmx/dmxcursor.h | 73 - hw/dmx/dmxdpms.c | 201 -- hw/dmx/dmxdpms.h | 43 - hw/dmx/dmxextension.c | 1702 ------------- hw/dmx/dmxextension.h | 115 - hw/dmx/dmxfont.c | 573 ----- hw/dmx/dmxfont.h | 57 - hw/dmx/dmxgc.c | 446 ---- hw/dmx/dmxgc.h | 85 - hw/dmx/dmxgcops.c | 637 ----- hw/dmx/dmxgcops.h | 95 - hw/dmx/dmxinit.c | 1050 -------- hw/dmx/dmxinit.h | 50 - hw/dmx/dmxinput.c | 121 - hw/dmx/dmxinput.h | 142 -- hw/dmx/dmxlog.c | 446 ---- hw/dmx/dmxlog.h | 81 - hw/dmx/dmxpict.c | 1277 ---------- hw/dmx/dmxpict.h | 116 - hw/dmx/dmxpixmap.c | 262 -- hw/dmx/dmxpixmap.h | 63 - hw/dmx/dmxprop.c | 375 --- hw/dmx/dmxprop.h | 45 - hw/dmx/dmxscrinit.c | 485 ---- hw/dmx/dmxscrinit.h | 48 - hw/dmx/dmxstat.c | 238 -- hw/dmx/dmxstat.h | 55 - hw/dmx/dmxsync.c | 207 -- hw/dmx/dmxsync.h | 43 - hw/dmx/dmxvisual.c | 146 -- hw/dmx/dmxvisual.h | 47 - hw/dmx/dmxwindow.c | 1044 -------- hw/dmx/dmxwindow.h | 131 - hw/dmx/doc/.gitignore | 6 - hw/dmx/doc/DMXSpec-v1.txt | 458 ---- hw/dmx/doc/DMXSpec.txt | 875 ------- hw/dmx/doc/Makefile.am | 34 - hw/dmx/doc/dmx.xml | 3402 -------------------------- hw/dmx/doc/meson.build | 37 - hw/dmx/doc/scaled.xml | 727 ------ hw/dmx/doxygen/.gitignore | 2 - hw/dmx/doxygen/Makefile.am | 36 - hw/dmx/doxygen/doxygen.conf.in | 2400 ------------------- hw/dmx/doxygen/footer.html | 4 - hw/dmx/examples/.gitignore | 17 - hw/dmx/examples/Makefile.am | 70 - hw/dmx/examples/dmxaddinput.c | 85 - hw/dmx/examples/dmxaddscreen.c | 106 - hw/dmx/examples/dmxinfo.c | 256 -- hw/dmx/examples/dmxreconfig.c | 161 -- hw/dmx/examples/dmxresize.c | 103 - hw/dmx/examples/dmxrminput.c | 79 - hw/dmx/examples/dmxrmscreen.c | 81 - hw/dmx/examples/dmxwininfo.c | 477 ---- hw/dmx/examples/ev.c | 274 --- hw/dmx/examples/evi.c | 87 - hw/dmx/examples/meson.build | 53 - hw/dmx/examples/res.c | 101 - hw/dmx/examples/xbell.c | 108 - hw/dmx/examples/xinput.c | 355 --- hw/dmx/examples/xled.c | 126 - hw/dmx/examples/xtest.c | 77 - hw/dmx/glxProxy/Makefile.am | 42 - hw/dmx/glxProxy/compsize.c | 641 ----- hw/dmx/glxProxy/compsize.h | 58 - hw/dmx/glxProxy/g_disptab.c | 610 ----- hw/dmx/glxProxy/g_disptab.h | 699 ------ hw/dmx/glxProxy/g_renderswap.c | 2663 --------------------- hw/dmx/glxProxy/global.c | 70 - hw/dmx/glxProxy/glxcmds.c | 3846 ------------------------------ hw/dmx/glxProxy/glxcmds.h | 43 - hw/dmx/glxProxy/glxcmdsswap.c | 1157 --------- hw/dmx/glxProxy/glxcontext.h | 109 - hw/dmx/glxProxy/glxdrawable.h | 65 - hw/dmx/glxProxy/glxerror.h | 51 - hw/dmx/glxProxy/glxext.c | 497 ---- hw/dmx/glxProxy/glxext.h | 70 - hw/dmx/glxProxy/glxfbconfig.c | 106 - hw/dmx/glxProxy/glxfbconfig.h | 39 - hw/dmx/glxProxy/glxscreens.c | 340 --- hw/dmx/glxProxy/glxscreens.h | 53 - hw/dmx/glxProxy/glxserver.h | 292 --- hw/dmx/glxProxy/glxsingle.c | 1067 --------- hw/dmx/glxProxy/glxsingle.h | 50 - hw/dmx/glxProxy/glxswap.c | 560 ----- hw/dmx/glxProxy/glxswap.h | 46 - hw/dmx/glxProxy/glxutil.h | 39 - hw/dmx/glxProxy/glxvendor.c | 618 ----- hw/dmx/glxProxy/glxvendor.h | 53 - hw/dmx/glxProxy/glxvisuals.c | 158 -- hw/dmx/glxProxy/glxvisuals.h | 46 - hw/dmx/glxProxy/meson.build | 27 - hw/dmx/glxProxy/render2swap.c | 283 --- hw/dmx/glxProxy/renderpixswap.c | 403 ---- hw/dmx/glxProxy/unpack.h | 223 -- hw/dmx/input/ChkNotMaskEv.c | 106 - hw/dmx/input/ChkNotMaskEv.h | 40 - hw/dmx/input/Makefile.am | 56 - hw/dmx/input/atKeynames.h | 292 --- hw/dmx/input/dmxarg.c | 177 -- hw/dmx/input/dmxarg.h | 49 - hw/dmx/input/dmxbackend.c | 661 ----- hw/dmx/input/dmxbackend.h | 56 - hw/dmx/input/dmxcommon.c | 702 ------ hw/dmx/input/dmxcommon.h | 124 - hw/dmx/input/dmxconsole.c | 1090 --------- hw/dmx/input/dmxconsole.h | 59 - hw/dmx/input/dmxdetach.c | 60 - hw/dmx/input/dmxdummy.c | 88 - hw/dmx/input/dmxdummy.h | 43 - hw/dmx/input/dmxevents.c | 826 ------- hw/dmx/input/dmxevents.h | 46 - hw/dmx/input/dmxinputinit.c | 1350 ----------- hw/dmx/input/dmxinputinit.h | 284 --- hw/dmx/input/dmxmap.c | 127 - hw/dmx/input/dmxmap.h | 42 - hw/dmx/input/dmxmotion.c | 148 -- hw/dmx/input/dmxmotion.h | 48 - hw/dmx/input/dmxxinput.c | 75 - hw/dmx/input/meson.build | 32 - hw/dmx/input/usb-common.c | 492 ---- hw/dmx/input/usb-common.h | 54 - hw/dmx/input/usb-keyboard.c | 478 ---- hw/dmx/input/usb-keyboard.h | 47 - hw/dmx/input/usb-mouse.c | 133 -- hw/dmx/input/usb-mouse.h | 47 - hw/dmx/input/usb-other.c | 166 -- hw/dmx/input/usb-other.h | 47 - hw/dmx/input/usb-private.h | 117 - hw/dmx/man/Makefile.am | 2 - hw/dmx/man/Xdmx.man | 732 ------ hw/dmx/meson.build | 92 - hw/meson.build | 4 - man/Xserver.man | 2 +- meson_options.txt | 2 - 200 files changed, 3 insertions(+), 54316 deletions(-) delete mode 100644 hw/dmx/.gitignore delete mode 100644 hw/dmx/Makefile.am delete mode 100644 hw/dmx/config/.gitignore delete mode 100644 hw/dmx/config/Canvas.c delete mode 100644 hw/dmx/config/Canvas.h delete mode 100644 hw/dmx/config/CanvasP.h delete mode 100644 hw/dmx/config/Makefile.am delete mode 100644 hw/dmx/config/TODO delete mode 100644 hw/dmx/config/dmxcompat.c delete mode 100644 hw/dmx/config/dmxcompat.h delete mode 100644 hw/dmx/config/dmxconfig.c delete mode 100644 hw/dmx/config/dmxconfig.h delete mode 100644 hw/dmx/config/dmxparse.c delete mode 100644 hw/dmx/config/dmxparse.h delete mode 100644 hw/dmx/config/dmxprint.c delete mode 100644 hw/dmx/config/dmxprint.h delete mode 100644 hw/dmx/config/dmxtodmx.c delete mode 100644 hw/dmx/config/man/Makefile.am delete mode 100644 hw/dmx/config/man/dmxtodmx.man delete mode 100644 hw/dmx/config/man/vdltodmx.man delete mode 100644 hw/dmx/config/man/xdmxconfig.man delete mode 100644 hw/dmx/config/meson.build delete mode 100644 hw/dmx/config/parser.y delete mode 100644 hw/dmx/config/scanner.l delete mode 100644 hw/dmx/config/test-a.in delete mode 100644 hw/dmx/config/test-a.out delete mode 100644 hw/dmx/config/test-b.in delete mode 100644 hw/dmx/config/test-b.out delete mode 100644 hw/dmx/config/test-c.in delete mode 100644 hw/dmx/config/test-c.out delete mode 100644 hw/dmx/config/test-d.in delete mode 100644 hw/dmx/config/test-d.out delete mode 100644 hw/dmx/config/test-e.in delete mode 100644 hw/dmx/config/test-e.out delete mode 100644 hw/dmx/config/test-f.in delete mode 100644 hw/dmx/config/test-f.out delete mode 100644 hw/dmx/config/test-g.in delete mode 100644 hw/dmx/config/test-g.out delete mode 100644 hw/dmx/config/test-h.in delete mode 100644 hw/dmx/config/test-h.out delete mode 100644 hw/dmx/config/test-i.in delete mode 100644 hw/dmx/config/test-i.out delete mode 100644 hw/dmx/config/test-j.in delete mode 100644 hw/dmx/config/test-j.out delete mode 100644 hw/dmx/config/test-k.in delete mode 100644 hw/dmx/config/test-k.out delete mode 100644 hw/dmx/config/test-l.in delete mode 100644 hw/dmx/config/test-l.out delete mode 100644 hw/dmx/config/vdltodmx.c delete mode 100644 hw/dmx/config/xdmxconfig.c delete mode 100644 hw/dmx/dmx-config.h delete mode 100644 hw/dmx/dmx.c delete mode 100644 hw/dmx/dmx.h delete mode 100644 hw/dmx/dmx_glxvisuals.c delete mode 100644 hw/dmx/dmx_glxvisuals.h delete mode 100644 hw/dmx/dmxcb.c delete mode 100644 hw/dmx/dmxcb.h delete mode 100644 hw/dmx/dmxclient.h delete mode 100644 hw/dmx/dmxcmap.c delete mode 100644 hw/dmx/dmxcmap.h delete mode 100644 hw/dmx/dmxcursor.c delete mode 100644 hw/dmx/dmxcursor.h delete mode 100644 hw/dmx/dmxdpms.c delete mode 100644 hw/dmx/dmxdpms.h delete mode 100644 hw/dmx/dmxextension.c delete mode 100644 hw/dmx/dmxextension.h delete mode 100644 hw/dmx/dmxfont.c delete mode 100644 hw/dmx/dmxfont.h delete mode 100644 hw/dmx/dmxgc.c delete mode 100644 hw/dmx/dmxgc.h delete mode 100644 hw/dmx/dmxgcops.c delete mode 100644 hw/dmx/dmxgcops.h delete mode 100644 hw/dmx/dmxinit.c delete mode 100644 hw/dmx/dmxinit.h delete mode 100644 hw/dmx/dmxinput.c delete mode 100644 hw/dmx/dmxinput.h delete mode 100644 hw/dmx/dmxlog.c delete mode 100644 hw/dmx/dmxlog.h delete mode 100644 hw/dmx/dmxpict.c delete mode 100644 hw/dmx/dmxpict.h delete mode 100644 hw/dmx/dmxpixmap.c delete mode 100644 hw/dmx/dmxpixmap.h delete mode 100644 hw/dmx/dmxprop.c delete mode 100644 hw/dmx/dmxprop.h delete mode 100644 hw/dmx/dmxscrinit.c delete mode 100644 hw/dmx/dmxscrinit.h delete mode 100644 hw/dmx/dmxstat.c delete mode 100644 hw/dmx/dmxstat.h delete mode 100644 hw/dmx/dmxsync.c delete mode 100644 hw/dmx/dmxsync.h delete mode 100644 hw/dmx/dmxvisual.c delete mode 100644 hw/dmx/dmxvisual.h delete mode 100644 hw/dmx/dmxwindow.c delete mode 100644 hw/dmx/dmxwindow.h delete mode 100644 hw/dmx/doc/.gitignore delete mode 100644 hw/dmx/doc/DMXSpec-v1.txt delete mode 100644 hw/dmx/doc/DMXSpec.txt delete mode 100644 hw/dmx/doc/Makefile.am delete mode 100644 hw/dmx/doc/dmx.xml delete mode 100644 hw/dmx/doc/meson.build delete mode 100644 hw/dmx/doc/scaled.xml delete mode 100644 hw/dmx/doxygen/.gitignore delete mode 100644 hw/dmx/doxygen/Makefile.am delete mode 100644 hw/dmx/doxygen/doxygen.conf.in delete mode 100644 hw/dmx/doxygen/footer.html delete mode 100644 hw/dmx/examples/.gitignore delete mode 100644 hw/dmx/examples/Makefile.am delete mode 100644 hw/dmx/examples/dmxaddinput.c delete mode 100644 hw/dmx/examples/dmxaddscreen.c delete mode 100644 hw/dmx/examples/dmxinfo.c delete mode 100644 hw/dmx/examples/dmxreconfig.c delete mode 100644 hw/dmx/examples/dmxresize.c delete mode 100644 hw/dmx/examples/dmxrminput.c delete mode 100644 hw/dmx/examples/dmxrmscreen.c delete mode 100644 hw/dmx/examples/dmxwininfo.c delete mode 100644 hw/dmx/examples/ev.c delete mode 100644 hw/dmx/examples/evi.c delete mode 100644 hw/dmx/examples/meson.build delete mode 100644 hw/dmx/examples/res.c delete mode 100644 hw/dmx/examples/xbell.c delete mode 100644 hw/dmx/examples/xinput.c delete mode 100644 hw/dmx/examples/xled.c delete mode 100644 hw/dmx/examples/xtest.c delete mode 100644 hw/dmx/glxProxy/Makefile.am delete mode 100644 hw/dmx/glxProxy/compsize.c delete mode 100644 hw/dmx/glxProxy/compsize.h delete mode 100644 hw/dmx/glxProxy/g_disptab.c delete mode 100644 hw/dmx/glxProxy/g_disptab.h delete mode 100644 hw/dmx/glxProxy/g_renderswap.c delete mode 100644 hw/dmx/glxProxy/global.c delete mode 100644 hw/dmx/glxProxy/glxcmds.c delete mode 100644 hw/dmx/glxProxy/glxcmds.h delete mode 100644 hw/dmx/glxProxy/glxcmdsswap.c delete mode 100644 hw/dmx/glxProxy/glxcontext.h delete mode 100644 hw/dmx/glxProxy/glxdrawable.h delete mode 100644 hw/dmx/glxProxy/glxerror.h delete mode 100644 hw/dmx/glxProxy/glxext.c delete mode 100644 hw/dmx/glxProxy/glxext.h delete mode 100644 hw/dmx/glxProxy/glxfbconfig.c delete mode 100644 hw/dmx/glxProxy/glxfbconfig.h delete mode 100644 hw/dmx/glxProxy/glxscreens.c delete mode 100644 hw/dmx/glxProxy/glxscreens.h delete mode 100644 hw/dmx/glxProxy/glxserver.h delete mode 100644 hw/dmx/glxProxy/glxsingle.c delete mode 100644 hw/dmx/glxProxy/glxsingle.h delete mode 100644 hw/dmx/glxProxy/glxswap.c delete mode 100644 hw/dmx/glxProxy/glxswap.h delete mode 100644 hw/dmx/glxProxy/glxutil.h delete mode 100644 hw/dmx/glxProxy/glxvendor.c delete mode 100644 hw/dmx/glxProxy/glxvendor.h delete mode 100644 hw/dmx/glxProxy/glxvisuals.c delete mode 100644 hw/dmx/glxProxy/glxvisuals.h delete mode 100644 hw/dmx/glxProxy/meson.build delete mode 100644 hw/dmx/glxProxy/render2swap.c delete mode 100644 hw/dmx/glxProxy/renderpixswap.c delete mode 100644 hw/dmx/glxProxy/unpack.h delete mode 100644 hw/dmx/input/ChkNotMaskEv.c delete mode 100644 hw/dmx/input/ChkNotMaskEv.h delete mode 100644 hw/dmx/input/Makefile.am delete mode 100644 hw/dmx/input/atKeynames.h delete mode 100644 hw/dmx/input/dmxarg.c delete mode 100644 hw/dmx/input/dmxarg.h delete mode 100644 hw/dmx/input/dmxbackend.c delete mode 100644 hw/dmx/input/dmxbackend.h delete mode 100644 hw/dmx/input/dmxcommon.c delete mode 100644 hw/dmx/input/dmxcommon.h delete mode 100644 hw/dmx/input/dmxconsole.c delete mode 100644 hw/dmx/input/dmxconsole.h delete mode 100644 hw/dmx/input/dmxdetach.c delete mode 100644 hw/dmx/input/dmxdummy.c delete mode 100644 hw/dmx/input/dmxdummy.h delete mode 100644 hw/dmx/input/dmxevents.c delete mode 100644 hw/dmx/input/dmxevents.h delete mode 100644 hw/dmx/input/dmxinputinit.c delete mode 100644 hw/dmx/input/dmxinputinit.h delete mode 100644 hw/dmx/input/dmxmap.c delete mode 100644 hw/dmx/input/dmxmap.h delete mode 100644 hw/dmx/input/dmxmotion.c delete mode 100644 hw/dmx/input/dmxmotion.h delete mode 100644 hw/dmx/input/dmxxinput.c delete mode 100644 hw/dmx/input/meson.build delete mode 100644 hw/dmx/input/usb-common.c delete mode 100644 hw/dmx/input/usb-common.h delete mode 100644 hw/dmx/input/usb-keyboard.c delete mode 100644 hw/dmx/input/usb-keyboard.h delete mode 100644 hw/dmx/input/usb-mouse.c delete mode 100644 hw/dmx/input/usb-mouse.h delete mode 100644 hw/dmx/input/usb-other.c delete mode 100644 hw/dmx/input/usb-other.h delete mode 100644 hw/dmx/input/usb-private.h delete mode 100644 hw/dmx/man/Makefile.am delete mode 100644 hw/dmx/man/Xdmx.man delete mode 100644 hw/dmx/meson.build diff --git a/.appveyor.yml b/.appveyor.yml index b243ff43b..80032b867 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -29,7 +29,6 @@ pkg-config,\ python3,\ windowsdriproto,\ xorgproto,\ -libdmx-devel,\ libepoxy-devel,\ libfontenc-devel,\ libfreetype-devel,\ @@ -73,7 +72,7 @@ cache: - '%CYGWIN_ROOT%\home\%USERNAME%\.ccache' build_script: - SET PATH=%CYGWIN_ROOT%/bin -- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson setup --prefix=/usr -Dxv=false -Dxf86bigfont=true -Ddmx=true -Dxephyr=true -Dxnest=true -Dxvfb=true -Dxwin=true -Dxorg=true -Dhal=false -Dudev=false -Dpciaccess=false -Dint10=false build"' +- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson setup --prefix=/usr -Dxv=false -Dxf86bigfont=true -Dxephyr=true -Dxnest=true -Dxvfb=true -Dxwin=true -Dxorg=true -Dhal=false -Dudev=false -Dpciaccess=false -Dint10=false build"' - '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson configure build"' - '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; ninja -C build"' - '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; ccache -s"' diff --git a/Makefile.am b/Makefile.am index 575296509..abbea2856 100644 --- a/Makefile.am +++ b/Makefile.am @@ -152,11 +152,6 @@ EXTRA_DIST += \ fb/meson.build \ glamor/meson.build \ glx/meson.build \ - hw/dmx/config/meson.build \ - hw/dmx/examples/meson.build \ - hw/dmx/glxProxy/meson.build \ - hw/dmx/input/meson.build \ - hw/dmx/meson.build \ hw/kdrive/ephyr/meson.build \ hw/kdrive/meson.build \ hw/kdrive/src/meson.build \ diff --git a/configure.ac b/configure.ac index 264bbb9d6..09e7a06ef 100644 --- a/configure.ac +++ b/configure.ac @@ -572,7 +572,6 @@ AC_ARG_ENABLE(suid-wrapper, AS_HELP_STRING([--enable-suid-wrapper], [Build suid- dnl DDXes. AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) -AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (default: no)]), [DMX=$enableval], [DMX=no]) AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes]) AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto]) AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto]) @@ -721,7 +720,6 @@ XINERAMAPROTO="xineramaproto" BIGFONTPROTO="xf86bigfontproto >= 1.2.0" DGAPROTO="xf86dgaproto >= 2.0.99.1" GLPROTO="glproto >= 1.4.17" -DMXPROTO="dmxproto >= 2.2.99.1" VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1" APPLEWMPROTO="applewmproto >= 1.4" LIBXSHMFENCE="xshmfence >= 1.1" @@ -743,7 +741,6 @@ PRESENTPROTO="presentproto >= 1.2" dnl List of libraries that require a specific version LIBAPPLEWM="applewm >= 1.4" -LIBDMX="dmx >= 1.0.99.1" LIBDRI="dri >= 7.8.0" LIBDRM="libdrm >= 2.4.89" LIBEGL="egl" @@ -2180,62 +2177,6 @@ AM_CONDITIONAL(XQUARTZ, [test "x$XQUARTZ" = xyes]) AM_CONDITIONAL(XQUARTZ_SPARKLE, [test "x$XQUARTZ_SPARKLE" != "xno"]) AM_CONDITIONAL(STANDALONE_XPBPROXY, [test "x$STANDALONE_XPBPROXY" = xyes]) -dnl DMX DDX -PKG_CHECK_MODULES( - [DMXMODULES], - [xmuu $LIBXEXT x11 >= 1.6 xrender xfixes $LIBXI $DMXPROTO xau $XDMCP_MODULES], - [PKG_CHECK_MODULES( - [XDMXCONFIG_DEP], - [xaw7 xmu xt xpm x11], - [have_dmx=yes], - [have_dmx=no])], - [have_dmx=no]) -AC_MSG_CHECKING([whether to build Xdmx DDX]) -if test "x$DMX" = xauto; then - DMX="$have_dmx" - case $host_os in - cygwin*) DMX="no" ;; - mingw*) DMX="no" ;; - darwin*) DMX="no" ;; - esac -fi -AC_MSG_RESULT([$DMX]) -AM_CONDITIONAL(DMX, [test "x$DMX" = xyes]) - -if test "x$DMX" = xyes; then - if test "x$have_dmx" = xno; then - AC_MSG_ERROR([Xdmx build explicitly requested, but required - modules not found.]) - fi - DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC" - XDMX_CFLAGS="$DMXMODULES_CFLAGS" - XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $RENDER_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB" - XDMX_SYS_LIBS="$DMXMODULES_LIBS" - AC_SUBST([XDMX_CFLAGS]) - AC_SUBST([XDMX_LIBS]) - AC_SUBST([XDMX_SYS_LIBS]) - -dnl USB sources in DMX require - AC_CHECK_HEADER([linux/input.h], DMX_BUILD_USB="yes", - DMX_BUILD_USB="no") - AC_SUBST(XDMXCONFIG_DEP_CFLAGS) - AC_SUBST(XDMXCONFIG_DEP_LIBS) - PKG_CHECK_MODULES([DMXEXAMPLES_DEP], [$LIBDMX $LIBXEXT x11]) - AC_SUBST(DMXEXAMPLES_DEP_LIBS) - PKG_CHECK_MODULES([DMXXMUEXAMPLES_DEP], [$LIBDMX xmu $LIBXEXT x11]) - AC_SUBST(DMXXMUEXAMPLES_DEP_LIBS) - PKG_CHECK_MODULES([DMXXIEXAMPLES_DEP], [$LIBDMX $LIBXI $LIBXEXT x11]) - AC_SUBST(DMXXIEXAMPLES_DEP_LIBS) - PKG_CHECK_MODULES([XTSTEXAMPLES_DEP], [$LIBXTST $LIBXEXT x11]) - AC_SUBST(XTSTEXAMPLES_DEP_LIBS) - PKG_CHECK_MODULES([XRESEXAMPLES_DEP], [xres $LIBXEXT x11]) - AC_SUBST(XRESEXAMPLES_DEP_LIBS) - PKG_CHECK_MODULES([X11EXAMPLES_DEP], [$LIBXEXT x11]) - AC_SUBST(X11EXAMPLES_DEP_LIBS) - -fi -AM_CONDITIONAL([DMX_BUILD_USB], [test "x$DMX_BUILD_USB" = xyes]) - dnl kdrive DDX XEPHYR_LIBS= @@ -2489,16 +2430,6 @@ hw/xfree86/xkb/Makefile hw/xfree86/utils/Makefile hw/xfree86/utils/man/Makefile hw/xfree86/utils/gtf/Makefile -hw/dmx/config/Makefile -hw/dmx/config/man/Makefile -hw/dmx/doc/Makefile -hw/dmx/doxygen/doxygen.conf -hw/dmx/doxygen/Makefile -hw/dmx/examples/Makefile -hw/dmx/input/Makefile -hw/dmx/glxProxy/Makefile -hw/dmx/Makefile -hw/dmx/man/Makefile hw/vfb/Makefile hw/vfb/man/Makefile hw/xnest/Makefile diff --git a/hw/Makefile.am b/hw/Makefile.am index 19895dc77..006898bfb 100644 --- a/hw/Makefile.am +++ b/hw/Makefile.am @@ -1,7 +1,3 @@ -if DMX -DMX_SUBDIRS = dmx -endif - if XORG XORG_SUBDIRS = xfree86 endif @@ -35,12 +31,11 @@ SUBDIRS = \ $(XWIN_SUBDIRS) \ $(XVFB_SUBDIRS) \ $(XNEST_SUBDIRS) \ - $(DMX_SUBDIRS) \ $(KDRIVE_SUBDIRS) \ $(XQUARTZ_SUBDIRS) \ $(XWAYLAND_SUBDIRS) -DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland +DIST_SUBDIRS = xfree86 vfb xnest xwin xquartz kdrive xwayland relink: $(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done diff --git a/hw/dmx/.gitignore b/hw/dmx/.gitignore deleted file mode 100644 index 513ee3770..000000000 --- a/hw/dmx/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Add & Override for this directory and its subdirectories -Xdmx diff --git a/hw/dmx/Makefile.am b/hw/dmx/Makefile.am deleted file mode 100644 index fac1f1060..000000000 --- a/hw/dmx/Makefile.am +++ /dev/null @@ -1,87 +0,0 @@ - -SUBDIRS = input config examples doc doxygen man -bin_PROGRAMS = Xdmx - -if XINERAMA -PANORAMIX_SRCS = $(top_srcdir)/Xext/panoramiX.c -endif - -if GLX -SUBDIRS += glxProxy -GLX_LIBS = glxProxy/libglxproxy.a -GLX_SRCS = $(PANORAMIX_SRCS) dmx_glxvisuals.c dmx_glxvisuals.h -GLX_INCS = -I$(top_srcdir)/hw/xfree86/dixmods/extmod -GLX_DEFS = @GL_CFLAGS@ -endif - -AM_CFLAGS = \ - -DHAVE_DMX_CONFIG_H \ - $(DIX_CFLAGS) \ - $(GLX_INCS) \ - $(GLX_DEFS) \ - $(DMX_CFLAGS) \ - @DMXMODULES_CFLAGS@ - -Xdmx_SOURCES = dmx.c \ - dmxcb.c \ - dmxcb.h \ - dmxclient.h \ - dmxcmap.c \ - dmxcmap.h \ - dmx-config.h \ - dmxcursor.c \ - dmxcursor.h \ - dmxdpms.c \ - dmxdpms.h \ - dmxextension.c \ - dmxextension.h \ - dmxfont.c \ - dmxfont.h \ - dmxgc.c \ - dmxgc.h \ - dmxgcops.c \ - dmxgcops.h \ - dmx.h \ - dmxinit.c \ - dmxinit.h \ - dmxinput.c \ - dmxinput.h \ - dmxlog.c \ - dmxlog.h \ - dmxpict.c \ - dmxpict.h \ - dmxpixmap.c \ - dmxpixmap.h \ - dmxprop.c \ - dmxprop.h \ - dmxscrinit.c \ - dmxscrinit.h \ - dmxstat.c \ - dmxstat.h \ - dmxsync.c \ - dmxsync.h \ - dmxvisual.c \ - dmxvisual.h \ - dmxwindow.c \ - dmxwindow.h \ - $(top_srcdir)/mi/miinitext.c \ - $(top_srcdir)/mi/miinitext.h \ - $(GLX_SRCS) - - -#if COMPOSITE -#Xdmx_SOURCES += fakecw.c -#endif - -XDMX_LIBS = \ - $(GLX_LIBS) \ - @XDMX_LIBS@ \ - input/libdmxinput.a \ - config/libdmxconfig.a - -Xdmx_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) -Xdmx_DEPENDENCIES= $(XDMX_LIBS) -Xdmx_LDADD = $(XDMX_LIBS) $(XDMX_SYS_LIBS) $(XSERVER_SYS_LIBS) - -relink: - $(AM_V_at)rm -f Xdmx$(EXEEXT) && $(MAKE) Xdmx$(EXEEXT) diff --git a/hw/dmx/config/.gitignore b/hw/dmx/config/.gitignore deleted file mode 100644 index b74975302..000000000 --- a/hw/dmx/config/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Add & Override for this directory and its subdirectories -dmxtodmx -parser.c -parser.h -scanner.c -vdltodmx -xdmxconfig diff --git a/hw/dmx/config/Canvas.c b/hw/dmx/config/Canvas.c deleted file mode 100644 index 3662fe857..000000000 --- a/hw/dmx/config/Canvas.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 1987, 1998 The Open Group - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of The Open Group shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from The Open Group. - */ - -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - * This file was originally taken from xc/lib/Xaw/Template.c - */ - -#include -#include -#include "CanvasP.h" - -static void -CanvasInitialize(Widget request, Widget w, ArgList args, Cardinal * num_args) -{ -} - -static void -CanvasExpose(Widget w, XEvent * event, Region region) -{ - CanvasExposeDataRec data; - - data.w = w; - data.event = event; - data.region = region; - - if (!XtIsRealized(w)) - return; - XtCallCallbacks(w, XtNcanvasExposeCallback, (XtPointer) &data); -} - -static void -CanvasResize(Widget w) -{ - if (!XtIsRealized(w)) - return; - XtCallCallbacks(w, XtNcanvasResizeCallback, (XtPointer) w); -} - -static void -CanvasAction(Widget w, XEvent * event, String * params, Cardinal * num_params) -{ - XtCallCallbacks(w, XtNcallback, (XtPointer) event); -} - -#define offset(field) XtOffsetOf(CanvasRec, canvas.field) -static XtResource resources[] = { - {XtNcallback, XtCCallback, XtRCallback, - sizeof(XtCallbackList), offset(input_callback), XtRCallback, NULL} - , - {(char *) XtNcanvasExposeCallback, (char *) XtCcanvasExposeCallback, XtRCallback, - sizeof(XtCallbackList), offset(expose_callback), XtRCallback, NULL} - , - {(char *) XtNcanvasResizeCallback, (char *) XtCcanvasResizeCallback, XtRCallback, - sizeof(XtCallbackList), offset(resize_callback), XtRCallback, NULL} - , -}; - -#undef offset - -static XtActionsRec actions[] = { - {(char *) "canvas", CanvasAction}, -}; - -static char translations[] = ": canvas()\n\ -: canvas()\n\ -: canvas()\n\ -: canvas()\n\ -"; - -#define Superclass (&widgetClassRec) -CanvasClassRec canvasClassRec = { - /* core */ - { - (WidgetClass) Superclass, /* superclass */ - (char *) "Canvas", /* class_name */ - sizeof(CanvasRec), /* widget_size */ - NULL, /* class_initialize */ - NULL, /* class_part_initialize */ - False, /* class_inited */ - CanvasInitialize, /* initialize */ - NULL, /* initialize_hook */ - XtInheritRealize, /* realize */ - actions, /* actions */ - XtNumber(actions), /* num_actions */ - resources, /* resources */ - XtNumber(resources), /* num_resources */ - NULLQUARK, /* xrm_class */ - True, /* compress_motion */ - True, /* compress_exposure */ - True, /* compress_enterleave */ - False, /* visible_interest */ - NULL, /* destroy */ - CanvasResize, /* resize */ - CanvasExpose, /* expose */ - NULL, /* set_values */ - NULL, /* set_values_hook */ - XtInheritSetValuesAlmost, /* set_values_almost */ - NULL, /* get_values_hook */ - NULL, /* accept_focus */ - XtVersion, /* version */ - NULL, /* callback_private */ - translations, /* tm_table */ - XtInheritQueryGeometry, /* query_geometry */ - XtInheritDisplayAccelerator, /* display_accelerator */ - NULL, /* extension */ - } - , - /* canvas */ - { - NULL, /* extension */ - } -}; - -WidgetClass canvasWidgetClass = (WidgetClass) &canvasClassRec; diff --git a/hw/dmx/config/Canvas.h b/hw/dmx/config/Canvas.h deleted file mode 100644 index d516faf93..000000000 --- a/hw/dmx/config/Canvas.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - -Copyright 1987, 1998 The Open Group -Copyright 2002 Red Hat Inc., Durham, North Carolina. - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - * This file was originally taken from xc/lib/Xaw/Template.h - */ - -#ifndef _Canvas_h -#define _Canvas_h - -#include - -#define XtNcanvasExposeCallback "canvasExposeCallback" -#define XtCcanvasExposeCallback "CanvasExposeCallback" -#define XtNcanvasResizeCallback "canvasResizeCallback" -#define XtCcanvasResizeCallback "CanvasResizeCallback" - -typedef struct _CanvasClassRec *CanvasWidgetClass; -typedef struct _CanvasRec *CanvasWidget; -extern WidgetClass canvasWidgetClass; - -typedef struct _CanvasExposeDataRec { - Widget w; - XEvent *event; - Region region; -} CanvasExposeDataRec, *CanvasExposeDataPtr; - -#endif /* _Canvas_h */ diff --git a/hw/dmx/config/CanvasP.h b/hw/dmx/config/CanvasP.h deleted file mode 100644 index b1ccf2497..000000000 --- a/hw/dmx/config/CanvasP.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - -Copyright 1987, 1998 The Open Group -Copyright 2002 Red Hat Inc., Durham, North Carolina. - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - * This file was originally taken from xc/lib/Xaw/TemplateP.h - */ - -#ifndef _CanvasP_h -#define _CanvasP_h - -#include "Canvas.h" - -/* include superclass private header file */ -#include - -typedef struct { - XtPointer extension; -} CanvasClassPart; - -typedef struct _CanvasClassRec { - CoreClassPart core_class; - CanvasClassPart canvas_class; -} CanvasClassRec; - -extern CanvasClassRec canvasClassRec; - -typedef struct { - XtCallbackList input_callback; - XtCallbackList expose_callback; - XtCallbackList resize_callback; -} CanvasPart; - -typedef struct _CanvasRec { - CorePart core; - CanvasPart canvas; -} CanvasRec; - -#endif /* _CanvasP_h */ diff --git a/hw/dmx/config/Makefile.am b/hw/dmx/config/Makefile.am deleted file mode 100644 index 97c309d3b..000000000 --- a/hw/dmx/config/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ -SUBDIRS = man - -noinst_LIBRARIES = libdmxconfig.a - -LIBSRCS = parser.y \ - scanner.l \ - dmxparse.c \ - dmxparse.h \ - dmxprint.c \ - dmxprint.h \ - dmxcompat.c \ - dmxcompat.h \ - dmxconfig.c \ - dmxconfig.h - -parser.h: parser.c -scanner.c: scanner.l parser.h - -BUILT_SOURCES = parser.c parser.h scanner.c - -MAINTAINERCLEANFILES = $(BUILT_SOURCES) - -libdmxconfig_a_SOURCES = $(LIBSRCS) -libdmxconfig_a_SOURCES += $(top_srcdir)/os/strlcpy.c - -if GLX -GLX_DEFS = @GL_CFLAGS@ -endif - -AM_YFLAGS = -d -AM_CFLAGS = \ - $(DIX_CFLAGS) \ - -I$(top_srcdir)/hw/dmx \ - -DHAVE_DMX_CONFIG_H \ - -DDMX_LOG_STANDALONE \ - $(GLX_DEFS) \ - @DMXMODULES_CFLAGS@ - -bin_PROGRAMS = xdmxconfig vdltodmx dmxtodmx - -xdmxconfig_SOURCES = \ - xdmxconfig.c \ - $(top_srcdir)/hw/dmx/dmxlog.c \ - Canvas.c \ - Canvas.h \ - CanvasP.h -xdmxconfig_LDADD = libdmxconfig.a @XDMXCONFIG_DEP_LIBS@ -xdmxconfig_CFLAGS = $(AM_CFLAGS) @XDMXCONFIG_DEP_CFLAGS@ - -vdltodmx_SOURCES = vdltodmx.c -vdltodmx_LDADD = libdmxconfig.a - -dmxtodmx_SOURCES = dmxtodmx.c -dmxtodmx_LDADD = libdmxconfig.a - -EXTRA_DIST = \ - test-a.in test-a.out \ - test-b.in test-b.out \ - test-c.in test-c.out \ - test-d.in test-d.out \ - test-e.in test-e.out \ - test-f.in test-f.out \ - test-g.in test-g.out \ - test-h.in test-h.out \ - test-i.in test-i.out \ - test-j.in test-j.out \ - test-k.in test-k.out \ - test-l.in test-l.out diff --git a/hw/dmx/config/TODO b/hw/dmx/config/TODO deleted file mode 100644 index 2998ff4a0..000000000 --- a/hw/dmx/config/TODO +++ /dev/null @@ -1,7 +0,0 @@ -Fri May 31 13:20:17 2002 - -1) Sanitize values from input boxes. - -2) Add canvas colors to cavas widget resources or to command-line options. - -3) Add ability to edit option line(s) and wall. diff --git a/hw/dmx/config/dmxcompat.c b/hw/dmx/config/dmxcompat.c deleted file mode 100644 index 6d31b5300..000000000 --- a/hw/dmx/config/dmxcompat.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - */ - -/** \file - * This file provides some compatibility support for reading VDL files - * that are used by xmovie - * (http://www.llnl.gov/icc/sdd/img/xmovie/xmovie.shtml). - * - * This file is not used by the DMX server. - */ - -#ifdef HAVE_DMX_CONFIG_H -#include -#endif - -#include "os.h" -#include "dmxconfig.h" -#include "dmxparse.h" -#include "dmxcompat.h" -#include "parser.h" -#include -#include -#include -#include - -static int -dmxVDLReadLine(FILE * str, char *buf, int len) -{ - if (fgets(buf, len, str)) - return strlen(buf); - return 0; -} - -static int -dmxVDLCount(const char *buf) -{ - return strtol(buf, NULL, 10); -} - -static void -dmxVDLVirtualEntry(const char *buf, char *name, int *len, int *x, int *y) -{ - char *end; - const char *s; - char *d; - int start; - - *x = strtol(buf, &end, 10); - *y = strtol(end, &end, 10); - - for (s = end, d = name, start = 1; *s && *s != '['; ++s) { - if (start && isspace(*s)) - continue; - *d++ = *s; - start = 0; - } - *d = '\0'; - while (d > name && isspace(d[-1])) - *--d = '\0'; /* remove trailing space */ - *len = strlen(name); -} - -static void -dmxVDLDisplayEntry(const char *buf, - char *name, int *len, - int *x, int *y, int *xoff, int *yoff, int *xorig, int *yorig) -{ - const char *pt; - char *end; - - pt = strchr(buf, ' '); - strlcpy(name, buf, 1 + pt - buf); - *len = strlen(name); - - *x = strtol(pt, &end, 10); - *y = strtol(end, &end, 10); - *xorig = strtol(end, &end, 10); - *yorig = strtol(end, &end, 10); - *xoff = strtol(end, &end, 10); - *yoff = strtol(end, NULL, 10); -} - -/** Read from the VDL format \a filename and return a newly allocated \a - * DMXConfigEntryPtr */ -DMXConfigEntryPtr -dmxVDLRead(const char *filename) -{ - FILE *str; - char buf[2048]; /* RATS: Use ok */ - char *pt; - int lineno = 0; - DMXConfigEntryPtr entry = NULL; - DMXConfigVirtualPtr virtual = NULL; - DMXConfigSubPtr sub = NULL; - DMXConfigDisplayPtr display = NULL; - DMXConfigFullDimPtr fdim = NULL; - int dcount = 0; - int icount = 0; - int x, y, xoff, yoff, xorig, yorig; - char name[2048]; /* RATS: Use ok */ - const char *tmp; - int len; - enum { - simulateFlag, - virtualCount, - virtualEntry, - displayCount, - displayEntry, - ignoreCount, - ignoreEntry - } state = simulateFlag; - - if (!filename) - str = stdin; - else - str = fopen(filename, "r"); - if (!str) - return NULL; - - while (dmxVDLReadLine(str, buf, sizeof(buf))) { - DMXConfigCommentPtr comment = NULL; - - ++lineno; - for (pt = buf; *pt; pt++) - if (*pt == '\r' || *pt == '\n') { - *pt = '\0'; - break; - } - if (buf[0] == '#') { - tmp = dmxConfigCopyString(buf + 1, strlen(buf + 1)); - comment = dmxConfigCreateComment(T_COMMENT, lineno, tmp); - entry = dmxConfigAddEntry(entry, dmxConfigComment, comment, NULL); - continue; - } - switch (state) { - case simulateFlag: - state = virtualCount; - break; - case virtualCount: - state = virtualEntry; - break; - case virtualEntry: - len = sizeof(name); - dmxVDLVirtualEntry(buf, name, &len, &x, &y); - tmp = dmxConfigCopyString(name, len); - virtual = dmxConfigCreateVirtual(NULL, - dmxConfigCreateString(T_STRING, - lineno, - NULL, - tmp), - dmxConfigCreatePair(T_DIMENSION, - lineno, - NULL, - x, y, 0, 0), - NULL, NULL, NULL); - state = displayCount; - break; - case displayCount: - dcount = dmxVDLCount(buf); - state = displayEntry; - break; - case displayEntry: - dmxVDLDisplayEntry(buf, name, &len, &x, &y, &xoff, &yoff, - &xorig, &yorig); - tmp = dmxConfigCopyString(name, len); - fdim = - dmxConfigCreateFullDim(dmxConfigCreatePartDim - (dmxConfigCreatePair - (T_DIMENSION, lineno, NULL, x, y, 0, 0), - dmxConfigCreatePair(T_OFFSET, lineno, - NULL, xoff, yoff, - xoff, yoff)), NULL); - display = - dmxConfigCreateDisplay(NULL, - dmxConfigCreateString(T_STRING, lineno, - NULL, tmp), fdim, - dmxConfigCreatePair(T_ORIGIN, lineno, - NULL, xorig, yorig, - 0, 0), NULL); - sub = dmxConfigAddSub(sub, dmxConfigSubDisplay(display)); - if (!--dcount) { - state = ignoreCount; - virtual->subentry = sub; - entry = dmxConfigAddEntry(entry, - dmxConfigVirtual, NULL, virtual); - virtual = NULL; - sub = NULL; - } - break; - case ignoreCount: - icount = dmxVDLCount(buf); - state = ignoreEntry; - break; - case ignoreEntry: - if (!--icount) - state = virtualEntry; - break; - } - } - - if (str != stdin) - fclose(str); - - return entry; -} diff --git a/hw/dmx/config/dmxcompat.h b/hw/dmx/config/dmxcompat.h deleted file mode 100644 index 718892040..000000000 --- a/hw/dmx/config/dmxcompat.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * Interface to VDL compatibility support. \see dmxcompat.c - * - * This file is not used by the DMX server. - */ - -#ifndef _DMXCOMPAT_H_ -#define _DMXCOMPAT_H_ - -extern DMXConfigEntryPtr dmxVDLRead(const char *filename); -#endif diff --git a/hw/dmx/config/dmxconfig.c b/hw/dmx/config/dmxconfig.c deleted file mode 100644 index 3b9475046..000000000 --- a/hw/dmx/config/dmxconfig.c +++ /dev/null @@ -1,560 +0,0 @@ -/* - * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * Provides interface for reading DMX configuration files and for - * combining that information with command-line configuration parameters. */ - -#ifdef HAVE_DMX_CONFIG_H -#include -#endif - -#include "dmx.h" -#include "dmxinput.h" -#include "dmxconfig.h" -#include "dmxparse.h" -#include "dmxlog.h" -#include "dmxcb.h" -#include "dmxstat.h" -#include "parser.h" - -extern int yydebug; -extern FILE *yyin; - -static char *dmxXkbRules; -static char *dmxXkbModel; -static char *dmxXkbLayout; -static char *dmxXkbVariant; -static char *dmxXkbOptions; - -/** Stores lists of configuration information. */ -typedef struct DMXConfigListStruct { - const char *name; - struct DMXConfigListStruct *next; -} DMXConfigList, *DMXConfigListPtr; - -/** This structure stores the parsed configuration information. */ -typedef struct DMXConfigCmdStruct { - const char *filename; - const char *config; - DMXConfigList *displays; - DMXConfigList *inputs; - DMXConfigList *xinputs; -} DMXConfigCmd, *DMXConfigCmdPtr; - -static DMXConfigCmd dmxConfigCmd; - -static int dmxDisplaysFromCommandLine; - -/** Make a note that \a display is the name of an X11 display that - * should be initialized as a backend (output) display. Called from - * #ddxProcessArgument. */ -void -dmxConfigStoreDisplay(const char *display) -{ - DMXConfigListPtr entry = malloc(sizeof(*entry)); - - entry->name = strdup(display); - entry->next = NULL; - if (!dmxConfigCmd.displays) - dmxConfigCmd.displays = entry; - else { - DMXConfigList *pt; - - for (pt = dmxConfigCmd.displays; pt->next; pt = pt->next); - if (!pt) - dmxLog(dmxFatal, "dmxConfigStoreDisplay: end of list non-NULL\n"); - pt->next = entry; - } - ++dmxDisplaysFromCommandLine; -} - -/** Make a note that \a input is the name of an X11 display that should - * be used for input (either a backend or a console input device). */ -void -dmxConfigStoreInput(const char *input) -{ - DMXConfigListPtr entry = malloc(sizeof(*entry)); - - entry->name = strdup(input); - entry->next = NULL; - if (!dmxConfigCmd.inputs) - dmxConfigCmd.inputs = entry; - else { - DMXConfigList *pt; - - for (pt = dmxConfigCmd.inputs; pt->next; pt = pt->next); - if (!pt) - dmxLog(dmxFatal, "dmxConfigStoreInput: end of list non-NULL\n"); - pt->next = entry; - } -} - -/** Make a note that \a input is the name of an X11 display that should - * be used for input from XInput extension devices. */ -void -dmxConfigStoreXInput(const char *input) -{ - DMXConfigListPtr entry = malloc(sizeof(*entry)); - - entry->name = strdup(input); - entry->next = NULL; - if (!dmxConfigCmd.xinputs) - dmxConfigCmd.xinputs = entry; - else { - DMXConfigList *pt; - - for (pt = dmxConfigCmd.xinputs; pt->next; pt = pt->next); - if (!pt) - dmxLog(dmxFatal, "dmxConfigStoreXInput: end of list non-NULL\n"); - pt->next = entry; - } -} - -/** Make a note that \a file is the configuration file. */ -void -dmxConfigStoreFile(const char *file) -{ - if (dmxConfigCmd.filename) - dmxLog(dmxFatal, "Only one -configfile allowed\n"); - dmxConfigCmd.filename = strdup(file); -} - -/** Make a note that \a config should be used as the configuration for - * current instantiation of the DMX server. */ -void -dmxConfigStoreConfig(const char *config) -{ - if (dmxConfigCmd.config) - dmxLog(dmxFatal, "Only one -config allowed\n"); - dmxConfigCmd.config = strdup(config); -} - -static int -dmxConfigReadFile(const char *filename, int debug) -{ - FILE *str; - - if (!(str = fopen(filename, "r"))) - return -1; - dmxLog(dmxInfo, "Reading configuration file \"%s\"\n", filename); - yyin = str; - yydebug = debug; - yyparse(); - fclose(str); - return 0; -} - -static const char * -dmxConfigMatch(const char *target, DMXConfigEntryPtr entry) -{ - DMXConfigVirtualPtr v = entry->virtual; - const char *name = NULL; - - if (v && v->name) - name = v->name; - - if (v && !dmxConfigCmd.config) - return v->name ? v->name : ""; - if (!name) - return NULL; - if (!strcmp(name, target)) - return name; - return NULL; -} - -static DMXScreenInfo * -dmxConfigAddDisplay(const char *name, - int scrnWidth, int scrnHeight, - int scrnX, int scrnY, - int scrnXSign, int scrnYSign, - int rootWidth, int rootHeight, - int rootX, int rootY, int rootXSign, int rootYSign) -{ - DMXScreenInfo *dmxScreen; - - if (!(dmxScreens = reallocarray(dmxScreens, dmxNumScreens + 1, - sizeof(*dmxScreens)))) - dmxLog(dmxFatal, - "dmxConfigAddDisplay: realloc failed for screen %d (%s)\n", - dmxNumScreens, name); - - dmxScreen = &dmxScreens[dmxNumScreens]; - memset(dmxScreen, 0, sizeof(*dmxScreen)); - dmxScreen->name = name; - dmxScreen->index = dmxNumScreens; - dmxScreen->scrnWidth = scrnWidth; - dmxScreen->scrnHeight = scrnHeight; - dmxScreen->scrnX = scrnX; - dmxScreen->scrnY = scrnY; - dmxScreen->scrnXSign = scrnXSign; - dmxScreen->scrnYSign = scrnYSign; - dmxScreen->rootWidth = rootWidth; - dmxScreen->rootHeight = rootHeight; - dmxScreen->rootX = rootX; - dmxScreen->rootY = rootY; - dmxScreen->stat = dmxStatAlloc(); - ++dmxNumScreens; - return dmxScreen; -} - -DMXInputInfo * -dmxConfigAddInput(const char *name, int core) -{ - DMXInputInfo *dmxInput; - - if (!(dmxInputs = reallocarray(dmxInputs, dmxNumInputs + 1, - sizeof(*dmxInputs)))) - dmxLog(dmxFatal, - "dmxConfigAddInput: realloc failed for input %d (%s)\n", - dmxNumInputs, name); - - dmxInput = &dmxInputs[dmxNumInputs]; - - memset(dmxInput, 0, sizeof(*dmxInput)); - dmxInput->name = name; - dmxInput->inputIdx = dmxNumInputs; - dmxInput->scrnIdx = -1; - dmxInput->core = core; - ++dmxNumInputs; - return dmxInput; -} - -static void -dmxConfigCopyFromDisplay(DMXConfigDisplayPtr d) -{ - DMXScreenInfo *dmxScreen; - - dmxScreen = dmxConfigAddDisplay(d->name, - d->scrnWidth, d->scrnHeight, - d->scrnX, d->scrnY, - d->scrnXSign, d->scrnYSign, - d->rootWidth, d->rootHeight, - d->rootX, d->rootY, - d->rootXSign, d->rootXSign); - dmxScreen->where = PosAbsolute; - dmxScreen->whereX = d->rootXOrigin; - dmxScreen->whereY = d->rootYOrigin; -} - -static void -dmxConfigCopyFromWall(DMXConfigWallPtr w) -{ - DMXConfigStringPtr pt; - DMXScreenInfo *dmxScreen; - int edge = dmxNumScreens; - int last = dmxNumScreens; - - if (!w->xwall && !w->ywall) { /* Try to make it square */ - int count; - - for (pt = w->nameList, count = 0; pt; pt = pt->next) - ++count; - w->xwall = sqrt(count) + .5; - } - - for (pt = w->nameList; pt; pt = pt->next) { - dmxScreen = dmxConfigAddDisplay(pt->string, w->width, w->height, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - if (pt == w->nameList) { /* Upper left */ - dmxScreen->where = PosAbsolute; - dmxScreen->whereX = 0; - dmxScreen->whereY = 0; - } - else if (w->xwall) { /* Tile left to right, then top to bottom */ - if (!((dmxNumScreens - 1) % w->xwall)) { - dmxScreen->where = PosBelow; - dmxScreen->whereRefScreen = edge; - edge = dmxNumScreens - 1; - } - else { - dmxScreen->where = PosRightOf; - dmxScreen->whereRefScreen = last; - } - } - else { /* Tile top to bottom, then left to right */ - if (!((dmxNumScreens - 1) % w->ywall)) { - dmxScreen->where = PosRightOf; - dmxScreen->whereRefScreen = edge; - edge = dmxNumScreens - 1; - } - else { - dmxScreen->where = PosBelow; - dmxScreen->whereRefScreen = last; - } - - } - last = dmxNumScreens - 1; - if (dmxScreen->where == PosAbsolute) - dmxLog(dmxInfo, "Added %s at %d %d\n", - pt->string, dmxScreen->whereX, dmxScreen->whereY); - else - dmxLog(dmxInfo, "Added %s %s %s\n", - pt->string, - dmxScreen->where == PosBelow ? "below" : "right of", - dmxScreens[dmxScreen->whereRefScreen].name); - } -} - -static void -dmxConfigCopyFromOption(DMXConfigOptionPtr o) -{ - DMXConfigStringPtr pt; - int argc = 0; - char **argv = NULL; - - if (serverGeneration != 1) - return; /* FIXME: only do once, for now */ - if (!o || !o->string) - return; - for (pt = o->option; pt; pt = pt->next) { - if (pt->string) { - ++argc; - argv = reallocarray(argv, argc + 1, sizeof(*argv)); - argv[argc] = (char *) pt->string; - } - } - argv[0] = NULL; - ProcessCommandLine(argc + 1, argv); - free(argv); -} - -static void -dmxConfigCopyFromParam(DMXConfigParamPtr p) -{ - const char **argv; - int argc; - - if ((argv = dmxConfigLookupParam(p, "xkbrules", &argc)) && argc == 2) { - dmxConfigSetXkbRules(argv[1]); - } - else if ((argv = dmxConfigLookupParam(p, "xkbmodel", &argc)) - && argc == 2) { - dmxConfigSetXkbModel(argv[1]); - } - else if ((argv = dmxConfigLookupParam(p, "xkblayout", &argc)) - && argc == 2) { - dmxConfigSetXkbLayout(argv[1]); - } - else if ((argv = dmxConfigLookupParam(p, "xkbvariant", &argc)) - && argc == 2) { - dmxConfigSetXkbVariant(argv[1]); - } - else if ((argv = dmxConfigLookupParam(p, "xkboptions", &argc)) - && argc == 2) { - dmxConfigSetXkbOptions(argv[1]); - } -} - -static void -dmxConfigCopyData(DMXConfigVirtualPtr v) -{ - DMXConfigSubPtr sub; - - if (v->dim) - dmxSetWidthHeight(v->dim->x, v->dim->y); - else - dmxSetWidthHeight(0, 0); - for (sub = v->subentry; sub; sub = sub->next) { - switch (sub->type) { - case dmxConfigDisplay: - dmxConfigCopyFromDisplay(sub->display); - break; - case dmxConfigWall: - dmxConfigCopyFromWall(sub->wall); - break; - case dmxConfigOption: - dmxConfigCopyFromOption(sub->option); - break; - case dmxConfigParam: - dmxConfigCopyFromParam(sub->param); - break; - default: - dmxLog(dmxFatal, - "dmxConfigCopyData: not a display, wall, or value\n"); - } - } -} - -static void -dmxConfigFromCommandLine(void) -{ - DMXConfigListPtr pt; - - dmxLog(dmxInfo, "Using configuration from command line\n"); - for (pt = dmxConfigCmd.displays; pt; pt = pt->next) { - DMXScreenInfo *dmxScreen = dmxConfigAddDisplay(pt->name, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0); - - if (dmxNumScreens == 1) { - dmxScreen->where = PosAbsolute; - dmxScreen->whereX = 0; - dmxScreen->whereY = 0; - dmxLog(dmxInfo, "Added %s at %d %d\n", - dmxScreen->name, dmxScreen->whereX, dmxScreen->whereY); - } - else { - dmxScreen->where = PosRightOf; - dmxScreen->whereRefScreen = dmxNumScreens - 2; - if (dmxScreen->whereRefScreen < 0) - dmxScreen->whereRefScreen = 0; - dmxLog(dmxInfo, "Added %s %s %s\n", - dmxScreen->name, - dmxScreen->where == PosBelow ? "below" : "right of", - dmxScreens[dmxScreen->whereRefScreen].name); - } - } -} - -static void -dmxConfigFromConfigFile(void) -{ - DMXConfigEntryPtr pt; - const char *name; - - for (pt = dmxConfigEntry; pt; pt = pt->next) { - /* FIXME -- if an input is specified, use it */ - if (pt->type != dmxConfigVirtual) - continue; - if ((name = dmxConfigMatch(dmxConfigCmd.config, pt))) { - dmxLog(dmxInfo, "Using configuration \"%s\"\n", name); - dmxConfigCopyData(pt->virtual); - return; - } - } - dmxLog(dmxFatal, "Could not find configuration \"%s\" in \"%s\"\n", - dmxConfigCmd.config, dmxConfigCmd.filename); -} - -static void -dmxConfigConfigInputs(void) -{ - DMXConfigListPtr pt; - - if (dmxNumInputs) - return; - - if (dmxConfigCmd.inputs) { /* Use command line */ - for (pt = dmxConfigCmd.inputs; pt; pt = pt->next) - dmxConfigAddInput(pt->name, TRUE); - } - else if (dmxNumScreens) { /* Use first display */ - dmxConfigAddInput(dmxScreens[0].name, TRUE); - } - else { /* Use dummy */ - dmxConfigAddInput("dummy", TRUE); - } - - if (dmxConfigCmd.xinputs) { /* Non-core devices from command line */ - for (pt = dmxConfigCmd.xinputs; pt; pt = pt->next) - dmxConfigAddInput(pt->name, FALSE); - } -} - -/** Set up the appropriate global variables so that the DMX server will - * be initialized using the configuration specified in the config file - * and on the command line. */ -void -dmxConfigConfigure(void) -{ - if (dmxConfigEntry) { - dmxConfigFreeEntry(dmxConfigEntry); - dmxConfigEntry = NULL; - } - if (dmxConfigCmd.filename) { - if (dmxConfigCmd.displays) - dmxLog(dmxWarning, - "Using configuration file \"%s\" instead of command line\n", - dmxConfigCmd.filename); - dmxConfigReadFile(dmxConfigCmd.filename, 0); - dmxConfigFromConfigFile(); - } - else { - if (dmxConfigCmd.config) - dmxLog(dmxWarning, - "Configuration name (%s) without configuration file\n", - dmxConfigCmd.config); - dmxConfigFromCommandLine(); - } - dmxConfigConfigInputs(); -} - -/** This function determines the number of displays we WILL have and - * sets MAXSCREENS to that value. This is difficult since the number - * depends on the command line (which is easy to count) or on the config - * file, which has to be parsed. */ -void -dmxConfigSetMaxScreens(void) -{ - static int processing = 0; - - if (processing) - return; /* Prevent reentry via ProcessCommandLine */ - processing = 1; - if (dmxConfigCmd.filename) { - if (!dmxNumScreens) - dmxConfigConfigure(); -#ifndef MAXSCREENS - SetMaxScreens(dmxNumScreens); -#endif - } - else -#ifndef MAXSCREENS - SetMaxScreens(dmxDisplaysFromCommandLine); -#endif - processing = 0; -} - -/** This macro is used to generate the following access methods: - * - dmxConfig{Set,Get}rules - * - dmxConfig{Set,Get}model - * - dmxConfig{Set,Get}layout - * - dmxConfig{Set,Get}variant - * - dmxConfig{Set,Get}options - * These methods are used to read and write information about the keyboard. */ - -#define GEN(param,glob,def) \ - void dmxConfigSet##glob(const char *param) { \ - if (dmx##glob) free((void *)dmx##glob); \ - dmx##glob = strdup(param); \ - } \ - char *dmxConfigGet##glob(void) { \ - return (char *)(dmx##glob ? dmx##glob : def); \ - } - -GEN(rules, XkbRules, XKB_DFLT_RULES) - GEN(model, XkbModel, XKB_DFLT_MODEL) - GEN(layout, XkbLayout, XKB_DFLT_LAYOUT) - GEN(variant, XkbVariant, XKB_DFLT_VARIANT) - GEN(options, XkbOptions, XKB_DFLT_OPTIONS) diff --git a/hw/dmx/config/dmxconfig.h b/hw/dmx/config/dmxconfig.h deleted file mode 100644 index deb293cc0..000000000 --- a/hw/dmx/config/dmxconfig.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * Interface for DMX configuration file support. \see dmxconfig.c */ - -#ifndef _DMXCONFIG_H_ -#define _DMXCONFIG_H_ - -#include - -extern void dmxConfigStoreDisplay(const char *display); -extern void dmxConfigStoreInput(const char *input); /* Core devices */ -extern void dmxConfigStoreXInput(const char *input); /* Non-core devices */ -extern void dmxConfigStoreFile(const char *file); -extern void dmxConfigStoreConfig(const char *config); -extern void dmxConfigConfigure(void); -extern void dmxConfigSetMaxScreens(void); - -extern void dmxConfigSetXkbRules(const char *rules); -extern void dmxConfigSetXkbModel(const char *model); -extern void dmxConfigSetXkbLayout(const char *layout); -extern void dmxConfigSetXkbVariant(const char *variant); -extern void dmxConfigSetXkbOptions(const char *options); - -extern char *dmxConfigGetXkbRules(void); -extern char *dmxConfigGetXkbModel(void); -extern char *dmxConfigGetXkbLayout(void); -extern char *dmxConfigGetXkbVariant(void); -extern char *dmxConfigGetXkbOptions(void); -#endif diff --git a/hw/dmx/config/dmxparse.c b/hw/dmx/config/dmxparse.c deleted file mode 100644 index f66143a6a..000000000 --- a/hw/dmx/config/dmxparse.c +++ /dev/null @@ -1,688 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * - * This file provides support routines and helper functions to be used - * by the DMX configuration file parser. - * - * Because the DMX configuration file parsing should be capable of being - * used in a stand-alone fashion (i.e., independent from the DMX server - * source tree), no dependencies on other DMX routines are made. */ - -#ifdef HAVE_DMX_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include "dmxparse.h" - -/** A general error logging routine that does not depend on the dmxLog - * functions. */ -void -dmxConfigLog(const char *format, ...) -{ - va_list args; - - va_start(args, format); - vprintf(format, args); /* RATS: All calls to dmxConfigLog from - * dmxparse.c and dmxprint.c use a - * trusted format. */ - va_end(args); -} - -void * -dmxConfigAlloc(unsigned long bytes) -{ - void *area = calloc(1, bytes); - - if (!area) { - dmxConfigLog("dmxConfigAlloc: out of memory\n"); - return NULL; - } - return area; -} - -void * -dmxConfigRealloc(void *orig, unsigned long orig_bytes, unsigned long bytes) -{ - unsigned char *area = realloc(orig, bytes); - - if (!area) { - dmxConfigLog("dmxConfigRealloc: out of memory\n"); - return NULL; - } - memset(area + orig_bytes, 0, bytes - orig_bytes); - return area; -} - -const char * -dmxConfigCopyString(const char *string, int length) -{ - char *copy; - - if (!length) - length = strlen(string); - copy = dmxConfigAlloc(length + 1); - if (length) - strncpy(copy, string, length); - copy[length] = '\0'; - return copy; -} - -void -dmxConfigFree(void *area) -{ - free(area); -} - -DMXConfigTokenPtr -dmxConfigCreateToken(int token, int line, const char *comment) -{ - DMXConfigTokenPtr pToken = dmxConfigAlloc(sizeof(*pToken)); - - pToken->token = token; - pToken->line = line; - pToken->comment = comment; - return pToken; -} - -void -dmxConfigFreeToken(DMXConfigTokenPtr p) -{ - if (!p) - return; - dmxConfigFree((void *) p->comment); - dmxConfigFree(p); -} - -DMXConfigStringPtr -dmxConfigCreateString(int token, int line, - const char *comment, const char *string) -{ - DMXConfigStringPtr pString = dmxConfigAlloc(sizeof(*pString)); - - pString->token = token; - pString->line = line; - pString->comment = comment; - pString->string = string; - return pString; -} - -void -dmxConfigFreeString(DMXConfigStringPtr p) -{ - DMXConfigStringPtr next; - - if (!p) - return; - do { - next = p->next; - dmxConfigFree((void *) p->comment); - dmxConfigFree((void *) p->string); - dmxConfigFree(p); - } while ((p = next)); -} - -DMXConfigNumberPtr -dmxConfigCreateNumber(int token, int line, const char *comment, int number) -{ - DMXConfigNumberPtr pNumber = dmxConfigAlloc(sizeof(*pNumber)); - - pNumber->token = token; - pNumber->line = line; - pNumber->comment = comment; - pNumber->number = number; - return pNumber; -} - -void -dmxConfigFreeNumber(DMXConfigNumberPtr p) -{ - if (!p) - return; - dmxConfigFree((void *) p->comment); - dmxConfigFree(p); -} - -DMXConfigPairPtr -dmxConfigCreatePair(int token, int line, - const char *comment, int x, int y, int xsign, int ysign) -{ - DMXConfigPairPtr pPair = dmxConfigAlloc(sizeof(*pPair)); - - pPair->token = token; - pPair->line = line; - pPair->comment = comment; - pPair->x = x; - pPair->y = y; - pPair->xsign = (xsign < 0) ? -1 : 1; - pPair->ysign = (ysign < 0) ? -1 : 1; - return pPair; -} - -void -dmxConfigFreePair(DMXConfigPairPtr p) -{ - if (!p) - return; - dmxConfigFree((void *) p->comment); - dmxConfigFree(p); -} - -DMXConfigCommentPtr -dmxConfigCreateComment(int token, int line, const char *comment) -{ - DMXConfigCommentPtr pComment = dmxConfigAlloc(sizeof(*pComment)); - - pComment->token = token; - pComment->line = line; - pComment->comment = comment; - return pComment; -} - -void -dmxConfigFreeComment(DMXConfigCommentPtr p) -{ - if (!p) - return; - dmxConfigFree((void *) p->comment); - dmxConfigFree(p); -} - -DMXConfigPartDimPtr -dmxConfigCreatePartDim(DMXConfigPairPtr pDim, DMXConfigPairPtr pOffset) -{ - DMXConfigPartDimPtr pPart = dmxConfigAlloc(sizeof(*pPart)); - - pPart->dim = pDim; - pPart->offset = pOffset; - return pPart; -} - -void -dmxConfigFreePartDim(DMXConfigPartDimPtr p) -{ - if (!p) - return; - dmxConfigFreePair(p->dim); - dmxConfigFreePair(p->offset); - dmxConfigFree(p); -} - -DMXConfigFullDimPtr -dmxConfigCreateFullDim(DMXConfigPartDimPtr pScrn, DMXConfigPartDimPtr pRoot) -{ - DMXConfigFullDimPtr pFull = dmxConfigAlloc(sizeof(*pFull)); - - pFull->scrn = pScrn; - pFull->root = pRoot; - return pFull; -} - -void -dmxConfigFreeFullDim(DMXConfigFullDimPtr p) -{ - if (!p) - return; - dmxConfigFreePartDim(p->scrn); - dmxConfigFreePartDim(p->root); - dmxConfigFree(p); -} - -DMXConfigDisplayPtr -dmxConfigCreateDisplay(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pName, - DMXConfigFullDimPtr pDim, - DMXConfigPairPtr pOrigin, DMXConfigTokenPtr pEnd) -{ - DMXConfigDisplayPtr pDisplay = dmxConfigAlloc(sizeof(*pDisplay)); - - pDisplay->start = pStart; - pDisplay->dname = pName; - pDisplay->dim = pDim; - pDisplay->origin = pOrigin; - pDisplay->end = pEnd; - - pDisplay->name = pName ? pName->string : NULL; - pDisplay->rootXOrigin = pOrigin ? pOrigin->x : 0; - pDisplay->rootYOrigin = pOrigin ? pOrigin->y : 0; - - if (pDim && pDim->scrn && pDim->scrn->dim) { - pDisplay->scrnWidth = pDim->scrn->dim->x; - pDisplay->scrnHeight = pDim->scrn->dim->y; - } - if (pDim && pDim->scrn && pDim->scrn->offset) { - pDisplay->scrnX = pDim->scrn->offset->x; - pDisplay->scrnY = pDim->scrn->offset->y; - pDisplay->scrnXSign = pDim->scrn->offset->xsign; - pDisplay->scrnYSign = pDim->scrn->offset->ysign; - } - - if (pDim && pDim->root) { - if (pDim->root->dim) { - pDisplay->rootWidth = pDim->root->dim->x; - pDisplay->rootHeight = pDim->root->dim->y; - } - if (pDim->root->offset) { - pDisplay->rootX = pDim->root->offset->x; - pDisplay->rootY = pDim->root->offset->y; - pDisplay->rootXSign = pDim->root->offset->xsign; - pDisplay->rootYSign = pDim->root->offset->ysign; - } - } - else { /* If no root specification, copy width - * and height from scrn -- leave offset - * as zero, since it is relative to - * scrn. */ - pDisplay->rootWidth = pDisplay->scrnWidth; - pDisplay->rootHeight = pDisplay->scrnHeight; - } - - return pDisplay; -} - -void -dmxConfigFreeDisplay(DMXConfigDisplayPtr p) -{ - if (!p) - return; - dmxConfigFreeToken(p->start); - dmxConfigFreeString(p->dname); - dmxConfigFreeFullDim(p->dim); - dmxConfigFreeToken(p->end); - dmxConfigFree(p); -} - -DMXConfigWallPtr -dmxConfigCreateWall(DMXConfigTokenPtr pStart, - DMXConfigPairPtr pWallDim, - DMXConfigPairPtr pDisplayDim, - DMXConfigStringPtr pNameList, DMXConfigTokenPtr pEnd) -{ - DMXConfigWallPtr pWall = dmxConfigAlloc(sizeof(*pWall)); - - pWall->start = pStart; - pWall->wallDim = pWallDim; - pWall->displayDim = pDisplayDim; - pWall->nameList = pNameList; - pWall->end = pEnd; - - pWall->width = pDisplayDim ? pDisplayDim->x : 0; - pWall->height = pDisplayDim ? pDisplayDim->y : 0; - pWall->xwall = pWallDim ? pWallDim->x : 0; - pWall->ywall = pWallDim ? pWallDim->y : 0; - - return pWall; -} - -void -dmxConfigFreeWall(DMXConfigWallPtr p) -{ - if (!p) - return; - dmxConfigFreeToken(p->start); - dmxConfigFreePair(p->wallDim); - dmxConfigFreePair(p->displayDim); - dmxConfigFreeString(p->nameList); - dmxConfigFreeToken(p->end); - dmxConfigFree(p); -} - -DMXConfigOptionPtr -dmxConfigCreateOption(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pOption, DMXConfigTokenPtr pEnd) -{ - int length = 0; - int offset = 0; - DMXConfigStringPtr p; - DMXConfigOptionPtr option = dmxConfigAlloc(sizeof(*option)); - - for (p = pOption; p; p = p->next) { - if (p->string) - length += strlen(p->string) + 1; - } - - option->string = dmxConfigAlloc(length + 1); - - for (p = pOption; p; p = p->next) { - if (p->string) { - int len = strlen(p->string); - - memcpy(option->string + offset, p->string, len); - offset += len; - if (p->next) - option->string[offset++] = ' '; - } - } - option->string[offset] = '\0'; - - option->start = pStart; - option->option = pOption; - option->end = pEnd; - - return option; -} - -void -dmxConfigFreeOption(DMXConfigOptionPtr p) -{ - if (!p) - return; - free(p->string); - dmxConfigFreeToken(p->start); - dmxConfigFreeString(p->option); - dmxConfigFreeToken(p->end); - dmxConfigFree(p); -} - -const char ** -dmxConfigLookupParam(DMXConfigParamPtr p, const char *key, int *argc) -{ - DMXConfigParamPtr pt; - - for (pt = p; pt; pt = pt->next) { - if (pt->argv && !strcasecmp(pt->argv[0], key)) { - *argc = pt->argc; - return pt->argv; - } - } - *argc = 0; - return NULL; -} - -DMXConfigParamPtr -dmxConfigCreateParam(DMXConfigTokenPtr pStart, - DMXConfigTokenPtr pOpen, - DMXConfigStringPtr pParam, - DMXConfigTokenPtr pClose, DMXConfigTokenPtr pEnd) -{ - DMXConfigParamPtr param = dmxConfigAlloc(sizeof(*param)); - DMXConfigStringPtr pt; - - param->argc = 0; - param->argv = NULL; - for (pt = pParam; pt; pt = pt->next) { - if (pt->string) { - param->argv = realloc(param->argv, - (param->argc + 2) * sizeof(*param->argv)); - param->argv[param->argc] = pt->string; - ++param->argc; - } - } - if (param->argv) - param->argv[param->argc] = NULL; - - param->start = pStart; - param->open = pOpen; - param->param = pParam; - param->close = pClose; - param->end = pEnd; - - return param; -} - -void -dmxConfigFreeParam(DMXConfigParamPtr p) -{ - DMXConfigParamPtr next; - - if (!p) - return; - do { - next = p->next; - dmxConfigFreeToken(p->start); - dmxConfigFreeToken(p->open); - dmxConfigFreeString(p->param); - dmxConfigFreeToken(p->close); - dmxConfigFreeToken(p->end); - dmxConfigFree(p->argv); - dmxConfigFree(p); - } while ((p = next)); -} - -DMXConfigSubPtr -dmxConfigCreateSub(DMXConfigType type, - DMXConfigCommentPtr comment, - DMXConfigDisplayPtr display, - DMXConfigWallPtr wall, - DMXConfigOptionPtr option, DMXConfigParamPtr param) -{ - DMXConfigSubPtr pSub = dmxConfigAlloc(sizeof(*pSub)); - - pSub->type = type; - switch (type) { - case dmxConfigComment: - pSub->comment = comment; - break; - case dmxConfigDisplay: - pSub->display = display; - break; - case dmxConfigWall: - pSub->wall = wall; - break; - case dmxConfigOption: - pSub->option = option; - break; - case dmxConfigParam: - pSub->param = param; - break; - default: - dmxConfigLog("Type %d not supported in subentry\n", type); - break; - } - return pSub; -} - -void -dmxConfigFreeSub(DMXConfigSubPtr sub) -{ - DMXConfigSubPtr pt; - - for (pt = sub; pt; pt = pt->next) { - switch (pt->type) { - case dmxConfigComment: - dmxConfigFreeComment(pt->comment); - break; - case dmxConfigDisplay: - dmxConfigFreeDisplay(pt->display); - break; - case dmxConfigWall: - dmxConfigFreeWall(pt->wall); - break; - case dmxConfigOption: - dmxConfigFreeOption(pt->option); - break; - case dmxConfigParam: - dmxConfigFreeParam(pt->param); - break; - default: - dmxConfigLog("Type %d not supported in subentry\n", pt->type); - break; - } - } - dmxConfigFree(sub); -} - -DMXConfigSubPtr -dmxConfigSubComment(DMXConfigCommentPtr comment) -{ - return dmxConfigCreateSub(dmxConfigComment, comment, NULL, NULL, NULL, - NULL); -} - -DMXConfigSubPtr -dmxConfigSubDisplay(DMXConfigDisplayPtr display) -{ - return dmxConfigCreateSub(dmxConfigDisplay, NULL, display, NULL, NULL, - NULL); -} - -DMXConfigSubPtr -dmxConfigSubWall(DMXConfigWallPtr wall) -{ - return dmxConfigCreateSub(dmxConfigWall, NULL, NULL, wall, NULL, NULL); -} - -DMXConfigSubPtr -dmxConfigSubOption(DMXConfigOptionPtr option) -{ - return dmxConfigCreateSub(dmxConfigOption, NULL, NULL, NULL, option, NULL); -} - -DMXConfigSubPtr -dmxConfigSubParam(DMXConfigParamPtr param) -{ - return dmxConfigCreateSub(dmxConfigParam, NULL, NULL, NULL, NULL, param); -} - -extern DMXConfigSubPtr -dmxConfigAddSub(DMXConfigSubPtr head, DMXConfigSubPtr sub) -{ - DMXConfigSubPtr pt; - - if (!head) - return sub; - for (pt = head; pt->next; pt = pt->next); - pt->next = sub; - return head; -} - -DMXConfigVirtualPtr -dmxConfigCreateVirtual(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pName, - DMXConfigPairPtr pDim, - DMXConfigTokenPtr pOpen, - DMXConfigSubPtr pSubentry, DMXConfigTokenPtr pClose) -{ - DMXConfigVirtualPtr pVirtual = dmxConfigAlloc(sizeof(*pVirtual)); - - pVirtual->start = pStart; - pVirtual->vname = pName; - pVirtual->dim = pDim; - pVirtual->open = pOpen; - pVirtual->subentry = pSubentry; - pVirtual->close = pClose; - - pVirtual->name = pName ? pName->string : NULL; - pVirtual->width = pDim ? pDim->x : 0; - pVirtual->height = pDim ? pDim->y : 0; - - return pVirtual; -} - -void -dmxConfigFreeVirtual(DMXConfigVirtualPtr virtual) -{ - dmxConfigFreeToken(virtual->start); - dmxConfigFreeString(virtual->vname); - dmxConfigFreePair(virtual->dim); - dmxConfigFreeToken(virtual->open); - dmxConfigFreeSub(virtual->subentry); - dmxConfigFreeToken(virtual->close); - dmxConfigFree(virtual); -} - -DMXConfigEntryPtr -dmxConfigCreateEntry(DMXConfigType type, - DMXConfigCommentPtr comment, DMXConfigVirtualPtr virtual) -{ - DMXConfigEntryPtr pEntry = dmxConfigAlloc(sizeof(*pEntry)); - - pEntry->type = type; - switch (type) { - case dmxConfigComment: - pEntry->comment = comment; - break; - case dmxConfigVirtual: - pEntry->virtual = virtual; - break; - default: - dmxConfigLog("Type %d not supported in entry\n", type); - break; - } - return pEntry; -} - -void -dmxConfigFreeEntry(DMXConfigEntryPtr entry) -{ - DMXConfigEntryPtr pt; - - for (pt = entry; pt; pt = pt->next) { - switch (pt->type) { - case dmxConfigComment: - dmxConfigFreeComment(pt->comment); - break; - case dmxConfigVirtual: - dmxConfigFreeVirtual(pt->virtual); - break; - default: - dmxConfigLog("Type %d not supported in entry\n", pt->type); - break; - } - } - dmxConfigFree(entry); -} - -DMXConfigEntryPtr -dmxConfigAddEntry(DMXConfigEntryPtr head, - DMXConfigType type, - DMXConfigCommentPtr comment, DMXConfigVirtualPtr virtual) -{ - DMXConfigEntryPtr child = dmxConfigCreateEntry(type, comment, virtual); - DMXConfigEntryPtr pt; - - if (!head) - return child; - - for (pt = head; pt->next; pt = pt->next); - pt->next = child; - - return head; -} - -DMXConfigEntryPtr -dmxConfigEntryComment(DMXConfigCommentPtr comment) -{ - return dmxConfigCreateEntry(dmxConfigComment, comment, NULL); -} - -DMXConfigEntryPtr -dmxConfigEntryVirtual(DMXConfigVirtualPtr virtual) -{ - return dmxConfigCreateEntry(dmxConfigVirtual, NULL, virtual); -} diff --git a/hw/dmx/config/dmxparse.h b/hw/dmx/config/dmxparse.h deleted file mode 100644 index 0a82e4ef0..000000000 --- a/hw/dmx/config/dmxparse.h +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * Interface to DMX configuration file parser. \see dmxparse.c */ - -#ifndef _DMXPARSE_H_ -#define _DMXPARSE_H_ - -#include /* For FILE */ -#include /* For _X_ATTRIBUTE_PRINTF */ - -/** Stores tokens not stored in other structures (e.g., keywords and ;) */ -typedef struct _DMXConfigToken { - int token; - int line; - const char *comment; -} DMXConfigToken, *DMXConfigTokenPtr; - -/** Stores parsed strings. */ -typedef struct _DMXConfigString { - int token; - int line; - const char *comment; - const char *string; - struct _DMXConfigString *next; -} DMXConfigString, *DMXConfigStringPtr; - -/** Stores parsed numbers. */ -typedef struct _DMXConfigNumber { - int token; - int line; - const char *comment; - int number; -} DMXConfigNumber, *DMXConfigNumberPtr; - -/** Stores parsed pairs (e.g., x y) */ -typedef struct _DMXConfigPair { - int token; - int line; - const char *comment; - int x; - int y; - int xsign; - int ysign; -} DMXConfigPair, *DMXConfigPairPtr; - -/** Stores parsed comments not stored with a token. */ -typedef struct _DMXConfigComment { - int token; - int line; - const char *comment; -} DMXConfigComment, *DMXConfigCommentPtr; - -typedef enum { - dmxConfigComment, - dmxConfigVirtual, - dmxConfigDisplay, - dmxConfigWall, - dmxConfigOption, - dmxConfigParam -} DMXConfigType; - -/** Stores a geometry specification. */ -typedef struct _DMXConfigPartDim { - DMXConfigPairPtr dim; - DMXConfigPairPtr offset; -} DMXConfigPartDim, *DMXConfigPartDimPtr; - -/** Stores a pair of geometry specifications. */ -typedef struct _DMXConfigFullDim { - DMXConfigPartDimPtr scrn; - DMXConfigPartDimPtr root; -} DMXConfigFullDim, *DMXConfigFullDimPtr; - -/** Stores parsed display information. */ -typedef struct _DMXConfigDisplay { - /* Summary information */ - const char *name; - /* Screen Window Geometry */ - int scrnWidth, scrnHeight; - int scrnX, scrnY; - int scrnXSign, scrnYSign; - /* Root Window Geometry */ - int rootWidth, rootHeight; - int rootX, rootY; - int rootXSign, rootYSign; - /* Origin in global space */ - int rootXOrigin, rootYOrigin; - - /* Raw configuration information */ - DMXConfigTokenPtr start; - DMXConfigStringPtr dname; - DMXConfigFullDimPtr dim; - DMXConfigPairPtr origin; - DMXConfigTokenPtr end; -} DMXConfigDisplay, *DMXConfigDisplayPtr; - -/** Stores parsed wall information. */ -typedef struct _DMXConfigWall { - /* Summary information */ - int width, height; /* dimensions of displays */ - int xwall, ywall; /* dimensions of wall, in tiles */ - - /* Raw configuration information */ - DMXConfigTokenPtr start; - DMXConfigPairPtr wallDim; - DMXConfigPairPtr displayDim; - DMXConfigStringPtr nameList; - DMXConfigTokenPtr end; -} DMXConfigWall, *DMXConfigWallPtr; - -/** Stores parsed option information. */ -typedef struct _DMXConfigOption { - /* Summary information */ - char *string; - - /* Raw configuration information */ - DMXConfigTokenPtr start; - DMXConfigStringPtr option; - DMXConfigTokenPtr end; -} DMXConfigOption, *DMXConfigOptionPtr; - -/** Stores parsed param information. */ -typedef struct _DMXConfigParam { - int argc; - const char **argv; - - DMXConfigTokenPtr start; - DMXConfigTokenPtr open; - DMXConfigStringPtr param; - DMXConfigTokenPtr close; - DMXConfigTokenPtr end; /* Either open/close OR end */ - struct _DMXConfigParam *next; -} DMXConfigParam, *DMXConfigParamPtr; - -/** Stores options under an entry (subentry). */ -typedef struct _DMXConfigSub { - DMXConfigType type; - DMXConfigCommentPtr comment; - DMXConfigDisplayPtr display; - DMXConfigWallPtr wall; - DMXConfigOptionPtr option; - DMXConfigParamPtr param; - struct _DMXConfigSub *next; -} DMXConfigSub, *DMXConfigSubPtr; - -/** Stores parsed virtual information. */ -typedef struct _DMXConfigVirtual { - /* Summary information */ - const char *name; - int width, height; - - /* Raw configuration information */ - DMXConfigTokenPtr start; - DMXConfigStringPtr vname; - DMXConfigPairPtr dim; - DMXConfigTokenPtr open; - DMXConfigSubPtr subentry; - DMXConfigTokenPtr close; -} DMXConfigVirtual, *DMXConfigVirtualPtr; - -/** Heads entry storage. */ -typedef struct _DMXConfigEntry { - DMXConfigType type; - DMXConfigCommentPtr comment; - DMXConfigVirtualPtr virtual; - struct _DMXConfigEntry *next; -} DMXConfigEntry, *DMXConfigEntryPtr; - -extern DMXConfigEntryPtr dmxConfigEntry; - -extern void yyerror(const char *message); - -extern void dmxConfigLog(const char *format, ...) _X_ATTRIBUTE_PRINTF(1,0); -extern void *dmxConfigAlloc(unsigned long bytes); -extern void *dmxConfigRealloc(void *orig, - unsigned long orig_bytes, unsigned long bytes); -extern const char *dmxConfigCopyString(const char *string, int length); -extern void dmxConfigFree(void *area); -extern DMXConfigTokenPtr dmxConfigCreateToken(int token, int line, - const char *comment); -extern void dmxConfigFreeToken(DMXConfigTokenPtr p); -extern DMXConfigStringPtr dmxConfigCreateString(int token, int line, - const char *comment, - const char *string); -extern void dmxConfigFreeString(DMXConfigStringPtr p); -extern DMXConfigNumberPtr dmxConfigCreateNumber(int token, int line, - const char *comment, - int number); -extern void dmxConfigFreeNumber(DMXConfigNumberPtr p); -extern DMXConfigPairPtr dmxConfigCreatePair(int token, int line, - const char *comment, - int x, int y, int xsign, int ysign); -extern void dmxConfigFreePair(DMXConfigPairPtr p); -extern DMXConfigCommentPtr dmxConfigCreateComment(int token, int line, - const char *comment); -extern void dmxConfigFreeComment(DMXConfigCommentPtr p); -extern DMXConfigPartDimPtr dmxConfigCreatePartDim(DMXConfigPairPtr pDim, - DMXConfigPairPtr pOffset); -extern void dmxConfigFreePartDim(DMXConfigPartDimPtr p); -extern DMXConfigFullDimPtr dmxConfigCreateFullDim(DMXConfigPartDimPtr pScrn, - DMXConfigPartDimPtr pRoot); -extern void dmxConfigFreeFullDim(DMXConfigFullDimPtr p); -extern DMXConfigDisplayPtr dmxConfigCreateDisplay(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pName, - DMXConfigFullDimPtr pDim, - DMXConfigPairPtr pOrigin, - DMXConfigTokenPtr pEnd); -extern void dmxConfigFreeDisplay(DMXConfigDisplayPtr p); -extern DMXConfigWallPtr dmxConfigCreateWall(DMXConfigTokenPtr pStart, - DMXConfigPairPtr pWallDim, - DMXConfigPairPtr pDisplayDim, - DMXConfigStringPtr pNameList, - DMXConfigTokenPtr pEnd); -extern void dmxConfigFreeWall(DMXConfigWallPtr p); -extern DMXConfigOptionPtr dmxConfigCreateOption(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pOption, - DMXConfigTokenPtr pEnd); -extern void dmxConfigFreeOption(DMXConfigOptionPtr p); -extern DMXConfigParamPtr dmxConfigCreateParam(DMXConfigTokenPtr pStart, - DMXConfigTokenPtr pOpen, - DMXConfigStringPtr pParam, - DMXConfigTokenPtr pClose, - DMXConfigTokenPtr pEnd); -extern void dmxConfigFreeParam(DMXConfigParamPtr p); -extern const char **dmxConfigLookupParam(DMXConfigParamPtr p, - const char *key, int *argc); -extern DMXConfigSubPtr dmxConfigCreateSub(DMXConfigType type, - DMXConfigCommentPtr comment, - DMXConfigDisplayPtr display, - DMXConfigWallPtr wall, - DMXConfigOptionPtr option, - DMXConfigParamPtr param); -extern void dmxConfigFreeSub(DMXConfigSubPtr sub); -extern DMXConfigSubPtr dmxConfigSubComment(DMXConfigCommentPtr comment); -extern DMXConfigSubPtr dmxConfigSubDisplay(DMXConfigDisplayPtr display); -extern DMXConfigSubPtr dmxConfigSubWall(DMXConfigWallPtr wall); -extern DMXConfigSubPtr dmxConfigSubOption(DMXConfigOptionPtr option); -extern DMXConfigSubPtr dmxConfigSubParam(DMXConfigParamPtr param); -extern DMXConfigSubPtr dmxConfigAddSub(DMXConfigSubPtr head, - DMXConfigSubPtr sub); -extern DMXConfigVirtualPtr dmxConfigCreateVirtual(DMXConfigTokenPtr pStart, - DMXConfigStringPtr pName, - DMXConfigPairPtr pDim, - DMXConfigTokenPtr pOpen, - DMXConfigSubPtr pSubentry, - DMXConfigTokenPtr pClose); -extern void dmxConfigFreeVirtual(DMXConfigVirtualPtr virtual); -extern DMXConfigEntryPtr dmxConfigCreateEntry(DMXConfigType type, - DMXConfigCommentPtr comment, - DMXConfigVirtualPtr virtual); -extern void dmxConfigFreeEntry(DMXConfigEntryPtr entry); -extern DMXConfigEntryPtr dmxConfigAddEntry(DMXConfigEntryPtr head, - DMXConfigType type, - DMXConfigCommentPtr comment, - DMXConfigVirtualPtr virtual); -extern DMXConfigEntryPtr dmxConfigEntryComment(DMXConfigCommentPtr comment); -extern DMXConfigEntryPtr dmxConfigEntryVirtual(DMXConfigVirtualPtr virtual); - -#endif diff --git a/hw/dmx/config/dmxprint.c b/hw/dmx/config/dmxprint.c deleted file mode 100644 index c80e830e4..000000000 --- a/hw/dmx/config/dmxprint.c +++ /dev/null @@ -1,532 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * - * This file provides support routines and helper functions to be used - * to pretty-print DMX configurations. - * - * Because the DMX configuration file parsing should be capable of being - * used in a stand-alone fashion (i.e., independent from the DMX server - * source tree), no dependencies on other DMX routines are made. */ - -#ifdef HAVE_DMX_CONFIG_H -#include -#endif - -#include "dmxconfig.h" -#include "dmxparse.h" -#include "dmxprint.h" -#include "parser.h" -#include -#include -#include - -static FILE *str = NULL; -static int indent = 0; -static int pos = 0; - -/** Stack of indentation information used for pretty-printing - * configuration information. */ -static struct stack { - int base; - int comment; - int step; - struct stack *next; -} *stack, initialStack = { -0, 0, 4, NULL}; - -static void -dmxConfigIndent(void) -{ - int i; - - if (indent < 0) - indent = 0; - if (indent > 40) - indent = 40; - for (i = 0; i < indent; i++) - fprintf(str, " "); -} - -static void -dmxConfigNewline(void) -{ - if (pos) - fprintf(str, "\n"); - pos = 0; -} - -static void -dmxConfigPushState(int base, int comment, int step) -{ - struct stack *new = dmxConfigAlloc(sizeof(*new)); - - new->base = base; - new->comment = comment; - new->step = step; - new->next = stack; - stack = new; - indent = base; - dmxConfigNewline(); -} - -static void -dmxConfigPushComment(void) -{ - if (stack) - indent = stack->comment; -} - -static void -dmxConfigPushStep(void) -{ - if (stack) - indent = stack->step; -} - -static void -dmxConfigPopState(void) -{ - struct stack *old = stack; - - if (!stack) - return; - indent = old->base; - stack = old->next; - if (!stack) - dmxConfigLog("Stack underflow\n"); - dmxConfigFree(old); - dmxConfigNewline(); -} - -static void _X_ATTRIBUTE_PRINTF(4, 5) -dmxConfigOutput(int addSpace, int doNewline, const char *comment, - const char *format, ...) -{ - va_list args; - - if (!pos) - dmxConfigIndent(); - else if (addSpace) - fprintf(str, " "); - - if (format) { - va_start(args, format); - /* RATS: This hasn't been audited -- it - * could probably result in a buffer - * overflow. */ - pos += vfprintf(str, format, args); /* assumes no newlines! */ - va_end(args); - } - - if (comment) { - if (pos) - fprintf(str, " "); - pos += fprintf(str, "#%s", comment); - dmxConfigNewline(); - dmxConfigPushComment(); - } - else if (doNewline) - dmxConfigNewline(); -} - -static void -dmxConfigPrintComment(DMXConfigCommentPtr p) -{ - dmxConfigOutput(1, 1, p->comment, NULL); -} - -static void -dmxConfigPrintTokenFlag(DMXConfigTokenPtr p, int flag) -{ - if (!p) - return; - switch (p->token) { - case T_VIRTUAL: - dmxConfigPushState(0, 4, 4); - dmxConfigOutput(0, 0, p->comment, "virtual"); - break; - case T_DISPLAY: - dmxConfigPushState(4, 12, 16); - dmxConfigOutput(0, 0, p->comment, "display"); - break; - case T_WALL: - dmxConfigPushState(4, 12, 16); - dmxConfigOutput(0, 0, p->comment, "wall"); - break; - case T_OPTION: - dmxConfigPushState(4, 12, 16); - dmxConfigOutput(0, 0, p->comment, "option"); - break; - case T_PARAM: - dmxConfigPushState(4, 8, 12); - dmxConfigOutput(0, 0, p->comment, "param"); - break; - case ';': - dmxConfigOutput(0, 1, p->comment, ";"); - if (flag) - dmxConfigPopState(); - break; - case '{': - dmxConfigOutput(1, 1, p->comment, "{"); - dmxConfigPushStep(); - break; - case '}': - if (flag) - dmxConfigPopState(); - dmxConfigOutput(0, 1, p->comment, "}"); - break; - case '/': - dmxConfigOutput(1, 0, NULL, "/"); - break; - default: - dmxConfigLog("unknown token %d on line %d\n", p->token, p->line); - } -} - -static void -dmxConfigPrintToken(DMXConfigTokenPtr p) -{ - dmxConfigPrintTokenFlag(p, 1); -} - -static void -dmxConfigPrintTokenNopop(DMXConfigTokenPtr p) -{ - dmxConfigPrintTokenFlag(p, 0); -} - -static int -dmxConfigPrintQuotedString(const char *s) -{ - const char *pt; - - if (!s || !s[0]) - return 1; /* Quote empty string */ - for (pt = s; *pt; ++pt) - if (isspace(*pt)) - return 1; - return 0; -} - -static void -dmxConfigPrintString(DMXConfigStringPtr p, int quote) -{ - DMXConfigStringPtr pt; - - if (!p) - return; - for (pt = p; pt; pt = pt->next) { - if (quote && dmxConfigPrintQuotedString(pt->string)) { - dmxConfigOutput(1, 0, pt->comment, "\"%s\"", - pt->string ? pt->string : ""); - } - else - dmxConfigOutput(1, 0, pt->comment, "%s", - pt->string ? pt->string : ""); - } -} - -static int -dmxConfigPrintPair(DMXConfigPairPtr p, int addSpace) -{ - if (!p) - return 0; - if (p->token == T_OFFSET) { - if (!p->comment && !p->x && !p->y && p->xsign >= 0 && p->ysign >= 0) - return 0; - dmxConfigOutput(addSpace, 0, p->comment, "%c%d%c%d", - p->xsign < 0 ? '-' : '+', p->x, - p->ysign < 0 ? '-' : '+', p->y); - } - else { - if (!p->comment && !p->x && !p->y) - return 0; - dmxConfigOutput(addSpace, 0, p->comment, "%s%dx%d", - (p->token == T_ORIGIN) ? "@" : "", p->x, p->y); - } - return 1; -} - -static void -dmxConfigPrintDisplay(DMXConfigDisplayPtr p) -{ - DMXConfigToken dummyStart = { T_DISPLAY, 0, NULL }; - DMXConfigToken dummyEnd = { ';', 0, NULL }; - DMXConfigToken dummySep = { '/', 0, NULL }; - DMXConfigString dummyName = { T_STRING, 0, NULL, NULL, NULL }; - DMXConfigPair dummySDim = { T_DIMENSION, 0, NULL, 0, 0, 0, 0 }; - DMXConfigPair dummySOffset = { T_OFFSET, 0, NULL, 0, 0, 0, 0 }; - DMXConfigPair dummyRDim = { T_DIMENSION, 0, NULL, 0, 0, 0, 0 }; - DMXConfigPair dummyROffset = { T_OFFSET, 0, NULL, 0, 0, 0, 0 }; - DMXConfigPair dummyOrigin = { T_ORIGIN, 0, NULL, 0, 0, 0, 0 }; - int output; - - if (p->dname) - p->dname->string = p->name; - else - dummyName.string = p->name; - - if (p->dim && p->dim->scrn && p->dim->scrn->dim) { - p->dim->scrn->dim->x = p->scrnWidth; - p->dim->scrn->dim->y = p->scrnHeight; - } - else { - dummySDim.x = p->scrnWidth; - dummySDim.y = p->scrnHeight; - } - - if (p->dim && p->dim->scrn && p->dim->scrn->offset) { - p->dim->scrn->offset->x = p->scrnX; - p->dim->scrn->offset->y = p->scrnY; - } - else { - dummySOffset.x = p->scrnX; - dummySOffset.y = p->scrnY; - } - - if (p->dim && p->dim->root && p->dim->root->dim) { - p->dim->root->dim->x = p->rootWidth; - p->dim->root->dim->y = p->rootHeight; - } - else { - dummyRDim.x = p->rootWidth; - dummyRDim.y = p->rootHeight; - } - - if (p->dim && p->dim->root && p->dim->root->offset) { - p->dim->root->offset->x = p->rootX; - p->dim->root->offset->y = p->rootY; - } - else { - dummyROffset.x = p->rootX; - dummyROffset.y = p->rootY; - } - - if (p->origin) { - p->origin->x = p->rootXOrigin, p->origin->y = p->rootYOrigin; - p->origin->xsign = p->rootXSign, p->origin->ysign = p->rootYSign; - } - else { - dummyOrigin.x = p->rootXOrigin, dummyOrigin.y = p->rootYOrigin; - dummyOrigin.xsign = p->rootXSign, dummyOrigin.ysign = p->rootYSign; - } - - dmxConfigPrintToken(p->start ? p->start : &dummyStart); - dmxConfigPrintString(p->dname ? p->dname : &dummyName, 1); - - if (p->dim && p->dim->scrn && p->dim->scrn->dim) - output = dmxConfigPrintPair(p->dim->scrn->dim, 1); - else - output = dmxConfigPrintPair(&dummySDim, 1); - if (p->dim && p->dim->scrn && p->dim->scrn->offset) - dmxConfigPrintPair(p->dim->scrn->offset, !output); - else - dmxConfigPrintPair(&dummySOffset, !output); - - if (p->scrnWidth != p->rootWidth - || p->scrnHeight != p->rootHeight || p->rootX || p->rootY) { - dmxConfigPrintToken(&dummySep); - if (p->dim && p->dim->root && p->dim->root->dim) - output = dmxConfigPrintPair(p->dim->root->dim, 1); - else - output = dmxConfigPrintPair(&dummyRDim, 1); - if (p->dim && p->dim->root && p->dim->root->offset) - dmxConfigPrintPair(p->dim->root->offset, !output); - else - dmxConfigPrintPair(&dummyROffset, !output); - } - - dmxConfigPrintPair(p->origin ? p->origin : &dummyOrigin, 1); - dmxConfigPrintToken(p->end ? p->end : &dummyEnd); -} - -static void -dmxConfigPrintWall(DMXConfigWallPtr p) -{ - dmxConfigPrintToken(p->start); - dmxConfigPrintPair(p->wallDim, 1); - dmxConfigPrintPair(p->displayDim, 1); - dmxConfigPrintString(p->nameList, 1); - dmxConfigPrintToken(p->end); -} - -static void -dmxConfigPrintOption(DMXConfigOptionPtr p) -{ - DMXConfigToken dummyStart = { T_OPTION, 0, NULL }; - DMXConfigString dummyOption = { T_STRING, 0, NULL, NULL, NULL }; - DMXConfigToken dummyEnd = { ';', 0, NULL }; - - dummyOption.string = p->string; - - dmxConfigPrintToken(p->start ? p->start : &dummyStart); - dmxConfigPrintString(&dummyOption, 0); - dmxConfigPrintToken(p->end ? p->end : &dummyEnd); -} - -static void -dmxConfigPrintParam(DMXConfigParamPtr p) -{ - if (!p) - return; - if (p->start) { - if (p->open && p->close) { - dmxConfigPrintToken(p->start); - dmxConfigPrintToken(p->open); - dmxConfigPrintParam(p->next); - dmxConfigPrintToken(p->close); - } - else if (p->end && p->param) { - dmxConfigPrintToken(p->start); - dmxConfigPrintString(p->param, 1); - dmxConfigPrintToken(p->end); - } - else - dmxConfigLog("dmxConfigPrintParam: cannot handle format (a)\n"); - } - else if (p->end && p->param) { - dmxConfigPrintString(p->param, 1); - dmxConfigPrintTokenNopop(p->end); - dmxConfigPrintParam(p->next); - } - else - dmxConfigLog("dmxConfigPrintParam: cannot handle format (b)\n"); -} - -static void -dmxConfigPrintSub(DMXConfigSubPtr p) -{ - DMXConfigSubPtr pt; - - if (!p) - return; - for (pt = p; pt; pt = pt->next) { - switch (pt->type) { - case dmxConfigComment: - dmxConfigPrintComment(pt->comment); - break; - case dmxConfigDisplay: - dmxConfigPrintDisplay(pt->display); - break; - case dmxConfigWall: - dmxConfigPrintWall(pt->wall); - break; - case dmxConfigOption: - dmxConfigPrintOption(pt->option); - break; - case dmxConfigParam: - dmxConfigPrintParam(pt->param); - break; - default: - dmxConfigLog("dmxConfigPrintSub:" - " cannot handle type %d in subentry\n", pt->type); - } - } -} - -static void -dmxConfigPrintVirtual(DMXConfigVirtualPtr p) -{ - DMXConfigToken dummyStart = { T_VIRTUAL, 0, NULL }; - DMXConfigToken dummyOpen = { '{', 0, NULL }; - DMXConfigToken dummyClose = { '}', 0, NULL }; - DMXConfigString dummyName = { T_STRING, 0, NULL, NULL, NULL }; - DMXConfigPair dummyDim = { T_DIMENSION, 0, NULL, 0, 0 }; - - if (p->vname) - p->vname->string = p->name; - else - dummyName.string = p->name; - - if (p->dim) - p->dim->x = p->width, p->dim->y = p->height; - else - dummyDim.x = p->width, dummyDim.y = p->height; - - dmxConfigPrintToken(p->start ? p->start : &dummyStart); - dmxConfigPrintString(p->vname ? p->vname : &dummyName, 1); - dmxConfigPrintPair(p->dim ? p->dim : &dummyDim, 1); - dmxConfigPrintToken(p->open ? p->open : &dummyOpen); - dmxConfigPrintSub(p->subentry); - dmxConfigPrintToken(p->close ? p->close : &dummyClose); -} - -/** The configuration information in \a entry will be pretty-printed to - * the \a stream. If \a stream is NULL, then stdout will be used. */ -void -dmxConfigPrint(FILE * stream, DMXConfigEntryPtr entry) -{ - DMXConfigEntryPtr pt; - - if (!stream) - str = stdout; - else - str = stream; - - stack = &initialStack; - - for (pt = entry; pt; pt = pt->next) { - switch (pt->type) { - case dmxConfigComment: - dmxConfigPrintComment(pt->comment); - break; - case dmxConfigVirtual: - dmxConfigPrintVirtual(pt->virtual); - break; - default: - dmxConfigLog("dmxConfigPrint: cannot handle type %d in entry\n", - pt->type); - } - } - if (pos) - dmxConfigNewline(); -} - -/** The configuration information in \a p will be pretty-printed to the - * \a stream. If \a stream is NULL, then stdout will be used. */ -void -dmxConfigVirtualPrint(FILE * stream, DMXConfigVirtualPtr p) -{ - if (!stream) - str = stdout; - else - str = stream; - - stack = &initialStack; - - dmxConfigPrintVirtual(p); - if (pos) - dmxConfigNewline(); -} diff --git a/hw/dmx/config/dmxprint.h b/hw/dmx/config/dmxprint.h deleted file mode 100644 index d77bafce2..000000000 --- a/hw/dmx/config/dmxprint.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -/** \file - * Interface to DMX configuration file pretty-printer. \see dmxprint.c */ - -#ifndef _DMXPRINT_H_ -#define _DMXPRINT_H_ - -void dmxConfigPrint(FILE * str, DMXConfigEntryPtr entry); -void dmxConfigVirtualPrint(FILE * str, DMXConfigVirtualPtr p); - -#endif diff --git a/hw/dmx/config/dmxtodmx.c b/hw/dmx/config/dmxtodmx.c deleted file mode 100644 index 5a1a0b4b1..000000000 --- a/hw/dmx/config/dmxtodmx.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2002 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - * This is a simple filter for testing. - */ - -#include "dmxconfig.h" -#include "dmxparse.h" -#include "dmxprint.h" -#include "dmxcompat.h" - -extern int yyparse(void); -extern int yydebug; -extern FILE *yyin; - -int -main(int argc, char **argv) -{ - yydebug = 0; - yyparse(); - dmxConfigPrint(stdout, dmxConfigEntry); - return 0; -} diff --git a/hw/dmx/config/man/Makefile.am b/hw/dmx/config/man/Makefile.am deleted file mode 100644 index 9bb62a4c6..000000000 --- a/hw/dmx/config/man/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -include $(top_srcdir)/manpages.am -appman_PRE = xdmxconfig.man vdltodmx.man dmxtodmx.man diff --git a/hw/dmx/config/man/dmxtodmx.man b/hw/dmx/config/man/dmxtodmx.man deleted file mode 100644 index e93948755..000000000 --- a/hw/dmx/config/man/dmxtodmx.man +++ /dev/null @@ -1,41 +0,0 @@ -.\" $XFree86$ -.\" Copyright 2002 Red Hat Inc., Durham, North Carolina. -.\" All Rights Reserved. -.\" -.\" Permission is hereby granted, free of charge, to any person obtaining -.\" a copy of this software and associated documentation files (the -.\" "Software"), to deal in the Software without restriction, including -.\" without limitation on the rights to use, copy, modify, merge, -.\" publish, distribute, sublicense, and/or sell copies of the Software, -.\" and to permit persons to whom the Software is furnished to do so, -.\" subject to the following conditions: -.\" -.\" The above copyright notice and this permission notice (including the -.\" next paragraph) shall be included in all copies or substantial -.\" portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -.\" NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS -.\" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -.\" ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -.\" CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -.\" SOFTWARE. -.\" -.\" Authors: -.\" Rickard E. (Rik) Faith -.\" -.TH dmxtodmx 1 @vendorversion@ -.SH NAME -dmxtodmx - dmx configuration file parser and printer -.SH SYNOPSIS -.B dmxtodmx -.SH DESCRIPTION -.I dmxtodmx -reads the standard input, parsing a configuration file for the -.I Xdmx -distributed multi-head X server. After a successful parse, the file is -pretty-printed to standard output. -.SH "SEE ALSO" -Xdmx(1), vdltodmx(1), xdmxconfig(1) diff --git a/hw/dmx/config/man/vdltodmx.man b/hw/dmx/config/man/vdltodmx.man deleted file mode 100644 index aa5b4244f..000000000 --- a/hw/dmx/config/man/vdltodmx.man +++ /dev/null @@ -1,95 +0,0 @@ -.\" $XFree86$ -.\" Copyright 2002 Red Hat Inc., Durham, North Carolina. -.\" All Rights Reserved. -.\" -.\" Permission is hereby granted, free of charge, to any person obtaining -.\" a copy of this software and associated documentation files (the -.\" "Software"), to deal in the Software without restriction, including -.\" without limitation on the rights to use, copy, modify, merge, -.\" publish, distribute, sublicense, and/or sell copies of the Software, -.\" and to permit persons to whom the Software is furnished to do so, -.\" subject to the following conditions: -.\" -.\" The above copyright notice and this permission notice (including the -.\" next paragraph) shall be included in all copies or substantial -.\" portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -.\" NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS -.\" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -.\" ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -.\" CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -.\" SOFTWARE. -.\" -.\" Authors: -.\" Rickard E. (Rik) Faith -.\" -.TH vdltodmx 1 @vendorversion@ -.SH NAME -vdltodmx - dmx configuration file parser and printer -.SH SYNOPSIS -.B vdltodmx -.I infile -.I outfile -.SH DESCRIPTION -.I vdltodmx -reads the input file, which should be in VDL configuration file format. -After a successful parse, a file in Xdmx configuration file format is -written to the output file. -.P -The VDL file format is used with -.IR xmovie , -which is available from -http://www.llnl.gov/icc/lc/img/xmovie/xmovie.html -.SH EXAMPLE -Given the following VDL-format file: -.RS -.nf -0 -2 -# -# -2560 2048 Left two-thirds [restrict=*:2] -2 -:2.1 1280 2048 0 0 0 0 -:2.2 1280 2048 1280 0 0 0 -4 -1280 1024 0 0 -1280 1024 0 1024 -1280 1024 1280 0 -1280 1024 1280 1024 -# -2560 2048 Right two-thirds [restrict=*:2] -2 -:2.2 1280 2048 0 0 0 0 -:2.3 1280 2048 1280 0 0 0 -4 -1280 1024 1280 0 -1280 1024 1280 1024 -1280 1024 2560 0 -1280 1024 2560 1024 -.fi -.RE -the following DMX-format file will be produced: -.RS -.nf -# -# -virtual "Left two-thirds" 2560x2048 { - display :2.1 1280x2048; - display :2.2 1280x2048 @1280x0; -} -# -virtual "Right two-thirds" 2560x2048 { - display :2.2 1280x2048; - display :2.3 1280x2048 @1280x0; -} -.fi -.RE -.SH BUGS -If the VDL file is not in the expected format, the program will probably -dump core. -.SH "SEE ALSO" -Xdmx(1), xdmxconfig(1), vdl(3), xmovie(1) diff --git a/hw/dmx/config/man/xdmxconfig.man b/hw/dmx/config/man/xdmxconfig.man deleted file mode 100644 index 32731d1db..000000000 --- a/hw/dmx/config/man/xdmxconfig.man +++ /dev/null @@ -1,63 +0,0 @@ -.\" $XFree86$ -.\" Copyright 2002 Red Hat Inc., Durham, North Carolina. -.\" All Rights Reserved. -.\" -.\" Permission is hereby granted, free of charge, to any person obtaining -.\" a copy of this software and associated documentation files (the -.\" "Software"), to deal in the Software without restriction, including -.\" without limitation on the rights to use, copy, modify, merge, -.\" publish, distribute, sublicense, and/or sell copies of the Software, -.\" and to permit persons to whom the Software is furnished to do so, -.\" subject to the following conditions: -.\" -.\" The above copyright notice and this permission notice (including the -.\" next paragraph) shall be included in all copies or substantial -.\" portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -.\" NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS -.\" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -.\" ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -.\" CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -.\" SOFTWARE. -.\" -.\" Authors: -.\" Rickard E. (Rik) Faith -.\" -.TH xdmxconfig 1 @vendorversion@ -.SH NAME -xdmxconfig - a graphical configuration tool for Xdmx configuration files -.SH SYNOPSIS -.B xdmxconfig -[filename] -.SH DESCRIPTION -.I xdmxconfig -reads, edits, and writes configuration files for the Xdmx server. The -grammar for the configuration file is specified in the Xdmx(1) manual -page. -.PP -To start from scratch, create a "New Global" and specify the name and -overall dimensions for the configuration. Then use "New Display" to -enter more displays. -.PP -If there is more than one configuration, the configuration name button -will bring up a selection menu. -.PP -In the right-hand panel, the left mouse button will move the -highlighted display at "tool resolution"; the middle mouse button will -move the highlighted display by a single pixel (at "wall resolution"); -and the right mouse button will bring up a menu allowing the highlighted -display to be edited or deleted. The arrow keys will also move the -highlighted display by a single pixel. -.SH BUGS -Currently, entries with the -.B wall -keyword are not editable, but will be preserved in the new output file. -The tool will quit when requested by the user, even if a configuration -file has not been written out (i.e., without warning). The menu -interaction should be improved (menu entries that don't currently work -should be greyed-out, for example). The Help button does not work. -.SH "SEE ALSO" -Xdmx(1), vdltodmx(1) diff --git a/hw/dmx/config/meson.build b/hw/dmx/config/meson.build deleted file mode 100644 index 39b41c2cb..000000000 --- a/hw/dmx/config/meson.build +++ /dev/null @@ -1,82 +0,0 @@ -flex = find_program('flex') -bison = find_program('bison') - -lgen = generator( - flex, - output : '@PLAINNAME@.yy.c', - arguments : ['-o', '@OUTPUT@', '@INPUT@'] -) -lfiles = lgen.process('scanner.l') - -pgen = generator( - bison, - output : ['@BASENAME@.c', '@BASENAME@.h'], - arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'] -) -pfiles = pgen.process('parser.y') - -srcs_dmx_config = [ - 'dmxparse.c', - 'dmxprint.c', - 'dmxcompat.c', - 'dmxconfig.c', - pfiles, - lfiles, -] - -dmx_inc = [ - inc, - include_directories('../') -] - -dmx_c_args = [ - '-DHAVE_DMX_CONFIG_H', - '-DDMX_LOG_STANDALONE', -] - -dmx_config = static_library('dmx_config', - srcs_dmx_config, - include_directories: dmx_inc, - dependencies: common_dep, - link_with: libxlibc, - c_args: dmx_c_args, -) - -executable('xdmxconfig', - [ - 'xdmxconfig.c', - '../dmxlog.c', - 'Canvas.c', - ], - include_directories: [ - inc, - include_directories('../') - ], - dependencies: [ - common_dep, - dependency('xaw7'), - dependency('xmu'), - dependency('xt'), - dependency('xpm'), - dependency('x11'), - ], - link_with: dmx_config, - c_args: dmx_c_args, - install: true, -) - -executable('vdltodmx', - 'vdltodmx.c', - include_directories: dmx_inc, - link_with: dmx_config, - c_args: dmx_c_args, - install: true, -) - -executable('dmxtodmx', - 'dmxtodmx.c', - include_directories: dmx_inc, - link_with: dmx_config, - c_args: dmx_c_args, - install: true, -) diff --git a/hw/dmx/config/parser.y b/hw/dmx/config/parser.y deleted file mode 100644 index fa041a1c9..000000000 --- a/hw/dmx/config/parser.y +++ /dev/null @@ -1,227 +0,0 @@ -/* $XFree86$ */ -/* - * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * Authors: - * Rickard E. (Rik) Faith - * - */ - -%{ -#ifdef HAVE_DMX_CONFIG_H -#include -#endif - -#include "dmxparse.h" -#include -#include -#define YYDEBUG 1 -#define YYERROR_VERBOSE -#define YY_USE_PROTOS - -extern int yylex(void); -DMXConfigEntryPtr dmxConfigEntry = NULL; -#define APPEND(type, h, t) \ -{ \ - type pt; \ - for (pt = h; pt->next; pt = pt->next); \ - pt->next = t; \ -} -%} - -%union { - DMXConfigTokenPtr token; - DMXConfigStringPtr string; - DMXConfigNumberPtr number; - DMXConfigPairPtr pair; - DMXConfigFullDimPtr fdim; - DMXConfigPartDimPtr pdim; - DMXConfigDisplayPtr display; - DMXConfigWallPtr wall; - DMXConfigOptionPtr option; - DMXConfigParamPtr param; - DMXConfigCommentPtr comment; - DMXConfigSubPtr subentry; - DMXConfigVirtualPtr virtual; - DMXConfigEntryPtr entry; -} - - /* Terminals */ -%token '{' '}' ';' '/' T_VIRTUAL T_DISPLAY T_WALL T_OPTION T_PARAM -%token T_STRING -%token T_DIMENSION T_OFFSET T_ORIGIN -%token T_COMMENT T_LINE_COMMENT - - /* Non-termials */ -%type Display Wall Terminal Open Close -%type NameList Name -%type Dimension Offset Origin -%type PartialDim -%type FullDim -%type DisplayEntry -%type