summaryrefslogtreecommitdiff
path: root/app/xphelloworld/xpsimplehelloworld
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-25 20:52:24 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-25 20:52:24 +0000
commitcf87db164aa2401ec33a041d3969d6ccb1ef49d9 (patch)
tree9b65838d7e1aee39d37defb896a5fd6a3922d5ba /app/xphelloworld/xpsimplehelloworld
parent2387c426e6dfc2b0a2d0aa5585dbeb580f5ea91e (diff)
Importing from X.Org 7.2RC2
Diffstat (limited to 'app/xphelloworld/xpsimplehelloworld')
-rw-r--r--app/xphelloworld/xpsimplehelloworld/Makefile.am33
-rw-r--r--app/xphelloworld/xpsimplehelloworld/Makefile.in504
-rw-r--r--app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c405
-rw-r--r--app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man43
-rw-r--r--app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml140
5 files changed, 1125 insertions, 0 deletions
diff --git a/app/xphelloworld/xpsimplehelloworld/Makefile.am b/app/xphelloworld/xpsimplehelloworld/Makefile.am
new file mode 100644
index 000000000..b62f14f96
--- /dev/null
+++ b/app/xphelloworld/xpsimplehelloworld/Makefile.am
@@ -0,0 +1,33 @@
+#
+# Copyright 2005 Red Hat, Inc.
+#
+# 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, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+bin_PROGRAMS = xpsimplehelloworld
+
+xpsimplehelloworld_CFLAGS = $(XPSIMPLEHELLOWORLD_CFLAGS)
+xpsimplehelloworld_LDADD = $(XPSIMPLEHELLOWORLD_LIBS)
+
+xpsimplehelloworld_SOURCES = \
+ xpsimplehelloworld.c
+
+dist_man1_MANS = \
+ xpsimplehelloworld.man
+
+EXTRA_DIST = xpsimplehelloworld.sgml
diff --git a/app/xphelloworld/xpsimplehelloworld/Makefile.in b/app/xphelloworld/xpsimplehelloworld/Makefile.in
new file mode 100644
index 000000000..a74de85d1
--- /dev/null
+++ b/app/xphelloworld/xpsimplehelloworld/Makefile.in
@@ -0,0 +1,504 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Copyright 2005 Red Hat, Inc.
+#
+# 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, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_MOTIFAPPS_FALSE = @BUILD_MOTIFAPPS_FALSE@
+BUILD_MOTIFAPPS_TRUE = @BUILD_MOTIFAPPS_TRUE@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XPAWHELLOWORLD_CFLAGS = @XPAWHELLOWORLD_CFLAGS@
+XPAWHELLOWORLD_LIBS = @XPAWHELLOWORLD_LIBS@
+XPHELLOWORLD_CFLAGS = @XPHELLOWORLD_CFLAGS@
+XPHELLOWORLD_LIBS = @XPHELLOWORLD_LIBS@
+XPSIMPLEHELLOWORLD_CFLAGS = @XPSIMPLEHELLOWORLD_CFLAGS@
+XPSIMPLEHELLOWORLD_LIBS = @XPSIMPLEHELLOWORLD_LIBS@
+XPXMHELLOWORLD_CFLAGS = @XPXMHELLOWORLD_CFLAGS@
+XPXMHELLOWORLD_LIBS = @XPXMHELLOWORLD_LIBS@
+XPXTHELLOWORLD_CFLAGS = @XPXTHELLOWORLD_CFLAGS@
+XPXTHELLOWORLD_LIBS = @XPXTHELLOWORLD_LIBS@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build_alias = @build_alias@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+bin_PROGRAMS = xpsimplehelloworld
+
+xpsimplehelloworld_CFLAGS = $(XPSIMPLEHELLOWORLD_CFLAGS)
+xpsimplehelloworld_LDADD = $(XPSIMPLEHELLOWORLD_LIBS)
+
+xpsimplehelloworld_SOURCES = \
+ xpsimplehelloworld.c
+
+
+dist_man1_MANS = \
+ xpsimplehelloworld.man
+
+
+EXTRA_DIST = xpsimplehelloworld.sgml
+subdir = xpsimplehelloworld
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = xpsimplehelloworld$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_xpsimplehelloworld_OBJECTS = \
+ xpsimplehelloworld-xpsimplehelloworld.$(OBJEXT)
+xpsimplehelloworld_OBJECTS = $(am_xpsimplehelloworld_OBJECTS)
+xpsimplehelloworld_DEPENDENCIES =
+xpsimplehelloworld_LDFLAGS =
+
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = \
+@AMDEP_TRUE@ ./$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(xpsimplehelloworld_SOURCES)
+
+NROFF = nroff
+MANS = $(dist_man1_MANS)
+DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(xpsimplehelloworld_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu xpsimplehelloworld/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+xpsimplehelloworld$(EXEEXT): $(xpsimplehelloworld_OBJECTS) $(xpsimplehelloworld_DEPENDENCIES)
+ @rm -f xpsimplehelloworld$(EXEEXT)
+ $(LINK) $(xpsimplehelloworld_LDFLAGS) $(xpsimplehelloworld_OBJECTS) $(xpsimplehelloworld_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
+
+xpsimplehelloworld-xpsimplehelloworld.o: xpsimplehelloworld.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xpsimplehelloworld_CFLAGS) $(CFLAGS) -MT xpsimplehelloworld-xpsimplehelloworld.o -MD -MP -MF "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo" \
+@am__fastdepCC_TRUE@ -c -o xpsimplehelloworld-xpsimplehelloworld.o `test -f 'xpsimplehelloworld.c' || echo '$(srcdir)/'`xpsimplehelloworld.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo" "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po"; \
+@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xpsimplehelloworld.c' object='xpsimplehelloworld-xpsimplehelloworld.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po' tmpdepfile='$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xpsimplehelloworld_CFLAGS) $(CFLAGS) -c -o xpsimplehelloworld-xpsimplehelloworld.o `test -f 'xpsimplehelloworld.c' || echo '$(srcdir)/'`xpsimplehelloworld.c
+
+xpsimplehelloworld-xpsimplehelloworld.obj: xpsimplehelloworld.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xpsimplehelloworld_CFLAGS) $(CFLAGS) -MT xpsimplehelloworld-xpsimplehelloworld.obj -MD -MP -MF "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo" \
+@am__fastdepCC_TRUE@ -c -o xpsimplehelloworld-xpsimplehelloworld.obj `if test -f 'xpsimplehelloworld.c'; then $(CYGPATH_W) 'xpsimplehelloworld.c'; else $(CYGPATH_W) '$(srcdir)/xpsimplehelloworld.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo" "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po"; \
+@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xpsimplehelloworld.c' object='xpsimplehelloworld-xpsimplehelloworld.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.Po' tmpdepfile='$(DEPDIR)/xpsimplehelloworld-xpsimplehelloworld.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xpsimplehelloworld_CFLAGS) $(CFLAGS) -c -o xpsimplehelloworld-xpsimplehelloworld.obj `if test -f 'xpsimplehelloworld.c'; then $(CYGPATH_W) 'xpsimplehelloworld.c'; else $(CYGPATH_W) '$(srcdir)/xpsimplehelloworld.c'; fi`
+uninstall-info-am:
+
+man1dir = $(mandir)/man1
+install-man1: $(man1_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 1*) ;; \
+ *) ext='1' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ done
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 1*) ;; \
+ *) ext='1' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(MANS)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man: install-man1
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+
+uninstall-man: uninstall-man1
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic ctags distclean distclean-compile \
+ distclean-generic distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-binPROGRAMS install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-man1 install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-info-am \
+ uninstall-man uninstall-man1
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c
new file mode 100644
index 000000000..3fd05e8c5
--- /dev/null
+++ b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c
@@ -0,0 +1,405 @@
+/*
+ * $Xorg: xphelloworld.c,v 1.2 2002/05/10 06:54:^1 gisburn Exp $
+ *
+ * xphelloworld - Xprint version of hello world
+ *
+ *
+Copyright 2002-2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+All Rights Reserved.
+
+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.
+ *
+ * Author: Roland Mainz <roland.mainz@nrubsig.org>
+ */
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/XprintUtil/xprintutil.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+/* Turn a NULL pointer string into an empty string */
+#define NULLSTR(x) (((x)!=NULL)?(x):(""))
+
+#define Log(x) { if(verbose) printf x; }
+#define Msg(x) { if(!quiet) printf x; }
+
+static const char *ProgramName; /* program name (from argv[0]) */
+static Bool verbose = False; /* verbose output what the program is doing */
+Bool quiet = False; /* be quiet (no output except errors) */
+
+static
+void usage(void)
+{
+ fprintf (stderr, "usage: %s [options]\n", ProgramName);
+ fprintf (stderr, "-printer printernname\tprinter to use\n");
+ fprintf (stderr, "-printfile file\tprint to file instead of printer\n");
+ fprintf (stderr, "-embedpsl2data string\tPostScript level 2 fragment to embed\n"
+ "\t\t(use 'xppsembeddemo1' to embed demo data)\n");
+ fprintf (stderr, "-v\tverbose output\n");
+ fprintf (stderr, "-q\tbe quiet (no output except errors)\n");
+ fprintf (stderr, "\n");
+ exit(EXIT_FAILURE);
+}
+
+/* strstr(), case-insensitive */
+static
+char *str_case_str(const char *s, const char *find)
+{
+ size_t len;
+ char c,
+ sc;
+
+ if ((c = tolower(*find++)) != '\0')
+ {
+ len = strlen(find);
+ do
+ {
+ do
+ {
+ if ((sc = tolower(*s++)) == '\0')
+ return NULL;
+ } while (sc != c);
+ } while (strncasecmp(s, find, len) != 0);
+ s--;
+ }
+ return ((char *)s);
+}
+
+static
+int do_hello_world(const char *printername, const char *printerfile, const char *psembeddata )
+{
+ Display *pdpy; /* X connection */
+ XPContext pcontext; /* Xprint context */
+ void *printtofile_handle; /* "context" when printing to file */
+ int xp_event_base, /* XpExtension even base */
+ xp_error_base; /* XpExtension error base */
+ long dpi_x = 0L,
+ dpi_y = 0L;
+ Screen *pscreen;
+ int pscreennumber;
+ Window pwin;
+ XGCValues gcvalues;
+ GC pgc;
+ unsigned short dummy;
+ XRectangle winrect;
+ char fontname[256]; /* BUG: is this really big enougth ? */
+ XFontStruct *font;
+ char *scr;
+
+ if( XpuGetPrinter(printername, &pdpy, &pcontext) != 1 )
+ {
+ fprintf(stderr, "Cannot open printer '%s'\n", printername);
+ return(EXIT_FAILURE);
+ }
+
+ if( XpQueryExtension(pdpy, &xp_event_base, &xp_error_base) == False )
+ {
+ fprintf(stderr, "XpQueryExtension() failed.\n");
+ XpuClosePrinterDisplay(pdpy, pcontext);
+ return(EXIT_FAILURE);
+ }
+
+ /* Listen to XP(Start|End)(Job|Doc|Page)Notify events).
+ * This is mantatory as Xp(Start|End)(Job|Doc|Page) functions are _not_
+ * syncronous !!
+ * Not waiting for such events may cause that subsequent data may be
+ * destroyed/corrupted!!
+ */
+ XpSelectInput(pdpy, pcontext, XPPrintMask);
+
+ /* Set job title */
+ XpuSetJobTitle(pdpy, pcontext, "Hello world for Xprint");
+
+ /* Set print context
+ * Note that this modifies the available fonts, including builtin printer prints.
+ * All XListFonts()/XLoadFont() stuff should be done _after_ setting the print
+ * context to obtain the proper fonts.
+ */
+ XpSetContext(pdpy, pcontext);
+
+ /* Get default printer reolution */
+ if( XpuGetResolution(pdpy, pcontext, &dpi_x, &dpi_y) != 1 )
+ {
+ fprintf(stderr, "No default resolution for printer '%s'.\n", printername);
+ XpuClosePrinterDisplay(pdpy, pcontext);
+ return(EXIT_FAILURE);
+ }
+
+ if( printerfile )
+ {
+ Log(("starting job (to file '%s').\n", printerfile));
+ printtofile_handle = XpuStartJobToFile(pdpy, pcontext, printerfile);
+ if( !printtofile_handle )
+ {
+ fprintf(stderr, "%s: Error: %s while trying to print to file.\n",
+ ProgramName, strerror(errno));
+ XpuClosePrinterDisplay(pdpy, pcontext);
+ return(EXIT_FAILURE);
+ }
+
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPStartJobNotify);
+ }
+ else
+ {
+ Log(("starting job.\n"));
+ XpuStartJobToSpooler(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPStartJobNotify);
+ }
+
+#ifdef MULTIPLE_DOCUMENTS_IN_ONE_JOB
+ /* Start document (one job can contain any number of "documents")
+ * XpStartDoc() isn't mandatory if job only contains one document - first
+ * XpStartPage() will generate a "synthetic" XpStartDoc() if one had not
+ * already been done.
+ */
+ XpStartDoc(pdpy, XPDocNormal);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPStartDocNotify);
+#endif /* MULTIPLE_DOCUMENTS_IN_ONE_JOB */
+
+ pscreen = XpGetScreenOfContext(pdpy, pcontext);
+ pscreennumber = XScreenNumberOfScreen(pscreen);
+
+ /* Obtain some info about page geometry */
+ XpGetPageDimensions(pdpy, pcontext, &dummy, &dummy, &winrect);
+
+ pwin = XCreateSimpleWindow(pdpy, XRootWindowOfScreen(pscreen),
+ winrect.x, winrect.y, winrect.width, winrect.height,
+ 10,
+ XBlackPixel(pdpy, pscreennumber),
+ XWhitePixel(pdpy, pscreennumber));
+
+ gcvalues.background = XWhitePixel(pdpy, pscreennumber);
+ gcvalues.foreground = XBlackPixel(pdpy, pscreennumber);
+
+ pgc = XCreateGC(pdpy, pwin, GCBackground|GCForeground, &gcvalues);
+
+ Log(("start page.\n"));
+ XpStartPage(pdpy, pwin);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPStartPageNotify);
+
+ /* Mapping the window inside XpStartPage()/XpEndPage()
+ * Set XCreateWindow/border_width to 0 or move XMapWindow in front of
+ * XpStartPage() to get rid of the surrounding black border lines.
+ * (This is usually done before XpStartPage() in real applications)
+ */
+ XMapWindow(pdpy, pwin);
+
+ /* usual rendering stuff..... */
+
+ sprintf(fontname, "-*-*-*-*-*-*-*-180-%ld-%ld-*-*-iso8859-1", dpi_x, dpi_y);
+ font = XLoadQueryFont(pdpy, fontname);
+ XSetFont(pdpy, pgc, font->fid);
+ XDrawString(pdpy, pwin, pgc, 100, 100, "hello world from X11 print system", 33);
+
+#define DO_EMBED_TEST 1
+
+#ifdef DO_EMBED_TEST
+ if( psembeddata )
+ {
+ char *embedded_formats_supported;
+
+ embedded_formats_supported = XpGetOneAttribute(pdpy, pcontext, XPPrinterAttr, "xp-embedded-formats-supported");
+
+ Log(("psembed: xp-embedded-formats-supported='%s'\n", NULLSTR(embedded_formats_supported)));
+
+ /* MAX(XExtendedMaxRequestSize(pdpy), XMaxRequestSize(pdpy)) defines the
+ * maximum length of emebdded PostScript data which can be send in one
+ * step using XpPutDocumentData() */
+ Log(("psembed: XExtendedMaxRequestSize=%ld\n", (long)XExtendedMaxRequestSize(pdpy)));
+ Log(("psembed: XMaxRequestSize=%ld\n", (long)XMaxRequestSize(pdpy)));
+
+ /* Should we embed the demo ? */
+ if( !strcmp(psembeddata, "xppsembeddemo1") )
+ {
+ Log(("psembed: Using PS embedding demo 1\n"));
+ psembeddata = "newpath\n270 360 moveto\n 0 72 rlineto\n"
+ "72 0 rlineto\n 0 -72 rlineto\n closepath\n fill\n";
+ }
+ else
+ {
+ Log(("psembed: Using user PS embedding data = '%s'\n", psembeddata));
+ }
+
+ /* Check whether "PostScript Level 2" is supported as embedding format
+ * (The content of the "xp-embedded-formats-supported" attribute needs
+ * to be searched in a case-insensitive way since the model-configs
+ * may use the same word with multiple variants of case
+ * (e.g. "PostScript" vs. "Postscript" or "PCL" vs. "Pcl" etc.")
+ * To avoid problems we simply use |str_case_str()| (case-insensitive
+ * strstr()) instead of |strstr()| here...)
+ */
+ if( embedded_formats_supported &&
+ (str_case_str(embedded_formats_supported, "PostScript 2") != NULL) )
+ {
+ /* Note that the emebdded PostScript code uses the same resolution and
+ * coordinate space as currently be used by the DDX (if you don not
+ * want that simply reset it yourself :) */
+ char *test = (char *)psembeddata;
+ int test_len = strlen(test);
+ char *type = "PostScript 2"; /* Format of embedded data
+ * (older PS DDX may be picky, fixed via
+ * http://xprint.mozdev.org/bugs/show_bug.cgi?id=4023)
+ */
+ char *option = ""; /* PostScript DDX does not support any options yet
+ * (in general |BadValue| will be returned for not
+ * supported options/option values) */
+ XpPutDocumentData(pdpy, pwin, test, test_len, type, option);
+ }
+ else
+ {
+ Log(("psembed: error: cannot embed data, 'PostScript 2' not supported as embedded data format for this printer\n"));
+ }
+ }
+#endif /* DO_EMBED_TEST */
+
+ XpEndPage(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPEndPageNotify);
+ Log(("end page.\n"));
+
+#ifdef DO_SOME_MORE_RENDERING
+ XpStartPage(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPStartPageNotify);
+
+ /* some more rendering..... */
+
+ XpEndPage(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPEndPageNotify);
+#endif /* DO_SOME_MORE_RENDERING */
+
+#ifdef MULTIPLE_DOCUMENTS_IN_ONE_JOB
+ /* End document. Do _not_ use it if you did not explicitly used
+ * XpStartDoc() above (e.g. if XpStartDoc() was triggered by first
+ * XpStartPage() - see comment about XpStartDoc() above...
+ */
+ XpEndDoc(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPEndDocNotify);
+#endif /* MULTIPLE_DOCUMENTS_IN_ONE_JOB */
+
+ /* End the print job - the final results are sent by the X print
+ * server to the spooler sub system.
+ */
+ XpEndJob(pdpy);
+ XpuWaitForPrintNotify(pdpy, xp_event_base, XPEndJobNotify);
+ Log(("end job.\n"));
+
+ if( printerfile )
+ {
+ if( XpuWaitForPrintFileChild(printtofile_handle) != XPGetDocFinished )
+ {
+ fprintf(stderr, "%s: Error while printing to file.\n", ProgramName);
+ XpuClosePrinterDisplay(pdpy, pcontext);
+ return(EXIT_FAILURE);
+ }
+ }
+
+ /* End of spooled job - get spooler command results and print them */
+ scr = XpGetOneAttribute(pdpy, pcontext, XPJobAttr, "xp-spooler-command-results");
+ if( scr )
+ {
+ if( strlen(scr) > 0 )
+ {
+ const char *msg = XpuCompoundTextToXmb(pdpy, scr);
+ if( msg )
+ {
+ Msg(("Spooler command returned '%s'.\n", msg));
+ XpuFreeXmbString(msg);
+ }
+ else
+ {
+ Msg(("Spooler command returned '%s' (unconverted).\n", scr));
+ }
+ }
+
+ XFree((void *)scr);
+ }
+
+ XpuClosePrinterDisplay(pdpy, pcontext);
+ return(EXIT_SUCCESS);
+}
+
+int main (int argc, char *argv[])
+{
+ const char *printername = NULL; /* printer to query */
+ const char *toFile = NULL; /* output file (instead of printer) */
+ const char *embedpsl2data = NULL; /* PS Level 2 code fragment for embedding in output */
+ XPPrinterList plist; /* list of printers */
+ int plist_count; /* number of entries in |plist|-array */
+ int i;
+ int retval;
+
+ ProgramName = argv[0];
+
+ for (i = 1; i < argc; i++)
+ {
+ char *arg = argv[i];
+ int len = strlen(arg);
+
+ if (!strncmp("-printer", arg, len))
+ {
+ if (++i >= argc)
+ usage();
+ printername = argv[i];
+ }
+ else if (!strncmp("-printfile", arg, len))
+ {
+ if (++i >= argc)
+ usage();
+ toFile = argv[i];
+ }
+ else if (!strncmp("-embedpsl2data", arg, len))
+ {
+ if (++i >= argc)
+ usage();
+ embedpsl2data = argv[i];
+ }
+ else if (!strncmp("-v", arg, len))
+ {
+ verbose = True;
+ quiet = False;
+ }
+ else if (!strncmp("-q", arg, len))
+ {
+ verbose = False;
+ quiet = True;
+ }
+ else
+ {
+ usage();
+ }
+ }
+
+ plist = XpuGetPrinterList(printername, &plist_count);
+
+ if (!plist) {
+ fprintf(stderr, "%s: no printers found for printer spec \"%s\".\n",
+ ProgramName, NULLSTR(printername));
+ exit(EXIT_FAILURE);
+ }
+
+ Log(("Using printer '%s'\n", plist[0].name));
+
+ retval = do_hello_world(plist[0].name, toFile, embedpsl2data);
+
+ XpuFreePrinterList(plist);
+
+ return(retval);
+}
+
+
diff --git a/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man
new file mode 100644
index 000000000..0a2c9ea6e
--- /dev/null
+++ b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man
@@ -0,0 +1,43 @@
+.\" -*- coding: us-ascii -*-
+.TH xpsimplehelloworld __appmansuffix__ "8 October 2004"
+.SH NAME
+xpsimplehelloworld \- "Hello World"-like Xprint sample utility based on plain X11 rendering calls
+.SH SYNOPSIS
+.ad l
+\fBxpsimplehelloworld\fR \kx
+.if (\nxu > (\n(.lu / 2)) .nr x (\n(.lu / 5)
+'in \n(.iu+\nxu
+[\fB\-printer \fBprinternname\fR\fR] [\fB\-v\fR] [\fB\-h\fR]
+'in \n(.iu-\nxu
+.ad b
+.SH DESCRIPTION
+xpsimplehelloworld is a sample utility for Xprint, the
+printing system for the X Window system. It demonstrates how to send a test page to
+the specified printer (or the default printer, if none is specified) using plain X11
+rendering instructions and without using special toolkit support (like one of
+the special Xt print shell widget classes
+(such as
+\fBXmPrintShell\fR(__libmansuffix__)
+or
+\fBXawPrintShell\fR(__libmansuffix__))).
+.SH OPTIONS
+.TP
+\fB\-printer \fIprinternname\fB\fR
+printer to use
+.TP
+\fB\-v\fR
+verbose output
+.TP
+\fB\-h\fR
+print usage
+.SH ENVIRONMENT
+.TP
+\fBXPSERVERLIST\fR
+\fB${XPSERVERLIST}\fR must be set,
+identifying the available Xprint servers.
+See \fBXprint\fR(__miscmansuffix__)
+for more details.
+.SH "KNOWN BUGS"
+A full list of bugs can be obtained from the Xprint.org bug database (http://xprint.mozdev.org/xprint_bugs.html).
+.SH "SEE ALSO"
+\fBXprint\fR(__miscmansuffix__), \fBX11\fR(__miscmansuffix__), \fBxplsprinters\fR(__appmansuffix__), \fBxphelloworld\fR(__appmansuffix__), \fBxpxmhelloworld\fR(__appmansuffix__), \fBxpawhelloworld\fR(__appmansuffix__), \fBxpxthelloworld\fR(__appmansuffix__), \fBXserver\fR(__appmansuffix__), \fBXprt\fR(__appmansuffix__), \fBlibXp\fR(__libmansuffix__), \fBlibXprintUtils\fR(__libmansuffix__), \fBlibXprintAppUtils\fR(__libmansuffix__), \fBXmPrintShell\fR(__libmansuffix__), \fBXawPrintShell\fR(__libmansuffix__), Xprint FAQ (http://xprint.mozdev.org/docs/Xprint_FAQ.html), Xprint main site (http://xprint.mozdev.org/)
diff --git a/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml
new file mode 100644
index 000000000..10312ccc2
--- /dev/null
+++ b/app/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml
@@ -0,0 +1,140 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.2//EN" 'http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'>
+
+<!-- Process this file with DocBook tools to generate the output format
+(such as manual pages or HTML documents).
+
+Note that strings like __appmansuffix__, __filemansuffix__, __libmansuffix__,
+__miscmansuffix__ etc. have to be replaced first (in theory that's the
+job of ENTITIES but some XML tools are highly allergic to such stuff... ;-().
+A quick way to do that is to filter this document via
+/usr/bin/sed "s/__appmansuffix__/${MANSUFFIX}/g;s/__filemansuffix__/${FILEMANSUFFIX}/g;s/__libmansuffix__/${LIBMANSUFFIX}/g;s/__miscmansuffix__/${MISCMANSUFFIX}/g"
+assuming that env vars like MANSUFFIX etc. have been set to the matching
+manual volume numbers.
+ -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>xpsimplehelloworld</refentrytitle>
+ <manvolnum>__appmansuffix__</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>xpsimplehelloworld</refname>
+
+ <refpurpose>"Hello World"-like Xprint sample utility based on plain X11 rendering calls</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>xpsimplehelloworld</command>
+
+ <arg><option>-printer <replaceable>printernname</replaceable></option></arg>
+
+ <arg><option>-v</option></arg>
+
+ <arg><option>-h</option></arg>
+
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para><command>xpsimplehelloworld</command> is a sample utility for Xprint, the
+ printing system for the X Window system. It demonstrates how to send a test page to
+ the specified printer (or the default printer, if none is specified) using plain X11
+ rendering instructions and without using special toolkit support (like one of
+ the special Xt print shell widget classes
+ (such as
+ <citerefentry><refentrytitle>XmPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry>
+ or
+ <citerefentry><refentrytitle>XawPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry>)).
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-printer <replaceable>printernname</replaceable></option>
+ </term>
+ <listitem>
+ <para>printer to use</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ </term>
+ <listitem>
+ <para>verbose output</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option>
+ </term>
+ <listitem>
+ <para>print usage</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>ENVIRONMENT</title>
+ <variablelist>
+ <varlistentry>
+ <term><envar>XPSERVERLIST</envar>
+ </term>
+ <listitem>
+ <para>
+ <envar>${XPSERVERLIST}</envar> must be set,
+ identifying the available Xprint servers.
+ See <citerefentry><refentrytitle>Xprint</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry>
+ for more details.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>KNOWN BUGS</title>
+ <para>
+ A full list of bugs can be obtained from the Xprint.org bug database (<ulink url="http://xprint.mozdev.org/xprint_bugs.html">http://xprint.mozdev.org/xprint_bugs.html</ulink>).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <simplelist type="inline">
+ <!-- specific references -->
+ <!-- none -->
+
+ <!-- Xprint general references -->
+ <member><citerefentry><refentrytitle>Xprint</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>X11</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>xplsprinters</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>xphelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>xpxmhelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>xpawhelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>xpxthelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+<!--
+ <member><citerefentry><refentrytitle>xpsimplehelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+-->
+ <member><citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>Xprt</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member>
+ <!-- ToDO: Add manual pages for the single Xprint DDX implementations (PostScript/PDF/PCL/PCL-MONO/Raster/etc.) -->
+ <member><citerefentry><refentrytitle>libXp</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>libXprintUtils</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>libXprintAppUtils</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>XmPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member>
+ <member><citerefentry><refentrytitle>XawPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member>
+ <member>Xprint FAQ (<ulink url="http://xprint.mozdev.org/docs/Xprint_FAQ.html">http://xprint.mozdev.org/docs/Xprint_FAQ.html</ulink>)</member>
+ <member>Xprint main site (<ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>)</member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+