aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/extras/Xpm/cxpm
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/extras/Xpm/cxpm')
-rw-r--r--nx-X11/extras/Xpm/cxpm/Imakefile66
-rw-r--r--nx-X11/extras/Xpm/cxpm/Makefile.noX64
-rw-r--r--nx-X11/extras/Xpm/cxpm/cxpm.c155
-rw-r--r--nx-X11/extras/Xpm/cxpm/cxpm.man49
4 files changed, 334 insertions, 0 deletions
diff --git a/nx-X11/extras/Xpm/cxpm/Imakefile b/nx-X11/extras/Xpm/cxpm/Imakefile
new file mode 100644
index 000000000..97ac8e66f
--- /dev/null
+++ b/nx-X11/extras/Xpm/cxpm/Imakefile
@@ -0,0 +1,66 @@
+XCOMM
+XCOMM
+XCOMM Copyright (C) 1998 Arnaud LE HORS
+XCOMM
+XCOMM Permission is hereby granted, free of charge, to any person obtaining a
+XCOMM copy of this software and associated documentation files
+XCOMM (the "Software"), to deal in the Software without restriction, including
+XCOMM without limitation the rights to use, copy, modify, merge, publish,
+XCOMM distribute, sublicense, and/or sell copies of the Software, and to permit
+XCOMM persons to whom the Software is furnished to do so, subject to the
+XCOMM following conditions:
+XCOMM The above copyright notice and this permission notice shall be included
+XCOMM in all copies or substantial portions of the Software.
+XCOMM
+XCOMM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+XCOMM OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+XCOMM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+XCOMM IN NO EVENT SHALL Arnaud LE HORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+XCOMM OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+XCOMM ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+XCOMM OTHER DEALINGS IN THE SOFTWARE.
+XCOMM
+XCOMM Except as contained in this notice, the name of Arnaud LE HORS shall not
+XCOMM be used in advertising or otherwise to promote the sale, use or other
+XCOMM dealings in this Software without prior written authorization from
+XCOMM Arnaud LE HORS.
+XCOMM
+
+XCOMM
+XCOMM XPM Imakefile - Arnaud LE HORS
+XCOMM
+
+XCOMM default locations
+#ifndef XpmBinDir
+#define XpmBinDir $(BINDIR)
+#endif
+#ifndef XpmManDir
+#define XpmManDir $(MANDIR)
+#endif
+#ifndef XpmIncDir
+#define XpmIncDir $(BUILDINCTOP)
+#endif
+
+ XPMBINDIR = XpmBinDir
+ XPMMANDIR = XpmManDir
+ XPMINCDIR = XpmIncDir
+
+ INCLUDES = -I$(BUILDINCDIR) -I$(XPMINCDIR)
+
+#ifdef OsNameDefines
+OS_NAME_DEFINES = OsNameDefines
+#endif
+
+ SRCS = cxpm.c
+ OBJS = cxpm.o
+
+#if (ProjectX < 6)
+AllTarget(cxpm)
+#else
+AllTarget(ProgramTargetName(cxpm))
+#endif
+NormalProgramTarget(cxpm,$(OBJS),$(DEPLIB),$(LOCAL_LIBRARIES),)
+InstallProgram(cxpm,$(XPMBINDIR))
+InstallManPage(cxpm,$(XPMMANDIR))
+DependTarget()
+LintTarget()
diff --git a/nx-X11/extras/Xpm/cxpm/Makefile.noX b/nx-X11/extras/Xpm/cxpm/Makefile.noX
new file mode 100644
index 000000000..9b51755f5
--- /dev/null
+++ b/nx-X11/extras/Xpm/cxpm/Makefile.noX
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 1998 Arnaud LE HORS
+#
+# 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 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 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
+# Arnaud LE HORS 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 Arnaud LE HORS shall not be
+# used in advertising or otherwise to promote the sale, use or other dealings
+# in this Software without prior written authorization from Arnaud LE HORS.
+#
+
+#
+# XPM Makefile - Arnaud LE HORS
+#
+
+# where the program will be installed
+DESTBINDIR=/usr/local/bin/X11
+# where the man page will be installed
+MANDIR=/usr/local/man/manl
+
+CC = cc
+RM = rm -f
+# on sysV, define this as cp.
+INSTALL = install -c
+
+CDEBUGFLAGS= -O
+
+INCLUDES= -I..
+
+OBJS= cxpm.o
+
+CFLAGS= $(CDEBUGFLAGS) $(INCLUDES) $(DEFINES)
+
+all: cxpm
+
+clean:
+ $(RM) *.o cxpm
+
+cxpm: cxpm.o
+ $(CC) $(CFLAGS) cxpm.o -o cxpm
+
+install:
+ $(INSTALL) -m 0755 cxpm $(DESTBINDIR)
+
+install.man:
+ $(INSTALL) -m 0644 cxpm.man $(MANDIR)/cxpm.l
+
+# Other dependencies.
+cxpm.o: ../lib/XpmI.h ../lib/data.c ../lib/parse.c ../lib/RdFToI.c \
+ ../lib/hashtab.c ../lib/misc.c ../lib/Attrib.c ../lib/Image.c
diff --git a/nx-X11/extras/Xpm/cxpm/cxpm.c b/nx-X11/extras/Xpm/cxpm/cxpm.c
new file mode 100644
index 000000000..6a7cd9db3
--- /dev/null
+++ b/nx-X11/extras/Xpm/cxpm/cxpm.c
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 1998 Arnaud LE HORS
+ *
+ * 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 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 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
+ * Arnaud LE HORS 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 Arnaud LE HORS shall not be
+ * used in advertising or otherwise to promote the sale, use or other dealings
+ * in this Software without prior written authorization from Arnaud LE HORS.
+ */
+/* $XFree86: xc/extras/Xpm/cxpm/cxpm.c,v 1.2 2001/08/01 00:44:34 tsi Exp $ */
+
+/*****************************************************************************\
+* cxpm.c: *
+* *
+* Check XPM File program *
+* *
+* Developed by Arnaud Le Hors *
+\*****************************************************************************/
+
+#define CXPMPROG
+
+#include "XpmI.h"
+
+#undef xpmGetC
+#define xpmGetC(data) sGetc(data, data->stream.file)
+#define Getc sGetc
+#define Ungetc sUngetc
+
+
+/*
+ * special getc and ungetc counting read lines and characters
+ * note that 's' could stand both for "special" and "slow" ;-)
+ */
+static int
+sGetc(data, file)
+ xpmData *data;
+ FILE *file;
+{
+ int c = getc(data->stream.file);
+ if (c == '\n') {
+ data->lineNum++;
+ data->charNum = 0;
+ } else {
+ data->charNum++;
+ }
+ return c;
+}
+
+static void
+sUngetc(data, c, file)
+ xpmData *data;
+ int c;
+ FILE *file;
+{
+ ungetc(c, data->stream.file);
+ if (c == '\n') {
+ data->lineNum--;
+ data->charNum = 0;
+ } else {
+ data->charNum--;
+ }
+}
+
+/* include all the code we need (yeah, I know, quite ugly...) */
+#include "data.c"
+#include "parse.c"
+#include "RdFToI.c" /* only for OpenReadFile and xpmDataClose */
+#include "hashtab.c"
+#include "misc.c"
+#include "Attrib.c"
+#include "Image.c"
+
+void
+ErrorMessage(ErrorStatus, data)
+ int ErrorStatus;
+ xpmData *data;
+
+{
+ char *error = NULL;
+
+ switch (ErrorStatus) {
+ case XpmSuccess:
+ return;
+ case XpmOpenFailed:
+ error = "Cannot open file";
+ break;
+ case XpmFileInvalid:
+ error = "Invalid XPM file";
+ break;
+ case XpmNoMemory:
+ error = "Not enough memory";
+ break;
+ case XpmColorFailed:
+ error = "Failed to parse color";
+ break;
+ }
+
+ if (error) {
+ fprintf(stderr, "Xpm Error: %s.\n", error);
+ if (ErrorStatus == XpmFileInvalid && data)
+ fprintf(stderr, "Error found line %d near character %d\n",
+ data->lineNum + 1,
+ data->charNum + 1);
+ exit(1);
+ }
+}
+
+int
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ XpmImage image;
+ char *filename;
+ int ErrorStatus;
+ xpmData data;
+
+ if (argc > 1) {
+ if (!strcmp(argv[1], "-?") || !strncmp(argv[1], "-h", 2)) {
+ fprintf(stderr, "Usage: %s [filename]\n", argv[0]);
+ exit(1);
+ }
+ filename = argv[1];
+ } else {
+ filename = NULL;
+ }
+
+ xpmInitXpmImage(&image);
+
+ if ((ErrorStatus = OpenReadFile(filename, &data)) != XpmSuccess)
+ ErrorMessage(ErrorStatus, NULL);
+
+ ErrorStatus = xpmParseData(&data, &image, NULL);
+ ErrorMessage(ErrorStatus, &data);
+
+ xpmDataClose(&data);
+ XpmFreeXpmImage(&image);
+
+ exit(0);
+}
diff --git a/nx-X11/extras/Xpm/cxpm/cxpm.man b/nx-X11/extras/Xpm/cxpm/cxpm.man
new file mode 100644
index 000000000..21d63fd21
--- /dev/null
+++ b/nx-X11/extras/Xpm/cxpm/cxpm.man
@@ -0,0 +1,49 @@
+.\"Copyright (C) 1998 Arnaud LE HORS
+.\"
+.\"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 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 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
+.\"Arnaud LE HORS 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 Arnaud LE HORS shall not be
+.\"used in advertising or otherwise to promote the sale, use or other dealings
+.\"in this Software without prior written authorization from Arnaud LE HORS.
+.\"
+.nr )S 12
+.TH CXPM 1
+.PD
+.ad b
+.SH NAME
+cxpm \- Check an XPM (X PixMap) file - XPM 1, 2, or 3.
+.SH SYNOPSIS
+\fBcxpm\fR
+[\|\fIfilename\fP\|]
+.SH DESCRIPTION
+.PP
+The \fBcxpm\fP program can be used to check the format of any XPM (version 1, 2,
+or 3) file. On error, unlike \fBsxpm\fR, \fBcxpm\fR prints out an error message
+indicating where the parser choked. This should help finding out what's wrong
+with an XPM file but do not expect too much from it though. This is not even
+close from being some kind of lint program for XPM. First, it stops at the
+first error it encounters - so several fix and retry cycles may be necessary to
+get your file to parse successfully. Second, \fBcxpm\fP only cares about
+the format. If, for instance, your pixmap uses too many colors for your system
+you still may experience difficulties displaying it. Be warned.
+.PP
+When no \fIfilename\fP is given \fBcxpm\fR reads from the standard input.
+.SH AUTHOR
+Arnaud Le Hors (lehors@sophia.inria.fr)
+.br
+Copyright (C) 1998 by Arnaud LE HORS.