diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/dmx/config/dmxcompat.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/dmx/config/dmxcompat.c | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/nx-X11/programs/Xserver/hw/dmx/config/dmxcompat.c b/nx-X11/programs/Xserver/hw/dmx/config/dmxcompat.c deleted file mode 100644 index 3681e8aa2..000000000 --- a/nx-X11/programs/Xserver/hw/dmx/config/dmxcompat.c +++ /dev/null @@ -1,237 +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 <faith@redhat.com> - */ - -/** \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 <dmx-config.h> -#endif - -#include "dmxconfig.h" -#include "dmxparse.h" -#include "dmxcompat.h" -#include "parser.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> - -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, ' '); - strncpy(name, buf, pt-buf); - name[pt-buf] = '\0'; - *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 vcount = 0; - 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: - vcount = dmxVDLCount(buf); - 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; - } - } - return entry; -} |