All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+commit 6437d834cd66621e4e9f4decf7341b6d7ff45556
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Mon Mar 5 23:00:10 2012 -0800
+
+ libXmu 1.1.1
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit ccd9e64515d6fc7b5367d6d98ecd3abf5b084026
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 10 20:34:03 2011 -0800
+
+ Fix gcc -Wwrite-strings warnings (some, not all)
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 72ac4c4a464b3aec21cdbe367c9d465cbe0f3ff1
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 10 09:55:07 2011 -0800
+
+ Drop support for pre-ANSI-C89 preprocessors
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 004d535c707251bd4fb47426f90712c195c6dfc7
+Author: Matt Dew <marcoz@osource.org>
+Date: Tue Oct 4 20:51:48 2011 -0600
+
+ Cleanup IDs and links in doc
+
+ 1 - fix the capitalization of the ID attributes to match either the
+ <title> or <funcdef> string it goes with.
+ 2 - fix any <linkend>'s that were affected by 1.
+ 3 - any <function> in the docs that has an actual funcdef,
+ will become an olink.
+
+ Signed-off-by: Matt Dew <marcoz@osource.org>
+
+commit d7d2ad7dde7b2653aa1e08e9339674bc40f1560a
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Sat Sep 24 17:00:09 2011 -0700
+
+ Fix build with -DDEBUG
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=1069
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 66492163cb244fbe22c67bebb14c0918dd11eab6
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Sep 16 22:46:25 2011 -0700
+
+ Strip trailing whitespace
+
+ Performed with: find * -type f | xargs perl -i -p -e 's{[ \t]+$}{}'
+ git diff -w & git diff -b show no diffs from this change
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 6ffa7e4bb1e7efdad4dd987e1fe27cdee96f7063
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Sep 14 14:33:24 2011 -0400
+
+ docs: use appropriate markup for copyright statement
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 7b2589d66d672d2585d3df4074ce64443f7e4b71
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Mon Sep 12 11:01:19 2011 -0400
+
+ docs: use the &fullrelvers; entity to set X11 release information
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 46cc8a399aa16d145a9141d2fa8172282e4b7211
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Thu Sep 8 20:00:00 2011 -0400
+
+ docbook.am: embed css styles inside the HTML HEAD element
+
+ Rather than referring to the external xorg.css stylesheet, embed the content
+ of the file in the html output produced. This is accomplished by using
+ version 1.10 of xorg-xhtml.xsl.
+
+ This makes the whole html docs tree much more relocatable.
+ In addition, it eliminates xorg.css as a runtime file which makes
+ xorg-sgml-doctools a build time only package.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 01d2a55b4fd8e3743b1f396f81be6a06f6345ac5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Sep 7 10:31:04 2011 -0400
+
+ docbook.am: global maintenance update - entities, images and olinking
+
+ Adding support in libX11 for html chunking caused a reorg of docbook.am
+ as well as the xorg-sgml-doctools masterdb for olinking.
+ The parameter img.src.path is added for pdf images.
+ A searchpath to the root builddir is added for local entities, if present.
+
+ The docbook.am makefile hides all the details and is identical for
+ all 22 modules having DocBook documentation. It is included by a thin
+ Makefile.am which requires no docbook knowledge.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 888135ef815766f0421438430ca40809e4f7e411
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Aug 7 21:20:26 2011 -0400
+
+ docbook pdf: add xsl parameter to locate images
+
+ Unlike html, pdf/ps requires a full path name to find images,
+ but only needs it to make an internal copy of it at build time.
+ The image can later be removed and the image still shows up in the pdf doc.
+ This allows us to use the absolute builddir.
+
+ This parameter must not be used for html which loads the image from disk
+ at user read time. The image is removed from builddir after build is done,
+ and we do not know where the image will be installed by the distro.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 5ba82aec6547513ea182cbc6cb95b472bbfb9dc5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Aug 7 20:30:58 2011 -0400
+
+ Xmu.xml: Change layout of the X Logo figure
+
+ The floating does not come up right, the figure caption is in the way.
+ Move the figure out of the paragraph and below the text.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 08fb51c1db9c9693125f4c093d07abc94d6ce0f6
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Jun 12 18:39:46 2011 -0400
+
+ Install xml versions of specs even if HAVE_XMLTO is false
+
+ DocBook/XML input source is also a usefull output format that can be viewed
+ with an XML viewer or editor and by some O/S help system.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit a70bedc470f5482dc64b947057e5120c2f322177
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Jun 5 16:27:37 2011 -0400
+
+ Install target dbs alongside generated documents
+
+ This matches a change in xorg-sgml-docs whereby the masterdb will look for
+ the target dbs into the same location as the generated documents.
+
+ The target dbs are now installed alongside the generated documents.
+ Previously they are installed in $prefix/sgml/X11/dbs alongside masterdb which
+ has the potential of installing outside the package prefix and cause
+ distcheck to fail when user does not have write permission in this package.
+
+ Requires XORG_CHECK_SGML_DOCTOOLS(1.8) which was released 2011-06-11
+
+commit 3f3c9a60381371f60a174497ea6d5d90abea4261
+Author: Matt Dew <marcoz@osource.org>
+Date: Tue May 31 20:03:23 2011 -0600
+
+ Add id attributes to funcsynopsis to allow other docs to olink to them.
+
+ Signed-off-by: Matt Dew <marcoz@osource.org>
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 4000666e864e477e712caa0f0c0a5d09006c7752
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Feb 27 15:06:18 2011 -0500
+
+ Documentation: add Docbook external references support
+
+ When writing technical documentation, it is often necessary to cross
+ reference to other information. When that other information is not in the
+ current document, additional support is needed, namely <olink>.
+
+ A new feature with version 1.7 of xorg-sgml-doctools adds references to
+ other documents within or outside this package.
+
+ This patch adds technical support for this feature but does not change
+ the content of the documentation as seen by the end user.
+
+ Each book or article must generate a database containing the href
+ of sections that can be referred to from another document. This database
+ is installed in DATAROOTDIR/sgml/X11/dbs. There is a requirement that
+ the value of DATAROOTDIR for xorg-sgml-doctools and for the package
+ documentation is the same. This forms a virtual document tree.
+
+ This database is consulted by other documents while they are being generated
+ in order to fulfill the missing information for linking.
+ Refer to the xorg-sgml-doctools for further technical information.
+
+ Co-authored-by: Matt Dew <marcoz@osource.org>
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 6ab92082d5f6c842b578a9fe1f9888ed3339336a
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Feb 10 22:06:52 2011 -0800
+
+ Make EditresCom.c identation a lot less random
+
+ 2 spaces! No 4! 2! 3! No, Blue! Red! Aughughurglrgll...
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 70ca0ef2cc0ec84308792a7b184e90c5cb358278
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 19:51:54 2011 -0500
+
+ config: remove config test for snprintf
+
+ The macro HAS_SNPRINTF is hard coded to always be defined.
+ If it were not defined, Lower.c would include snprintf.c
+ which does not exist. Seems to be relics from IMakefile
+
+ Other modules are using snprintf unconditionally.
+
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Julien Cristau <jcristau@debian.org>
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 9f57096dd0881651de3b710b182db59091e6f421
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 11:43:43 2011 -0500
+
+ config: comment, minor upgrade, quote and layout configure.ac
+
+ Group statements per section as per Autoconf standard layout
+ Quote statements where appropriate.
+ Autoconf recommends not using dnl instead of # for comments
+
+ Use AC_CONFIG_FILES to replace the deprecated AC_OUTPUT with parameters.
+
+ This helps automated maintenance and release activities.
+ Details can be found in http://wiki.x.org/wiki/NewModuleGuidelines
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 1be35fb51871f314bef673975c2be94e5e427696
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Jan 28 19:41:37 2011 -0500
+
+ config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 9bd47f1db85b0c997389609ad26a2766f5aeeff5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Jan 28 16:34:14 2011 -0500
+
+ config: remove unrequired AC_CONFIG_AUX_DIR
+
+ The default location for the generation of configuation files is the current
+ package root directory. These files are config.* and friends.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 2f00ed22d17592b963fabd925dba90f2a003d801
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Dec 5 00:13:25 2010 -0800
+
+ XmuCvtStringToCursor: sprintf -> snprintf & check for XtMalloc failure
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 813ee0dcecc89d3f334d8747b171c71e34a7671e
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue Nov 9 13:04:57 2010 -0500
+
+ config: HTML file generation: use the installed copy of xorg.css
+
+ Currenlty the xorg.css file is copied in each location
+ where a DocBook/XML file resides. This produces about
+ 70 copies in the $(docdir) install tree.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
commit 5d9b0896bfdfe60656a2d806a06e17c7adf335b5
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Oct 29 16:52:54 2010 -0700
--- /dev/null
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008 Free Software Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+++ /dev/null
-#! /bin/sh
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd $srcdir
-
-autoreconf -v --install || exit 1
-cd $ORIGDIR || exit $?
-
-$srcdir/configure --enable-maintainer-mode "$@"
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
+# Initialize Autoconf
AC_PREREQ([2.60])
-
-AC_INIT([libXmu],
- [1.1.0],
- [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
- [libXmu])
-
+AC_INIT([libXmu], [1.1.1],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXmu])
AC_CONFIG_SRCDIR([Makefile.am])
-AC_CONFIG_AUX_DIR(.)
-AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AC_CONFIG_HEADERS([config.h])
+# Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
-# Require xorg-macros minimum of 1.10 for HAVE_STYLESHEETS in XORG_CHECK_SGML_DOCTOOLS
+# Initialize libtool
+AC_PROG_LIBTOOL
+
+# Require xorg-macros minimum of 1.12 for DocBook external references
m4_ifndef([XORG_MACROS_VERSION],
- [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.10)
+ [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.12)
XORG_DEFAULT_OPTIONS
XORG_ENABLE_DOCS
-XORG_WITH_XMLTO(0.0.20)
+XORG_WITH_XMLTO(0.0.22)
XORG_WITH_FOP
-XORG_CHECK_SGML_DOCTOOLS(1.5)
+XORG_WITH_XSLTPROC
+XORG_CHECK_SGML_DOCTOOLS(1.8)
-AM_CONFIG_HEADER([config.h])
-
-
-# Checks for programs.
-AC_PROG_LIBTOOL
-
-# Checks for pkg-config packages
+# Obtain compiler/linker options for depedencies
PKG_CHECK_MODULES(XMU, xt xext x11 xextproto)
PKG_CHECK_MODULES(XMUU, x11)
# conversion routines for
XTRANS_CONNECTION_FLAGS
-#
-# Assume that we have sprintf. If a system shows up
-# that doesn't, we will deal with it at that point.
-#
-# The way to deal with it is:
-#
-# 1. Add a test for sprintf it here in configure.ac
-# that sets or unsets HAS_SNPRINTF as appropriate
-#
-# 2. add a copy of xc/lib/misc/snprintf.c
-#
-# The source file in question is Lower.c
-#
-
-AC_DEFINE(HAS_SNPRINTF, [], [Whether we have snprintf()])
-AC_SUBST(HAS_SNPRINTF)
-
-dnl Allow checking code with lint, sparse, etc.
+# Allow checking code with lint, sparse, etc.
XORG_WITH_LINT
XORG_LINT_LIBRARY([Xmu])
LINTLIBUU=`echo $LINTLIB | sed s/Xmu/Xmuu/`
AC_SUBST(LINTLIBUU)
-AC_OUTPUT([Makefile
- doc/Makefile
- include/Makefile
- src/Makefile
- xmu.pc
- xmuu.pc])
+AC_CONFIG_FILES([Makefile
+ doc/Makefile
+ include/Makefile
+ src/Makefile
+ xmu.pc
+ xmuu.pc])
+AC_OUTPUT
+++ /dev/null
-------------------------------------------------------
-Quick Guide To Patching This Package For The Impatient
-------------------------------------------------------
-
-1. Make sure you have quilt installed
-2. Unpack the package as usual with "dpkg-source -x"
-3. Run the "patch" target in debian/rules
-4. Create a new patch with "quilt new" (see quilt(1))
-5. Edit all the files you want to include in the patch with "quilt edit"
- (see quilt(1)).
-6. Write the patch with "quilt refresh" (see quilt(1))
-7. Run the "clean" target in debian/rules
-
-Alternatively, instead of using quilt directly, you can drop the patch in to
-debian/patches and add the name of the patch to debian/patches/series.
-
-------------------------------------
-Guide To The X Strike Force Packages
-------------------------------------
-
-The X Strike Force team maintains X packages in git repositories on
-git.debian.org in the pkg-xorg subdirectory. Most upstream packages
-are actually maintained in git repositories as well, so they often
-just need to be pulled into git.debian.org in a "upstream-*" branch.
-Otherwise, the upstream sources are manually installed in the Debian
-git repository.
-
-The .orig.tar.gz upstream source file could be generated this
-"upstream-*" branch in the Debian git repository but it is actually
-copied from upstream tarballs directly.
-
-Due to X.org being highly modular, packaging all X.org applications
-as their own independent packages would have created too many Debian
-packages. For this reason, some X.org applications have been grouped
-into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils,
-x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils.
-Most packages, including the X.org server itself and all libraries
-and drivers are, however maintained independently.
-
-The Debian packaging is added by creating the "debian-*" git branch
-which contains the aforementioned "upstream-*" branch plus the debian/
-repository files.
-When a patch has to be applied to the Debian package, two solutions
-are involved:
-* If the patch is available in one of the upstream branches, it
- may be git'cherry-picked into the Debian repository. In this
- case, it appears directly in the .diff.gz.
-* Otherwise, the patch is added to debian/patches/ which is managed
- with quilt as documented in /usr/share/doc/quilt/README.source.
-
-quilt is actually invoked by the Debian X packaging through a larger
-set of scripts called XSFBS. XSFBS brings some other X specific
-features such as managing dependencies and conflicts due to the video
-and input driver ABIs.
-XSFBS itself is maintained in a separate repository at
- git://git.debian.org/pkg-xorg/xsfbs.git
-and it is pulled inside the other Debian X repositories when needed.
-
-The XSFBS patching system requires a build dependency on quilt. Also
-a dependency on $(STAMP_DIR)/patch has to be added to debian/rules
-so that the XSFBS patching occurs before the actual build. So the
-very first target of the build (likely the one running autoreconf)
-should depend on $(STAMP_DIR)/patch. It should also not depend on
-anything so that parallel builds are correctly supported (nothing
-should probably run while patching is being done). And finally, the
-clean target should depend on the xsfclean target so that patches
-are unapplied on clean.
-
-When the upstream sources contain some DFSG-nonfree files, they are
-listed in text files in debian/prune/ in the "debian-*" branch of
-the Debian repository. XSFBS' scripts then take care of removing
-these listed files during the build so as to generate a modified
-DFSG-free .orig.tar.gz tarball.
+++ /dev/null
-libxmu (2:1.1.0-1slp2) unstable; urgency=low
-
- * [X11R7.6] upgrade package
- * Git: 165.213.180.234:slp/pkgs/xorg/lib/libxmu
- * Tag: libxmu_1.1.0-1slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Wed, 05 Jan 2011 20:09:15 +0900
-
-libxmu (2:1.0.5-9slp2) unstable; urgency=low
-
- * Enabling creation of *-dbg package
- * Git: 165.213.180.234:/git/slp/pkgs/xorg/lib/libxmu
- * Tag: libxmu_1.0.5-9slp2
-
- -- Sung-Jin Park <sj76.park@samsung.com> Mon, 22 Nov 2010 14:40:58 +0900
-
-libxmu (2:1.0.5-8slp2) unstable; urgency=low
-
- * Add --as-needed
- * Git: 165.213.180.234:/git/slp/pkgs/xorg/lib/libxmu
- * Tag: libxmu_1.0.5-8slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Sat, 20 Nov 2010 15:20:14 +0900
-
-libxmu (2:1.0.5-7slp2) unstable; urgency=low
-
- * Update maintainer
- * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/X11
- * Tag: libxmu_1.0.5-7slp2
-
- -- Sung-Jin Park <sj76.park@samsung.com> Wed, 21 Apr 2010 13:56:51 +0900
-
-libxmu (2:1.0.5-6slp2) unstable; urgency=low
-
- * modify the package name
-
- -- SooChan Lim <sc1.lim@samsung.com> Thu, 25 Mar 2010 17:55:45 +0900
-
-libxmu (2:1.0.5-5) unstable; urgency=low
-
- * Install .la files
-
- -- Sung-Jin Park <sj76.park@samsung.com> Mon, 07 Dec 2009 10:29:32 +0900
-
-libxmu (2:1.0.5-4) unstable; urgency=low
-
- * Update version not to make version problems on both armel and i386
-
- -- Sung-Jin Park <sj76.park@samsung.com> Wed, 02 Dec 2009 18:39:25 +0900
-
-libxmu (2:1.0.5-3) unstable; urgency=low
-
- * Update version for upload to debian repository
-
- -- Sung-Jin Park <sj76.park@samsung.com> Wed, 02 Dec 2009 15:50:27 +0900
-
-libxmu (2:1.0.5-2) unstable; urgency=low
-
- * Import Debian Package
-
- -- Sung-Jin Park <sj76.park@samsung.com> Wed, 02 Dec 2009 14:48:42 +0900
-
-libxmu (2:1.0.5-1) unstable; urgency=low
-
- [ Timo Aaltonen ]
- * New upstream release.
- + Fix 64bit support (closes: #521887)
-
- [ Julien Cristau ]
- * Bump Standards-Version to 3.8.3.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 25 Nov 2009 19:20:17 +0100
-
-libxmu (2:1.0.4-2) unstable; urgency=low
-
- [ Julien Cristau ]
- * Drop -1 debian revisions from build-deps.
- * libxmu6{,-dbg}, libxmu-dev, libxmuu1{,-dbg} and libxmuu-dev don't need a
- dependency on x11-common.
- * Build libxmu-headers in binary-indep instead of binary-arch
- (closes: #486418). Thanks, Martin Koeppe!
- * Run autoreconf on build; build-depend on automake, libtool, xutils-dev.
- * Handle parallel builds.
-
- [ Brice Goglin ]
- * Add a link to www.X.org and a reference to the upstream module
- in the long description.
- * Add upstream URL to debian/copyright.
- * Add README.source, bump Standards-Version to 3.8.2.
- * Use updated xsfbs, closes: #538587.
- * Move -dbg packages to section debug.
-
- -- Julien Cristau <jcristau@debian.org> Fri, 07 Aug 2009 14:30:36 +0200
-
-libxmu (2:1.0.4-1) unstable; urgency=low
-
- [ Julien Cristau ]
- * New upstream release.
- * Make libxmu*-dev depend on libxmu-headers (= ${source:Version}). Thanks,
- Josh Triplett.
- * Don't export private dependencies in xmu.pc and xmuu.pc. These
- dependencies are handled by Requires.private.
- * Due to the above, build-depend on quilt and apply the xsfbs patch rules.
- * Update xsfbs to the latest version as of 2008-01-06.
- * Add myself to Uploaders, and remove Branden and Fabio with their
- permission.
- * Bump Standards-Version to 3.7.3 (no changes).
- * s/^XS-Vcs/Vcs/
-
- [ Timo Aaltonen ]
- * Bump the epoch so that this can be synced to Ubuntu in the future.
-
- -- Julien Cristau <jcristau@debian.org> Thu, 17 Jan 2008 14:57:47 +0100
-
-libxmu (1:1.0.3-1) unstable; urgency=low
-
- * New upstream release.
- * Install the upstream changelog.
- * Remove outdated CVS information from the package descriptions, and add
- XS-Vcs-Git and XS-Vcs-Browser.
- * Fix package sections (libraries in libs, development stuff in libdevel).
- * Use ${binary:Version} instead of ${Source-Version}.
-
- -- Julien Cristau <jcristau@debian.org> Thu, 12 Apr 2007 13:40:07 +0200
-
-libxmu (1:1.0.2-2) unstable; urgency=low
-
- [ Andres Salomon ]
- * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build;
- idempotency fix.
-
- [ Drew Parsons ]
- * dbg package has priority extra.
-
- -- David Nusinow <dnusinow@debian.org> Wed, 30 Aug 2006 16:53:25 -0400
-
-libxmu (1:1.0.2-1) experimental; urgency=low
-
- * New upstream release
- * Bump debhelper compat to 5
- * Run dh_install with --list-missing
- * Version the -headers package's x11-common pre-dep to use version 1:7.0.0
- to match the rest of Debian and shut lintian up
- * Bump standards version to 3.7.2.0
-
- -- David Nusinow <dnusinow@debian.org> Mon, 3 Jul 2006 18:43:32 -0400
-
-libxmu (1:1.0.1-3) unstable; urgency=low
-
- * Reorder makeshlib command in rules file so that ldconfig is run
- properly. Thanks Drew Parsons and Steve Langasek.
-
- -- David Nusinow <dnusinow@debian.org> Tue, 18 Apr 2006 21:49:59 -0400
-
-libxmu (1:1.0.1-2) unstable; urgency=low
-
- * Upload to unstable
-
- -- David Nusinow <dnusinow@debian.org> Thu, 23 Mar 2006 22:44:59 -0500
-
-libxmu (1:1.0.1-1) experimental; urgency=low
-
- * First upload to Debian
-
- -- David Nusinow <dnusinow@debian.org> Thu, 29 Dec 2005 20:53:53 -0500
-
-libxmu (1:6.2.3-5) breezy; urgency=low
-
- * Also, libxmu-dev needs to depend on libxt-dev too.
-
- -- Adam Conrad <adconrad@ubuntu.com> Mon, 25 Jul 2005 09:43:47 +0000
-
-libxmu (1:6.2.3-4) breezy; urgency=low
-
- * Bump libxt-dev build-dep once more, _XOPEN_SOURCE begone!
-
- -- Adam Conrad <adconrad@ubuntu.com> Sun, 24 Jul 2005 10:48:14 +0000
-
-libxmu (1:6.2.3-3) breezy; urgency=low
-
- * Make libxmu-dev depend on libxext-dev, since libxmu links to it.
-
- -- Adam Conrad <adconrad@ubuntu.com> Sun, 24 Jul 2005 07:56:02 +0000
-
-libxmu (1:6.2.3-2) breezy; urgency=low
-
- * Bump Build-Depends on libx11-dev, libxext-dev and libxt-dev to avoid
- _XOPEN_SOURCE.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Sat, 23 Jul 2005 00:20:50 +1000
-
-libxmu (1:6.2.3-1) breezy; urgency=low
-
- * First libxmu release.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Mon, 16 May 2005 22:10:17 +1000
+++ /dev/null
-Source: libxmu
-Section: x11
-Priority: optional
-Maintainer: Sung-Jin Park <sj76.park@samsung.com>, Sangjin Lee <lsj119@samsung.com>, Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: SooChan Lim <sc1.lim@samsung.com>, Sung-Jin Park <sj76.park@samsung.com>, David Nusinow <dnusinow@debian.org>, Julien Cristau <jcristau@debian.org>
-Build-Depends: debhelper (>= 5.0.0), libx11-dev (>= 1:0.99.2), libxt-dev (>= 1:0.99.1), libxext-dev (>= 1:0.99.1), pkg-config, quilt, automake, libtool, xutils-dev
-Standards-Version: 3.8.3
-Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxmu
-Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxmu.git
-
-Package: libxmu6
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: X11 miscellaneous utility library
- libXmu provides a set of miscellaneous utility convenience functions for X
- libraries to use. libXmuu is a lighter-weight version that does not depend
- on libXt or libXext; for more information, see libxmuu1.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmu6-dbg
-Section: debug
-Architecture: any
-Priority: extra
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxmu6 (= ${binary:Version})
-Description: X11 miscellaneous utility library (debug package)
- libXmu provides a set of miscellaneous utility convenience functions for X
- libraries to use. libXmuu is a lighter-weight version that does not depend
- on libXt or libXext; for more information, see libxmuu1.
- .
- This package contains the debug versions of the library found in libxmu6.
- Non-developers likely have little use for this package.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmu-dev
-Section: libdevel
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxext-dev, libxt-dev, libxmu6 (= ${binary:Version}), libxmu-headers (= ${source:Version})
-Description: X11 miscellaneous utility library (development headers)
- libXmu provides a set of miscellaneous utility convenience functions for X
- libraries to use. libXmuu is a lighter-weight version that does not depend
- on libXt or libXext; for more information, see libxmuu1.
- .
- This package contains the development headers for the library found in
- libxmu6. Non-developers likely have little use for this package.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmuu1
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: X11 miscellaneous micro-utility library
- libXmuu provides a set of miscellaneous utility convenience functions for X
- libraries to use. It is a lighter version of libXmu that does not depend
- on libXt or libXext; for more information on libXmu, see libxmu6.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmuu1-dbg
-Section: debug
-Architecture: any
-Priority: extra
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxmuu1 (= ${binary:Version})
-Description: X11 miscellaneous micro-utility library (debug package)
- libXmuu provides a set of miscellaneous utility convenience functions for X
- libraries to use. It is a lighter version of libXmu that does not depend
- on libXt or libXext; for more information on libXmu, see libxmu6.
- .
- This package contains the debug versions of the library found in libxmuu1.
- Non-developers likely have little use for this package.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmuu-dev
-Section: libdevel
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxmuu1 (= ${binary:Version}), libxmu-headers (= ${source:Version})
-Description: X11 miscellaneous micro-utility library (development headers)
- libXmuu provides a set of miscellaneous utility convenience functions for X
- libraries to use. It is a lighter version of libXmu that does not depend
- on libXt or libXext; for more information on libXmu, see libxmu6.
- .
- This package contains the development headers for the library found in
- libxmuu1. Non-developers likely have little use for this package.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
-
-Package: libxmu-headers
-Section: libdevel
-Architecture: all
-Depends: libx11-dev, x11proto-core-dev
-Pre-Depends: x11-common (>= 1:7.0.0)
-Description: X11 miscellaneous utility library headers
- libXmu and libXmuu are miscellaneous utility libraries for X library
- developers to abstract some common functions. This package provides the
- headers for both libraries (as libXmuu is a subset of libXmu), and
- is depended upon by both. For more information, please see libxmu-dev or
- libxmuu-dev.
- .
- More information about X.Org can be found at:
- <URL:http://www.X.org>
- <URL:http://xorg.freedesktop.org>
- <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
- .
- This module can be found at
- git://anongit.freedesktop.org/git/xorg/lib/libXmu
+++ /dev/null
-This package was downloaded from
-http://xorg.freedesktop.org/releases/individual/lib/
-
-Copyright 1989, 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.
-
------------
-
-Xmu/StrToBmap.c and Xmu/GrayPixmap.c also have:
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-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 Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL 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.
-
------------
-
-And Xmu/Clip.c has:
-
-Copyright (c) 1998 by The XFree86 Project, Inc.
-
-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
-THE XFREE86 PROJECT 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 XFree86 Project 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
-XFree86 Project.
+++ /dev/null
-usr/lib/libXmu.a
-usr/lib/libXmu.so
-usr/lib/libXmu.la
-usr/lib/pkgconfig/xmu.pc
+++ /dev/null
-usr/include/X11/*
+++ /dev/null
-usr/lib/libXmu.so.6*
+++ /dev/null
-usr/lib/libXmuu.a
-usr/lib/libXmuu.so
-usr/lib/libXmuu.la
-usr/lib/pkgconfig/xmuu.pc
+++ /dev/null
-usr/lib/libXmuu.so.1*
+++ /dev/null
-diff --git a/xmu.pc.in b/xmu.pc.in
-index a086f83..15dabbf 100644
---- a/xmu.pc.in
-+++ b/xmu.pc.in
-@@ -6,7 +6,7 @@ includedir=@includedir@
- Name: Xmu
- Description: Xmu Library
- Version: @PACKAGE_VERSION@
--Requires: xproto x11 xt
-+Requires: xproto
- Requires.private: x11 xt xext
- Cflags: -I${includedir}
- Libs: -L${libdir} -lXmu
-diff --git a/xmuu.pc.in b/xmuu.pc.in
-index 1e91ac4..72fa5f9 100644
---- a/xmuu.pc.in
-+++ b/xmuu.pc.in
-@@ -6,7 +6,7 @@ includedir=@includedir@
- Name: Xmuu
- Description: Mini Xmu Library
- Version: @PACKAGE_VERSION@
--Requires: xproto x11
-+Requires: xproto
- Requires.private: x11
- Cflags: -I${includedir}
- Libs: -L${libdir} -lXmuu
+++ /dev/null
-01_dont_export_private_deps.diff
+++ /dev/null
-#!/usr/bin/make -f
-# debian/rules for the Debian libxmu package.
-# Copyright © 2004 Scott James Remnant <scott@netsplit.com>
-# Copyright © 2005 Daniel Stone <daniel@fooishbar.org>
-# Copyright © 2005 David Nusinow <dnusinow@debian.org>
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-include debian/xsfbs/xsfbs.mk
-
-CFLAGS = -Wall -g
-LDFLAGS += -Wl,--hash-style=both -Wl,--as-needed
-ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
-ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- MAKEFLAGS += -j$(NUMJOBS)
-endif
-
-DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
- confflags += --build=$(DEB_HOST_GNU_TYPE)
-else
- confflags += --build=$(DEB_HOST_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
-# confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
-endif
-
-configure:
-#configure: $(STAMP_DIR)/patch
- dh_testdir
- autoreconf -vfi
-
-build: build-stamp
-build-stamp: configure
- dh_testdir
-
- mkdir -p obj-$(DEB_BUILD_GNU_TYPE)
- cd obj-$(DEB_BUILD_GNU_TYPE) && \
- ../configure --prefix=/usr --mandir=\$${prefix}/share/man \
- --infodir=\$${prefix}/share/info $(confflags) \
- CFLAGS="$(CFLAGS)" \
- LDFLAGS="$(LDFLAGS)"
- cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE)
- >$@
-
-clean: xsfclean
- dh_testdir
- dh_testroot
- rm -f build-stamp
-
- rm -f config.cache config.log config.status
- rm -f */config.cache */config.log */config.status
- rm -f conftest* */conftest*
- rm -rf autom4te.cache */autom4te.cache
- rm -rf obj-*
- rm -f INSTALL aclocal.m4 config.guess config.h.in config.sub configure
- rm -f depcomp install-sh ltmain.sh missing mkinstalldirs
- rm -f $$(find -name Makefile.in)
-
- dh_clean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
-# Build architecture-dependent files here.
-binary-arch: DH_OPTIONS=-s
-binary-arch: install
- dh_testdir
- dh_testroot
-
-# dh_installdocs
- dh_install --sourcedir=debian/tmp --list-missing -Xusr/include -X.la
-# dh_installchangelogs ChangeLog
- dh_link
- dh_strip -Nlibxmuu1 -Nlibxmu6
- dh_strip -plibxmuu1 -Nlibxmu6 --dbg-package=libxmuu1-dbg
- dh_strip -plibxmu6 -Nlibxmuu1 --dbg-package=libxmu6-dbg
- dh_compress
- dh_fixperms
- dh_makeshlibs
- dh_shlibdeps
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-# Build architecture-independent files here.
-binary-indep: DH_OPTIONS=-i
-binary-indep: build install
- dh_installdocs
- dh_install --sourcedir=debian/tmp
- dh_installchangelogs ChangeLog
- dh_link
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install
+++ /dev/null
-version=3
-http://xorg.freedesktop.org/releases/individual/lib/ libXmu-(.*)\.tar\.gz
+++ /dev/null
-#!/bin/sh
-
-set -e
-
-if ! [ -d debian/prune ]; then
- exit 0
-fi
-
-if [ "x$1" != x--upstream-version ]; then
- exit 1
-fi
-
-version="$2"
-filename="$3"
-
-if [ -z "$version" ] || ! [ -f "$filename" ]; then
- exit 1
-fi
-
-dir="$(pwd)"
-tempdir="$(mktemp -d)"
-
-cd "$tempdir"
-tar xf "$dir/$filename"
-cat "$dir"/debian/prune/* | while read file; do rm -f */$file; done
-
-tar czf "$dir/$filename" *
-cd "$dir"
-rm -rf "$tempdir"
-echo "Done pruning upstream tarball"
-
-exit 0
+++ /dev/null
-#!/usr/bin/make -f
-
-# Debian X Strike Force Build System (XSFBS): Make portion
-
-# Copyright 1996 Stephen Early
-# Copyright 1997 Mark Eichin
-# Copyright 1998-2005, 2007 Branden Robinson
-# Copyright 2005 David Nusinow
-#
-# Licensed under the GNU General Public License, version 2. See the file
-# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
-
-# Originally by Stephen Early <sde1000@debian.org>
-# Modified by Mark W. Eichin <eichin@kitten.gen.ma.us>
-# Modified by Adam Heath <doogie@debian.org>
-# Modified by Branden Robinson <branden@debian.org>
-# Modified by Fabio Massimo Di Nitto <fabbione@fabbione.net>
-# Modified by David Nusinow <dnusinow@debian.org>
-# Acknowledgements to Manoj Srivastava.
-
-# Pass $(DH_OPTIONS) into the environment for debhelper's benefit.
-export DH_OPTIONS
-
-# force quilt to not use ~/.quiltrc and to use debian/patches
-QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null
-
-# Set up parameters for the upstream build environment.
-
-# Determine (source) package name from Debian changelog.
-SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \
- | grep '^Source:' | awk '{print $$2}')
-
-# Determine package version from Debian changelog.
-SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \
- | grep '^Version:' | awk '{print $$2}')
-
-# Determine upstream version number.
-UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//')
-
-# Determine the source version without the epoch for make-orig-tar-gz
-NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://')
-
-# Figure out who's building this package.
-BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(cat /etc/mailname 2>/dev/null))}})
-
-# Find out if this is an official build; an official build has nothing but
-# digits, dots, and/or the codename of a release in the Debian part of the
-# version number. Anything else indicates an unofficial build.
-OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi)
-
-# Set up parameters for the Debian build environment.
-
-# Determine our architecture.
-BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-# Work around some old-time dpkg braindamage.
-BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH))
-# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy.
-ifdef DEB_HOST_ARCH
- ARCH:=$(DEB_HOST_ARCH)
-else
- # dpkg-cross sets the ARCH environment variable; if set, use it.
- ifdef ARCH
- ARCH:=$(ARCH)
- else
- ARCH:=$(BUILD_ARCH)
- endif
-endif
-
-# $(STAMP_DIR) houses stamp files for complex targets.
-STAMP_DIR:=stampdir
-
-# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place
-# their files.
-DEBTREEDIR:=$(CURDIR)/debian/tmp
-
-# All "important" targets have four lines:
-# 1) A target name that is invoked by a package-building tool or the user.
-# This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart.
-# 2) A line delcaring 1) as a phony target (".PHONY:").
-# 3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may
-# depend on other targets.
-# 4) A line declaring 3) as a member of the $(stampdir_targets) variable; the
-# "$(STAMP_DIR)/" prefix is omitted.
-#
-# This indirection is needed so that the "stamp" files that signify when a rule
-# is done can be located in a separate "stampdir". Recall that make has no way
-# to know when a goal has been met for a phony target (like "build" or
-# "install").
-#
-# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@"
-# so that the target will not be run again. Removing the file will make Make
-# run the target over.
-
-# All phony targets should be declared as dependencies of .PHONY, even if they
-# do not have "($STAMP_DIR)/"-prefixed counterparts.
-
-# Define a harmless default rule to keep things from going nuts by accident.
-.PHONY: default
-default:
-
-# Set up the $(STAMP_DIR) directory.
-.PHONY: stampdir
-stampdir_targets+=stampdir
-stampdir: $(STAMP_DIR)/stampdir
-$(STAMP_DIR)/stampdir:
- mkdir $(STAMP_DIR)
- >$@
-
-# Set up the package build directory as quilt expects to find it.
-.PHONY: prepare
-stampdir_targets+=prepare
-prepare: $(STAMP_DIR)/prepare
-$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts
- >$@
-
-.PHONY: log
-stampdir_targets+=log
-log: $(STAMP_DIR)/log
-$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir
- mkdir -p $(STAMP_DIR)/log
-
-# Apply all patches to the upstream source.
-.PHONY: patch
-stampdir_targets+=patch
-patch: $(STAMP_DIR)/patch
-$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare
- if ! [ `which quilt` ]; then \
- echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \
- exit 1; \
- fi; \
- if $(QUILT) next >/dev/null 2>&1; then \
- echo -n "Applying patches..."; \
- if $(QUILT) push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \
- cat $(STAMP_DIR)/log/patch; \
- echo "successful."; \
- else \
- cat $(STAMP_DIR)/log/patch; \
- echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \
- exit 1; \
- fi; \
- else \
- echo "No patches to apply"; \
- fi; \
- >$@
-
-# Revert all patches to the upstream source.
-.PHONY: unpatch
-unpatch: $(STAMP_DIR)/log
- rm -f $(STAMP_DIR)/patch
- @echo -n "Unapplying patches..."; \
- if $(QUILT) applied >/dev/null 2>/dev/null; then \
- if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \
- cat $(STAMP_DIR)/log/unpatch; \
- echo "successful."; \
- else \
- cat $(STAMP_DIR)/log/unpatch; \
- echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \
- exit 1; \
- fi; \
- else \
- echo "nothing to do."; \
- fi
-
-# Clean the generated maintainer scripts.
-.PHONY: cleanscripts
-cleanscripts:
- rm -f $(STAMP_DIR)/genscripts
- rm -f debian/*.config \
- debian/*.postinst \
- debian/*.postrm \
- debian/*.preinst \
- debian/*.prerm
-
-# Clean the package build tree.
-.PHONY: xsfclean
-xsfclean: cleanscripts unpatch
- dh_testdir
- rm -rf .pc
- rm -rf $(STAMP_DIR)
- dh_clean
-
-# Remove files from the upstream source tree that we don't need, or which have
-# licensing problems. It must be run before creating the .orig.tar.gz.
-#
-# Note: This rule is for Debian package maintainers' convenience, and is not
-# needed for conventional build scenarios.
-.PHONY: prune-upstream-tree
-prune-upstream-tree:
- # Ensure we're in the correct directory.
- dh_testdir
- grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf
-
-# Verify that there are no offsets or fuzz in the patches we apply.
-#
-# Note: This rule is for Debian package maintainers' convenience, and is not
-# needed for conventional build scenarios.
-.PHONY: patch-audit
-patch-audit: prepare unpatch
- @echo -n "Auditing patches..."; \
- >$(STAMP_DIR)/log/patch; \
- FUZZY=; \
- while [ -n "$$($(QUILT) next)" ]; do \
- RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\
- case "$$RESULT" in \
- succeeded) \
- echo "fuzzy patch: $$($(QUILT) top)" \
- | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \
- FUZZY=yes; \
- ;; \
- FAILED) \
- echo "broken patch: $$($(QUILT) next)" \
- | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \
- exit 1; \
- ;; \
- esac; \
- done; \
- if [ -n "$$FUZZY" ]; then \
- echo "there were fuzzy patches; please fix."; \
- exit 1; \
- else \
- echo "done."; \
- fi
-
-# Generate the maintainer scripts.
-.PHONY: genscripts
-stampdir_targets+=genscripts
-genscripts: $(STAMP_DIR)/genscripts
-$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir
- for FILE in debian/*.config.in \
- debian/*.postinst.in \
- debian/*.postrm.in \
- debian/*.preinst.in \
- debian/*.prerm.in; do \
- if [ -e "$$FILE" ]; then \
- MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \
- sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \
- | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \
- cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \
- sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \
- | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \
- sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \
- -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \
- <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \
- rm $$MAINTSCRIPT.tmp; \
- fi; \
- done
- # Validate syntax of generated shell scripts.
- #sh debian/scripts/validate-posix-sh debian/*.config \
- # debian/*.postinst \
- # debian/*.postrm \
- # debian/*.preinst \
- # debian/*.prerm
- >$@
-
-SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null)
-VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null)
-INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null)
-SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS))
-VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI)
-INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI)
-ifeq ($(PACKAGE),)
-PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control)
-endif
-
-.PHONY: serverabi
-serverabi: install
-ifeq ($(SERVERMINVERS),)
- @echo error: xserver-xorg-dev needs to be installed
- @exit 1
-else
- echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars
- echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars
- echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars
-endif
-
-# vim:set noet ai sts=8 sw=8 tw=0:
+++ /dev/null
-# This is the X Strike Force shell library for X Window System package
-# maintainer scripts. It serves to define shell functions commonly used by
-# such packages, and performs some error checking necessary for proper operation
-# of those functions. By itself, it does not "do" much; the maintainer scripts
-# invoke the functions defined here to accomplish package installation and
-# removal tasks.
-
-# If you are reading this within a Debian package maintainer script (e.g.,
-# /var/lib/dpkg/info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can
-# skip past this library by scanning forward in this file to the string
-# "GOBSTOPPER".
-
-SOURCE_VERSION=@SOURCE_VERSION@
-OFFICIAL_BUILD=@OFFICIAL_BUILD@
-
-# Use special abnormal exit codes so that problems with this library are more
-# easily tracked down.
-SHELL_LIB_INTERNAL_ERROR=86
-SHELL_LIB_THROWN_ERROR=74
-SHELL_LIB_USAGE_ERROR=99
-
-# old -> new variable names
-if [ -z "$DEBUG_XORG_PACKAGE" ] && [ -n "$DEBUG_XFREE86_PACKAGE" ]; then
- DEBUG_XORG_PACKAGE="$DEBUG_XFREE86_PACKAGE"
-fi
-if [ -z "$DEBUG_XORG_DEBCONF" ] && [ -n "$DEBUG_XFREE86_DEBCONF" ]; then
- DEBUG_XORG_DEBCONF="$DEBUG_XFREE86_DEBCONF"
-fi
-
-# initial sanity checks
-if [ -z "$THIS_PACKAGE" ]; then
- cat >&2 <<EOF
-Error: package maintainer script attempted to use shell library without
-definining \$THIS_PACKAGE shell variable. Please report the package name,
-version, and the text of this error message to the Debian Bug Tracking System.
-Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for
-instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the
-"doc-debian" package, or install the "reportbug" package and use the command of
-the same name to file a report against version $SOURCE_VERSION of this package.
-EOF
- exit $SHELL_LIB_USAGE_ERROR
-fi
-
-if [ -z "$THIS_SCRIPT" ]; then
- cat >&2 <<EOF
-Error: package maintainer script attempted to use shell library without
-definining \$THIS_SCRIPT shell variable. Please report the package name,
-version, and the text of this error message to the Debian Bug Tracking System.
-Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for
-instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the
-"doc-debian" package, or install the "reportbug" package and use the command of
-the same name to file a report against version $SOURCE_VERSION of the
-"$THIS_PACKAGE" package.
-EOF
- exit $SHELL_LIB_USAGE_ERROR
-fi
-
-if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
- RECONFIGURE="true"
-else
- RECONFIGURE=
-fi
-
-if ([ "$1" = "install" ] || [ "$1" = "configure" ]) && [ -z "$2" ]; then
- FIRSTINST="yes"
-fi
-
-if [ -z "$RECONFIGURE" ] && [ -z "$FIRSTINST" ]; then
- UPGRADE="yes"
-fi
-
-trap "message;\
- message \"Received signal. Aborting $THIS_PACKAGE package $THIS_SCRIPT script.\";\
- message;\
- exit 1" HUP INT QUIT TERM
-
-reject_nondigits () {
- # syntax: reject_nondigits [ operand ... ]
- #
- # scan operands (typically shell variables whose values cannot be trusted) for
- # characters other than decimal digits and barf if any are found
- while [ -n "$1" ]; do
- # does the operand contain anything but digits?
- if ! expr "$1" : "[[:digit:]]\+$" > /dev/null 2>&1; then
- # can't use die(), because it wraps message() which wraps this function
- echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_nondigits() encountered" \
- "possibly malicious garbage \"$1\"" >&2
- exit $SHELL_LIB_THROWN_ERROR
- fi
- shift
- done
-}
-
-reject_unlikely_path_chars () {
- # syntax: reject_unlikely_path_chars [ operand ... ]
- #
- # scan operands (typically shell variables whose values cannot be trusted) for
- # characters unlikely to be seen in a path and which the shell might
- # interpret and barf if any are found
- while [ -n "$1" ]; do
- # does the operand contain any funny characters?
- if expr "$1" : '.*[!$&()*;<>?|].*' > /dev/null 2>&1; then
- # can't use die(), because I want to avoid forward references
- echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_unlikely_path_chars()" \
- "encountered possibly malicious garbage \"$1\"" >&2
- exit $SHELL_LIB_THROWN_ERROR
- fi
- shift
- done
-}
-
-# Query the terminal to establish a default number of columns to use for
-# displaying messages to the user. This is used only as a fallback in the
-# event the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while
-# the script is running, and this cannot, only being calculated once.)
-DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true
-if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then
- DEFCOLUMNS=80
-fi
-
-message () {
- # pretty-print messages of arbitrary length
- reject_nondigits "$COLUMNS"
- echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2
-}
-
-observe () {
- # syntax: observe message ...
- #
- # issue observational message suitable for logging someday when support for
- # it exists in dpkg
- if [ -n "$DEBUG_XORG_PACKAGE" ]; then
- message "$THIS_PACKAGE $THIS_SCRIPT note: $*"
- fi
-}
-
-warn () {
- # syntax: warn message ...
- #
- # issue warning message suitable for logging someday when support for
- # it exists in dpkg; also send to standard error
- message "$THIS_PACKAGE $THIS_SCRIPT warning: $*"
-}
-
-die () {
- # syntax: die message ...
- #
- # exit script with error message
- message "$THIS_PACKAGE $THIS_SCRIPT error: $*"
- exit $SHELL_LIB_THROWN_ERROR
-}
-
-internal_error () {
- # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
- message "internal error: $*"
- if [ -n "$OFFICIAL_BUILD" ]; then
- message "Please report a bug in the $THIS_SCRIPT script of the" \
- "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \
- "Tracking System. Include all messages above that mention the" \
- "$THIS_PACKAGE package. Visit " \
- "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \
- "instructions, read the file" \
- "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \
- "package, or install the reportbug package and use the command of" \
- "the same name to file a report."
- fi
- exit $SHELL_LIB_INTERNAL_ERROR
-}
-
-usage_error () {
- message "usage error: $*"
- message "Please report a bug in the $THIS_SCRIPT script of the" \
- "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \
- "Tracking System. Include all messages above that mention the" \
- "$THIS_PACKAGE package. Visit " \
- "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \
- "instructions, read the file" \
- "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \
- "package, or install the reportbug package and use the command of" \
- "the same name to file a report."
- exit $SHELL_LIB_USAGE_ERROR
-}
-
-font_update () {
- # run $UPDATECMDS in $FONTDIRS
-
- local dir cmd shortcmd x_font_dir_prefix
-
- x_font_dir_prefix="/usr/share/fonts/X11"
-
- if [ -z "$UPDATECMDS" ]; then
- usage_error "font_update() called but \$UPDATECMDS not set"
- fi
- if [ -z "$FONTDIRS" ]; then
- usage_error "font_update() called but \$FONTDIRS not set"
- fi
-
- reject_unlikely_path_chars "$UPDATECMDS"
- reject_unlikely_path_chars "$FONTDIRS"
-
- for dir in $FONTDIRS; do
- if [ -d "$x_font_dir_prefix/$dir" ]; then
- for cmd in $UPDATECMDS; do
- if which "$cmd" > /dev/null 2>&1; then
- shortcmd=${cmd##*/}
- observe "running $shortcmd in $dir font directory"
- cmd_opts=
- if [ "$shortcmd" = "update-fonts-alias" ]; then
- cmd_opts=--x11r7-layout
- fi
- if [ "$shortcmd" = "update-fonts-dir" ]; then
- cmd_opts=--x11r7-layout
- fi
- if [ "$shortcmd" = "update-fonts-scale" ]; then
- cmd_opts=--x11r7-layout
- fi
- $cmd $cmd_opts $dir || warn "$cmd $cmd_opts $dir" \
- "failed; font directory data may not" \
- "be up to date"
- else
- warn "$cmd not found; not updating corresponding $dir font" \
- "directory data"
- fi
- done
- else
- warn "$dir is not a directory; not updating font directory data"
- fi
- done
-}
-
-remove_conffile_prepare () {
- # syntax: remove_conffile_prepare filename official_md5sum ...
- #
- # Check a conffile "filename" against a list of canonical MD5 checksums.
- # If the file's current MD5 checksum matches one of the "official_md5sum"
- # operands provided, then prepare the conffile for removal from the system.
- # We defer actual deletion until the package is configured so that we can
- # roll this operation back if package installation fails.
- #
- # Call this function from a preinst script in the event $1 is "upgrade" or
- # "install" and verify $2 to ensure the package is being upgraded from a
- # version (or installed over a version removed-but-not-purged) prior to the
- # one in which the conffile was obsoleted.
-
- local conffile current_checksum
-
- # validate arguments
- if [ $# -lt 2 ]; then
- usage_error "remove_conffile_prepare() called with wrong number of" \
- "arguments; expected at least 2, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- conffile="$1"
- shift
-
- # does the conffile even exist?
- if [ -e "$conffile" ]; then
- # calculate its checksum
- current_checksum=$(md5sum < "$conffile" | sed 's/[[:space:]].*//')
- # compare it to each supplied checksum
- while [ -n "$1" ]; do
- if [ "$current_checksum" = "$1" ]; then
- # we found a match; move the confffile and stop looking
- observe "preparing obsolete conffile $conffile for removal"
- mv "$conffile" "$conffile.$THIS_PACKAGE-tmp"
- break
- fi
- shift
- done
- fi
-}
-
-remove_conffile_lookup () {
- # syntax: remove_conffile_lookup package filename
- #
- # Lookup the md5sum of a conffile in dpkg's database, and prepare for removal
- # if it matches the actual file's md5sum.
- #
- # Call this function when you would call remove_conffile_prepare but only
- # want to check against dpkg's status database instead of known checksums.
-
- local package conffile old_md5sum
-
- # validate arguments
- if [ $# -ne 2 ]; then
- usage_error "remove_conffile_lookup() called with wrong number of" \
- "arguments; expected 1, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- package="$1"
- conffile="$2"
-
- if ! [ -e "$conffile" ]; then
- return
- fi
- old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$package" | \
- awk '{ if (match($0, "^ '"$conffile"' ")) print $2}')"
- if [ -n "$old_md5sum" ]; then
- remove_conffile_prepare "$conffile" "$old_md5sum"
- fi
-}
-
-remove_conffile_commit () {
- # syntax: remove_conffile_commit filename
- #
- # Complete the removal of a conffile "filename" that has become obsolete.
- #
- # Call this function from a postinst script after having used
- # remove_conffile_prepare() in the preinst.
-
- local conffile
-
- # validate arguments
- if [ $# -ne 1 ]; then
- usage_error "remove_conffile_commit() called with wrong number of" \
- "arguments; expected 1, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- conffile="$1"
-
- # if the temporary file created by remove_conffile_prepare() exists, remove it
- if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then
- observe "committing removal of obsolete conffile $conffile"
- rm "$conffile.$THIS_PACKAGE-tmp"
- fi
-}
-
-remove_conffile_rollback () {
- # syntax: remove_conffile_rollback filename
- #
- # Roll back the removal of a conffile "filename".
- #
- # Call this function from a postrm script in the event $1 is "abort-upgrade"
- # or "abort-install" is after having used remove_conffile_prepare() in the
- # preinst.
-
- local conffile
-
- # validate arguments
- if [ $# -ne 1 ]; then
- usage_error "remove_conffile_rollback() called with wrong number of" \
- "arguments; expected 1, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- conffile="$1"
-
- # if the temporary file created by remove_conffile_prepare() exists, move it
- # back
- if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then
- observe "rolling back removal of obsolete conffile $conffile"
- mv "$conffile.$THIS_PACKAGE-tmp" "$conffile"
- fi
-}
-
-replace_conffile_with_symlink_prepare () {
- # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \
- # official_md5sum ...
- #
- # Check a conffile "oldfilename" against a list of canonical MD5 checksums.
- # If the file's current MD5 checksum matches one of the "official_md5sum"
- # operands provided, then prepare the conffile for removal from the system.
- # We defer actual deletion until the package is configured so that we can
- # roll this operation back if package installation fails. Otherwise copy it
- # to newfilename and let dpkg handle it through conffiles mechanism.
- #
- # Call this function from a preinst script in the event $1 is "upgrade" or
- # "install" and verify $2 to ensure the package is being upgraded from a
- # version (or installed over a version removed-but-not-purged) prior to the
- # one in which the conffile was obsoleted.
-
- local conffile current_checksum
-
- # validate arguments
- if [ $# -lt 3 ]; then
- usage_error "replace_conffile_with_symlink_prepare() called with wrong" \
- " number of arguments; expected at least 3, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- oldconffile="$1"
- shift
- newconffile="$1"
- shift
-
- remove_conffile_prepare "$_oldconffile" "$@"
- # If $oldconffile still exists, then md5sums didn't match.
- # Copy it to new one.
- if [ -f "$oldconffile" ]; then
- cp "$oldconffile" "$newconffile"
- fi
-
-}
-
-replace_conffile_with_symlink_commit () {
- # syntax: replace_conffile_with_symlink_commit oldfilename
- #
- # Complete the removal of a conffile "oldfilename" that has been
- # replaced by a symlink.
- #
- # Call this function from a postinst script after having used
- # replace_conffile_with_symlink_prepare() in the preinst.
-
- local conffile
-
- # validate arguments
- if [ $# -ne 1 ]; then
- usage_error "replace_conffile_with_symlink_commit() called with wrong" \
- "number of arguments; expected 1, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- conffile="$1"
-
- remove_conffile_commit "$conffile"
-}
-
-replace_conffile_with_symlink_rollback () {
- # syntax: replace_conffile_with_symlink_rollback oldfilename newfilename
- #
- # Roll back the replacing of a conffile "oldfilename" with symlink to
- # "newfilename".
- #
- # Call this function from a postrm script in the event $1 is "abort-upgrade"
- # or "abort-install" and verify $2 to ensure the package failed to upgrade
- # from a version (or install over a version removed-but-not-purged) prior
- # to the one in which the conffile was obsoleted.
- # You should have used replace_conffile_with_symlink_prepare() in the
- # preinst.
-
- local conffile
-
- # validate arguments
- if [ $# -ne 2 ]; then
- usage_error "replace_conffile_with_symlink_rollback() called with wrong" \
- "number of arguments; expected 2, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- oldconffile="$1"
- newconffile="$2"
-
- remove_conffile_rollback "$_oldconffile"
- if [ -f "$newconffile" ]; then
- rm "$newconffile"
- fi
-}
-
-run () {
- # syntax: run command [ argument ... ]
- #
- # Run specified command with optional arguments and report its exit status.
- # Useful for commands whose exit status may be nonzero, but still acceptable,
- # or commands whose failure is not fatal to us.
- #
- # NOTE: Do *not* use this function with db_get or db_metaget commands; in
- # those cases the return value of the debconf command *must* be checked
- # before the string returned by debconf is used for anything.
-
- local retval
-
- # validate arguments
- if [ $# -lt 1 ]; then
- usage_error "run() called with wrong number of arguments; expected at" \
- "least 1, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- "$@" || retval=$?
-
- if [ ${retval:-0} -ne 0 ]; then
- observe "command \"$*\" exited with status $retval"
- fi
-}
-
-make_symlink_sane () {
- # syntax: make_symlink_sane symlink target
- #
- # Ensure that the symbolic link symlink exists, and points to target.
- #
- # If symlink does not exist, create it and point it at target.
- #
- # If symlink exists but is not a symbolic link, back it up.
- #
- # If symlink exists, is a symbolic link, but points to the wrong location, fix
- # it.
- #
- # If symlink exists, is a symbolic link, and already points to target, do
- # nothing.
- #
- # This function wouldn't be needed if ln had an -I, --idempotent option.
-
- # Validate arguments.
- if [ $# -ne 2 ]; then
- usage_error "make_symlink_sane() called with wrong number of arguments;" \
- "expected 2, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- # We could just use the positional parameters as-is, but that makes things
- # harder to follow.
- local symlink target
-
- symlink="$1"
- target="$2"
-
- if [ -L "$symlink" ] && [ "$(readlink "$symlink")" = "$target" ]; then
- observe "link from $symlink to $target already exists"
- else
- observe "creating symbolic link from $symlink to $target"
- mkdir -p "${target%/*}" "${symlink%/*}"
- ln -s -b -S ".dpkg-old" "$target" "$symlink"
- fi
-}
-
-migrate_dir_to_symlink () {
- # syntax: migrate_dir_to_symlink old_location new_location
- #
- # Per Debian Policy section 6.5.4, "A directory will never be replaced by a
- # symbolic link to a directory or vice versa; instead, the existing state
- # (symlink or not) will be left alone and dpkg will follow the symlink if
- # there is one."
- #
- # We have to do it ourselves.
- #
- # This function moves the contents of old_location, a directory, into
- # new_location, a directory, then makes old_location a symbolic link to
- # new_location.
- #
- # old_location need not exist, but if it does, it must be a directory (or a
- # symlink to a directory). If it is not, it is backed up. If new_location
- # exists already and is not a directory, it is backed up.
- #
- # This function should be called from a package's preinst so that other
- # packages unpacked after this one --- but before this package's postinst runs
- # --- are unpacked into new_location even if their payloads contain
- # old_location filespecs.
-
- # Validate arguments.
- if [ $# -ne 2 ]; then
- usage_error "migrate_dir_to_symlink() called with wrong number of"
- "arguments; expected 2, got $#"
- exit $SHELL_LIB_USAGE_ERROR
- fi
-
- # We could just use the positional parameters as-is, but that makes things
- # harder to follow.
- local new old
-
- old="$1"
- new="$2"
-
- # Is old location a symlink?
- if [ -L "$old" ]; then
- # Does it already point to new location?
- if [ "$(readlink "$old")" = "$new" ]; then
- # Nothing to do; migration has already been done.
- observe "migration of $old to $new already done"
- return 0
- else
- # Back it up.
- warn "backing up symbolic link $old as $old.dpkg-old"
- mv -b "$old" "$old.dpkg-old"
- fi
- fi
-
- # Does old location exist, but is not a directory?
- if [ -e "$old" ] && ! [ -d "$old" ]; then
- # Back it up.
- warn "backing up non-directory $old as $old.dpkg-old"
- mv -b "$old" "$old.dpkg-old"
- fi
-
- observe "migrating $old to $new"
-
- # Is new location a symlink?
- if [ -L "$new" ]; then
- # Does it point the wrong way, i.e., back to where we're migrating from?
- if [ "$(readlink "$new")" = "$old" ]; then
- # Get rid of it.
- observe "removing symbolic link $new which points to $old"
- rm "$new"
- else
- # Back it up.
- warn "backing up symbolic link $new as $new.dpkg-old"
- mv -b "$new" "$new.dpkg-old"
- fi
- fi
-
- # Does new location exist, but is not a directory?
- if [ -e "$new" ] && ! [ -d "$new" ]; then
- warn "backing up non-directory $new as $new.dpkg-old"
- mv -b "$new" "$new.dpkg-old"
- fi
-
- # Create new directory if it does not yet exist.
- if ! [ -e "$new" ]; then
- observe "creating $new"
- mkdir -p "$new"
- fi
-
- # Copy files in old location to new location. Back up any filenames that
- # already exist in the new location with the extension ".dpkg-old".
- observe "copying files from $old to $new"
- if ! (cd "$old" && cp -a -b -S ".dpkg-old" . "$new"); then
- die "error(s) encountered while copying files from $old to $new"
- fi
-
- # Remove files at old location.
- observe "removing $old"
- rm -r "$old"
-
- # Create symlink from old location to new location.
- make_symlink_sane "$old" "$new"
-}
-
-# vim:set ai et sw=2 ts=2 tw=80:
-
-# GOBSTOPPER: The X Strike Force shell library ends here.
-#
-# Copyright (c) 2010, Oracle and/or its affiliates. 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
-# 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 NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS 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.
-#
if ENABLE_DOCS
-dist_doc_DATA = Xmu.xml xlogo.svg
-if HAVE_XMLTO
-doc_DATA = Xmu.html
+# Main DocBook/XML files (DOCTYPE book)
+docbook = Xmu.xml
-if HAVE_FOP
-doc_DATA += Xmu.pdf Xmu.ps
-endif
+# Included chapters, appendix, images
+chapters = xlogo.svg
-if HAVE_XMLTO_TEXT
-doc_DATA += Xmu.txt
-endif
+# The location where the DocBook/XML files and their generated formats are installed
+shelfdir = $(docdir)
-CLEANFILES = Xmu.txt Xmu.html Xmu.pdf Xmu.ps xorg.css
+# Generate DocBook/XML output formats with or without stylesheets
+include $(top_srcdir)/docbook.am
-if HAVE_STYLESHEETS
-XMLTO_FLAGS = -m $(XSL_STYLESHEET) --stringparam img.src.path=$(abs_builddir)/
-
-doc_DATA += xorg.css
-xorg.css: $(STYLESHEET_SRCDIR)/xorg.css
- $(AM_V_GEN)cp -pf $(STYLESHEET_SRCDIR)/xorg.css $@
-endif
-
-XML_SOURCEFILES = $(srcdir)/Xmu.xml $(XSL_STYLESHEET)
-
-Xmu.txt: $(XML_SOURCEFILES)
- $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $(srcdir)/Xmu.xml
-
-Xmu.html: $(XML_SOURCEFILES)
- $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $(srcdir)/Xmu.xml
-
-Xmu.pdf: $(XML_SOURCEFILES)
- $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $(srcdir)/Xmu.xml
-
-Xmu.ps: $(XML_SOURCEFILES)
- $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $(srcdir)/Xmu.xml
-endif HAVE_XMLTO
endif ENABLE_DOCS
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<!-- lifted from troff+ms+XMan by doclifter -->
<article id='xmu'>
<articleinfo>
<title>Xmu and Xmuu Library API Reference</title>
+ <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo>
+ <copyright><year>1989</year><holder>X Consortium</holder>
+ </copyright>
<abstract><para>“Don't ask.”</para></abstract>
<legalnotice>
<para>
-Copyright © 1989 X Consortium
- </para>
- <para>
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
</legalnotice>
</articleinfo>
- <sect1 id='introduction'>
- <title>Introduction</title>
+ <sect1 id='Introduction'>
+<title>Introduction</title>
<para>
The Xmu Library is a collection of miscellaneous (some might say random)
</sect1>
- <sect1 id='atom_functions'>
- <title>Atom Functions</title>
+ <sect1 id='Atom_Functions'>
+<title>Atom Functions</title>
<para>
To use the functions and macros defined in this section, you should include
another round-trip to the server.
</para>
- <para id="XmuMakeAtom">
+ <para>
<indexterm zone="XmuMakeAtom">
- <primary><function>XmuMakeAtom</function></primary>
+ <primary><xref linkend='XmuMakeAtom' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuMakeAtom'>
<funcprototype>
<funcdef>AtomPtr <function>XmuMakeAtom</function></funcdef>
<paramdef>const char *<parameter>name</parameter></paramdef>
<type>Atom</type>
with the
given name.
-<function>XmuInternAtom</function>
+<xref linkend='XmuInternAtom' xrefstyle='select: title'/>
can be used to cache the Atom value for one or more displays.
</para>
- <para id="XmuNameOfAtom">
+ <para>
<indexterm zone="XmuNameOfAtom">
- <primary><function>XmuNameOfAtom</function></primary>
+ <primary><xref linkend='XmuNameOfAtom' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuNameOfAtom'>
<funcprototype>
<funcdef>char *<function>XmuNameOfAtom</function></funcdef>
<paramdef>AtomPtr <parameter>atom_ptr</parameter></paramdef>
The function returns the name of an AtomPtr.
</para>
- <para id="XmuInternAtom">
+ <para>
<indexterm zone="XmuInternAtom">
- <primary><function>XmuInternAtom</function></primary>
+ <primary><xref linkend='XmuInternAtom' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuInternAtom'>
<funcprototype>
<funcdef>Atom <function>XmuInternAtom</function></funcdef>
<paramdef>Display *<parameter>dpy</parameter></paramdef>
such that subsequent requests do not cause another round-trip to the server.
</para>
- <para id="XmuGetAtomName">
+ <para>
<indexterm zone="XmuGetAtomName">
- <primary><function>XmuGetAtomName</function></primary>
+ <primary><xref linkend='XmuGetAtomName' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuGetAtomName'>
<funcprototype>
<funcdef>char *<function>XmuGetAtomName</function></funcdef>
<paramdef>Display *<parameter>dpy</parameter></paramdef>
requests do not cause another round-trip to the server.
</para>
- <para id="XmuInternStrings">
+ <para>
<indexterm zone="XmuInternStrings">
- <primary><function>XmuInternStrings</function></primary>
+ <primary><xref linkend='XmuInternStrings' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuInternStrings'>
<funcprototype>
<funcdef>void <function>XmuInternStrings</function></funcdef>
<paramdef>Display *<parameter>dpy</parameter></paramdef>
</sect1>
- <sect1 id='error_handler_functions'>
- <title>Error Handler Functions</title>
+ <sect1 id='Error_Handler_Functions'>
+<title>Error Handler Functions</title>
<para>
To use the functions defined in this section, you should include the header
and link against the libXmu or libXmuu library.
</para>
- <para id="XmuPrintDefaultErrorMessage">
+ <para>
<indexterm zone="XmuPrintDefaultErrorMessage">
- <primary><function>XmuPrintDefaultErrorMessage</function></primary>
+ <primary><xref linkend='XmuPrintDefaultErrorMessage' xrefstyle='select: title'/></primary>
</indexterm>
- <funcsynopsis>
+ <funcsynopsis id='XmuPrintDefaultErrorMessage'>
<funcprototype>
<funcdef>int <function>XmuPrintDefaultErrorMessage</function></funcdef>
<paramdef>Display *<parameter>dpy</parameter></paramdef>
This function ignores errors for
<errorname>BadWindow</errorname>
errors for
-<function>XQueryTree</function>
+<olink targetdoc='libX11' targetptr='XQueryTree'><function>XQueryTree</function></olink>
and
-<function>XGetWindowAttributes</function>,
+<olink targetdoc='libX11' targetptr='XGetWindowAttributes'><function>XGetWindowAttributes</function></olink>,
and ignores
<errorname>BadDrawable</errorname>
errors for
-<function>XGetGeometry</function>;
+<olink targetdoc='libX11' targetptr='XGetGeometry'><function>XGetGeometry</function></olink>;
it returns 0 in those cases. Otherwise, it prints the default error message,
and returns a non-zero value if the caller should consider exiting,
and 0 if the caller should not exit.
</para>
</sect1>
- <sect1 id='system_utility_functions'>
- <title>System Utility Functions</title>
+ <sect1 id='System_Utility_Functions'>
+<title>System Utility Functions</title>
<para>
To use the functions defined in this section, you should include the header
</sect1>
- <sect1 id='window_utility_functions'>
- <title>Window Utility Functions</title>
+ <sect1 id='Window_Utility_Functions'>
+<title>Window Utility Functions</title>
<para>
To use the functions defined in this section, you should include the header
flags in the hints structure, and then stores the hints for the
window using
<indexterm zone="XmuUpdateMapHints">
- <primary><function>XSetWMNormalHints</function></primary>
+ <primary><olink targetdoc='libX11' targetptr='XSetWMNormalHints'><function>XSetWMNormalHints</function></olink></primary>
</indexterm>
-<function>XSetWMNormalHints</function>
+<olink targetdoc='libX11' targetptr='XSetWMNormalHints'><function>XSetWMNormalHints</function></olink>
and returns
<symbol>True</symbol>.
If <symbol>NULL</symbol> is passed for the
hints structure, then the current hints are read back from the window using
<indexterm zone="XmuUpdateMapHints">
- <primary><function>XGetWMNormalHints</function></primary>
+ <primary><olink targetdoc='libX11' targetptr='XGetWMNormalHints'><function>XGetWMNormalHints</function></olink></primary>
</indexterm>
-<function>XGetWMNormalHints</function>
+<olink targetdoc='libX11' targetptr='XGetWMNormalHints'><function>XGetWMNormalHints</function></olink>
and are used instead, and
<symbol>True</symbol>
is returned; otherwise
</sect1>
- <sect1 id='cursor_utility_functions'>
- <title>Cursor Utility Functions</title>
+ <sect1 id='Cursor_Utility_Functions'>
+<title>Cursor Utility Functions</title>
<para>
To use the functions defined in this section, you should include the header
</sect1>
- <sect1 id='graphics_functions'>
- <title>Graphics Functions</title>
+ <sect1 id='Graphics_Functions'>
+<title>Graphics Functions</title>
<para>
To use the functions defined in this section, you should include the header
</varlistentry>
</variablelist>
- <figure id="xlogo" float="1" pgwide="0">
+This function draws the “official” X Window System logo
+(<xref linkend="xlogo"/>). The bounding box
+of the logo in the drawable is given by x, y, width, and height. The logo
+itself is filled using gcFore, and the rest of the rectangle is filled using
+gcBack.
+ </para>
+ <figure id="xlogo" pgwide="0">
<title>The X Logo</title>
<mediaobject>
<imageobject>
</imageobject>
</mediaobject>
</figure>
-
-This function draws the “official” X Window System logo
-(<xref linkend="xlogo"/>). The bounding box
-of the logo in the drawable is given by x, y, width, and height. The logo
-itself is filled using gcFore, and the rest of the rectangle is filled using
-gcBack.
- </para>
-
<para id="XmuCreateStippledPixmap">
<indexterm zone="XmuCreateStippledPixmap">
<primary><function>XmuCreateStippledPixmap</function></primary>
This function reads a standard bitmap file description from the specified
stream, and returns the parsed data in a format suitable for passing to
-<function>XCreateBitmapFromData</function>.
+<olink targetdoc='libX11' targetptr='XCreateBitmapFromData'><function>XCreateBitmapFromData</function></olink>.
The return value of the function has the same
interpretation as the return value for
-<function>XReadBitmapFile</function>.
+<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>.
</para>
<para id="XmuReadBitmapDataFromFile">
This function reads a standard bitmap file description from the specified
file, and returns the parsed data in a format suitable for passing to
-<function>XCreateBitmapFromData</function>.
+<olink targetdoc='libX11' targetptr='XCreateBitmapFromData'><function>XCreateBitmapFromData</function></olink>.
The return value of the function has the same
interpretation as the return value for
-<function>XReadBitmapFile</function>.
+<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>.
</para>
<para id="XmuLocateBitmapFile">
</variablelist>
This function reads a file in standard bitmap file format, using
-<function>XReadBitmapFile</function>,
+<olink targetdoc='libX11' targetptr='XReadBitmapFile'><function>XReadBitmapFile</function></olink>,
and returns the created bitmap. The filename may be
absolute, or relative to the global resource named
<indexterm zone="XmuLocateBitmapFile">
This function creates a pixmap of the specified width, height, and depth, on
the same screen as the specified drawable, and then performs an
-<function>XCopyPlane</function>
+<olink targetdoc='libX11' targetptr='XCopyPlane'><function>XCopyPlane</function></olink>
from the specified bitmap to the pixmap,
using the specified foreground and background pixel values.
The created pixmap is returned.
</sect1>
- <sect1 id='selection_functions'>
- <title>Selection Functions</title>
+ <sect1 id='Selection_Functions'>
+<title>Selection Functions</title>
<para>
To use the functions defined in this section, you should include the header
</para>
</sect1>
- <sect1 id='type_converter_functions'>
- <title>Type Converter Functions</title>
+ <sect1 id='Type_Converter_Functions'>
+<title>Type Converter Functions</title>
<para>
To use the functions defined in this section, you should include the header
</sect1>
- <sect1 id='character_set_functions'>
- <title>Character Set Functions</title>
+ <sect1 id='Character_Set_Functions'>
+<title>Character Set Functions</title>
<para>
To use the functions defined in this section, you should include the header
</para>
</sect1>
- <sect1 id='keyboard_event'>
- <title>Keyboard Event Translation Functions</title>
+ <sect1 id='Keyboard_Event_Translation_Functions'>
+<title>Keyboard Event Translation Functions</title>
<para>
To use the functions defined in this section, you should include the header
<warning><para>
The functions in this section are <emphasis remap='B'>deprecated</emphasis> because they don't work
in most locales now supported by X11; the function
-<function>XmbLookupString</function>
+<olink targetdoc='libX11' targetptr='XmbLookupString'><function>XmbLookupString</function></olink>
provides a better alternative.
</para></warning>
</variablelist>
This function is identical to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
and exists only for naming symmetry with other functions.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to an Latin-2 (ISO 8859-2) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to an Latin-3 (ISO 8859-3) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to an Latin-4 (ISO 8859-4) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a string in an encoding consisting of Latin-1 (ISO 8859-1) and ASCII
control in the Graphics Left half (values 0 to 127), and Katakana in the
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a string in the JIS X0201-1976 encoding, including ASCII control.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a Latin/Arabic (ISO 8859-6) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a Latin/Cyrillic (ISO 8859-5) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a Latin/Greek (ISO 8859-7) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event
to a Latin/Hebrew (ISO 8859-8) string, or to an ASCII control string.
</para>
</variablelist>
This function is similar to
-<function>XLookupString</function>,
+<olink targetdoc='libX11' targetptr='XLookupString'><function>XLookupString</function></olink>,
except that it maps a key event to an APL string.
</para>
</sect1>
- <sect1 id='compound_text_functions'>
- <title>Compound Text Functions</title>
+ <sect1 id='Compound_Text_Functions'>
+<title>Compound Text Functions</title>
<para>
The functions defined in this section are for parsing Compound Text strings,
</sect1>
- <sect1 id='closedisplay_hook_functions'>
- <title>CloseDisplay Hook Functions</title>
+ <sect1 id='CloseDisplay_Hook_Functions'>
+<title>CloseDisplay Hook Functions</title>
<para>
To use the functions defined in this section, you should include the header
</para>
</sect1>
- <sect1 id='display_queue_functions'>
- <title>Display Queue Functions</title>
+ <sect1 id='Display_Queue_Functions'>
+<title>Display Queue Functions</title>
<para>
To use the functions and types defined in this section, you should include the
</sect1>
- <sect1 id='toolkit_convenience_functions'>
- <title>Toolkit Convenience Functions</title>
+ <sect1 id='Toolkit_Convenience_Functions'>
+<title>Toolkit Convenience Functions</title>
<para>
To use the functions defined in this section, you should include the header
</sect1>
- <sect1 id='standard_colormap_functions'>
- <title>Standard Colormap Functions</title>
+ <sect1 id='Standard_Colormap_Functions'>
+<title>Standard Colormap Functions</title>
<para>
To use the functions defined in this section, you should include the header
</sect1>
- <sect1 id='widget_description_functions'>
- <title>Widget Description Functions</title>
+ <sect1 id='Widget_Description_Functions'>
+<title>Widget Description Functions</title>
<para>
The functions defined in this section are for building a description of
specifies the widget that should be used for creating an instance of
<parameter>node</parameter>
from which resources are extracted. This is typically the value returned
-by <function>XtAppInitialize</function>.
+by <olink targetdoc='libXaw' targetptr='XtAppInitialize'><function>XtAppInitialize</function></olink>.
</para></listitem>
</varlistentry>
<varlistentry>
</sect1>
- <sect1 id='participation_in_the_editres_protocol'>
- <title>Participation in the Editres Protocol</title>
+ <sect1 id='Participation_in_the_Editres_Protocol'>
+<title>Participation in the Editres Protocol</title>
<para>
<indexterm>
--- /dev/null
+#
+# Generate output formats for a single DocBook/XML with/without chapters
+#
+# Variables set by the calling Makefile:
+# shelfdir: the location where the docs/specs are installed. Typically $(docdir)
+# docbook: the main DocBook/XML file, no chapters, appendix or image files
+# chapters: all files pulled in by an XInclude statement and images.
+#
+
+#
+# This makefile is intended for Users Documentation and Functional Specifications.
+# Do not use for Developer Documentation which is not installed and does not require olink.
+# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393
+# for an explanation on documents classification.
+#
+
+# DocBook/XML generated output formats to be installed
+shelf_DATA =
+
+# DocBook/XML file with chapters, appendix and images it includes
+dist_shelf_DATA = $(docbook) $(chapters)
+
+if HAVE_XMLTO
+if HAVE_STYLESHEETS
+
+XMLTO_SEARCHPATH_FLAGS = \
+ --searchpath "$(XORG_SGML_PATH)/X11" \
+ --searchpath "$(abs_top_builddir)"
+XMLTO_HTML_OLINK_FLAGS = \
+ --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \
+ --stringparam current.docid="$(<:.xml=)"
+XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
+XMLTO_HTML_FLAGS = \
+ $(XMLTO_SEARCHPATH_FLAGS) \
+ $(XMLTO_HTML_STYLESHEET_FLAGS) \
+ $(XMLTO_HTML_OLINK_FLAGS)
+
+shelf_DATA += $(docbook:.xml=.html)
+%.html: %.xml $(chapters)
+ $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $<
+
+if HAVE_XMLTO_TEXT
+
+shelf_DATA += $(docbook:.xml=.txt)
+%.txt: %.xml $(chapters)
+ $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $<
+endif HAVE_XMLTO_TEXT
+
+if HAVE_FOP
+XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/
+XMLTO_PDF_OLINK_FLAGS = \
+ --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \
+ --stringparam current.docid="$(<:.xml=)"
+XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl
+
+XMLTO_FO_FLAGS = \
+ $(XMLTO_SEARCHPATH_FLAGS) \
+ $(XMLTO_FO_STYLESHEET_FLAGS) \
+ $(XMLTO_FO_IMAGEPATH_FLAGS) \
+ $(XMLTO_PDF_OLINK_FLAGS)
+
+shelf_DATA += $(docbook:.xml=.pdf)
+%.pdf: %.xml $(chapters)
+ $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $<
+
+shelf_DATA += $(docbook:.xml=.ps)
+%.ps: %.xml $(chapters)
+ $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $<
+endif HAVE_FOP
+
+# Generate documents cross-reference target databases
+if HAVE_XSLTPROC
+
+XSLT_SEARCHPATH_FLAGS = \
+ --path "$(XORG_SGML_PATH)/X11" \
+ --path "$(abs_top_builddir)"
+XSLT_OLINK_FLAGS = \
+ --stringparam targets.filename "$@" \
+ --stringparam collect.xref.targets "only" \
+ --stringparam olink.base.uri "$(@:.db=)"
+
+XSLT_HTML_FLAGS = \
+ $(XSLT_SEARCHPATH_FLAGS) \
+ $(XSLT_OLINK_FLAGS) \
+ --nonet --xinclude \
+ $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
+XSLT_PDF_FLAGS = \
+ $(XSLT_SEARCHPATH_FLAGS) \
+ $(XSLT_OLINK_FLAGS) \
+ --nonet --xinclude \
+ $(STYLESHEET_SRCDIR)/xorg-fo.xsl
+
+shelf_DATA += $(docbook:.xml=.html.db)
+%.html.db: %.xml $(chapters)
+ $(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $<
+
+shelf_DATA += $(docbook:.xml=.pdf.db)
+%.pdf.db: %.xml $(chapters)
+ $(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $<
+
+endif HAVE_XSLTPROC
+endif HAVE_STYLESHEETS
+endif HAVE_XMLTO
+
+CLEANFILES = $(shelf_DATA)
-/*
+/*
Copyright 1988, 1998 The Open Group
-/*
+/*
Copyright 1988, 1998 The Open Group
-/*
+/*
Copyright 1988, 1998 The Open Group
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
* Public Interfaces
- *
+ *
* XmuCvtCache *XmuCvtCacheLookupDisplay (dpy)
* Display *dpy;
*/
/*
* Public Entry Points
- *
- *
+ *
+ *
* XmuDisplayQueue *XmuDQCreate (closefunc, freefunc, data)
* XmuCloseDisplayQueueProc closefunc;
* XmuFreeDisplayQueueProc freefunc;
* XPointer data;
- *
+ *
* Creates and returns a queue into which displays may be placed. When
* the display is closed, the closefunc (if non-NULL) is upcalled with
* as follows:
* Bool XmuDQDestroy (q, docallbacks)
* XmuDisplayQueue *q;
* Bool docallbacks;
- *
+ *
* Releases all memory for the indicated display queue. If docallbacks
- * is true, then the closefunc (if non-NULL) is called for each
+ * is true, then the closefunc (if non-NULL) is called for each
* display.
- *
- *
+ *
+ *
* XmuDisplayQueueEntry *XmuDQLookupDisplay (q, dpy)
* XmuDisplayQueue *q;
* Display *dpy;
* Returns the queue entry for the specified display or NULL if the
* display is not in the queue.
*
- *
+ *
* XmuDisplayQueueEntry *XmuDQAddDisplay (q, dpy, data)
* XmuDisplayQueue *q;
* Display *dpy;
* caller to attach arbitrary data to this display in this queue. The
* caller should use XmuDQLookupDisplay to make sure that the display
* hasn't already been added.
- *
- *
+ *
+ *
* Bool XmuDQRemoveDisplay (q, dpy)
* XmuDisplayQueue *q;
* Display *dpy;
*
- * Removes the specified display from the given queue. If the
+ * Removes the specified display from the given queue. If the
* indicated display is not found on this queue, False is returned,
* otherwise True is returned.
*/
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
Window: 32-bit value
Widget: 32-bit value
String8: ListOfCard8
-
+
[a][b][c] represent an exclusive list of choices.
- All widgets are passed as a list of widgets, containing the
+ All widgets are passed as a list of widgets, containing the
full instance heirarch of this widget. The hierarchy is ordered
from parent to child. Thus the first element of each list is
the root of the widget tree (this makes verifying that the widget
still exists, MUCH faster).
ListOfFoo comprises a list of things in the following format:
-
+
number: Card16
<number> things: ????
-
+
This is a synchronous protocol, every request MUST be followed by a
- reply.
+ reply.
Request:
FindChild = 4,
GetValues = 5 }
Length: Card32
- Data:
+ Data:
Reply:
of widgets for each widget in the tree. This is enough information
to completely reconstruct the entire widget heirarchy.
- The window return value contains the Xid of the window currently
+ The window return value contains the Xid of the window currently
used by this widget. If the widget is unrealized then 0 is returned,
and if widget is a non-windowed object a value of 2 is returned.
widget: ListOfWidgets
message: String8
- SetValues will allow the same resource to be set on a number of
+ SetValues will allow the same resource to be set on a number of
widgets. This function will return an error message if the SetValues
request caused an Xt error.
-
+
GetValues:
- names: ListOfString8
+ names: ListOfString8
widget: Widget
--->
novalues: ListOfCard16
values: ListOfString8
-
- GetValues will allow a number of resource values to be read
+
+ GetValues will allow a number of resource values to be read
on a particular widget. The request specifies the names of
the resources wanted and the widget id these resources are
from. The reply returns a list of indices from the requests
Resource:
Kind: {normal, constraint}
Name: String8
- Class: String8
+ Class: String8
Type: String8 ]
- GetResource retrieves the kind, name, class and type for every
+ GetResource retrieves the kind, name, class and type for every
widget passed to it. If an error occured with the resource fetch
Error will be set to True for the given widget and a message
is returned rather than the resource info.
BorderWidth: Card16 ]
GetGeometry retreives the mapping state, x, y, width, height
- and border width for each widget specified. If an error occured
- with the geometry fetch "Error" will be set to True for the given
- widget and a message is returned rather than the geometry info.
+ and border width for each widget specified. If an error occured
+ with the geometry fetch "Error" will be set to True for the given
+ widget and a message is returned rather than the geometry info.
X an Y corrospond to the root coordinates of the upper left corner
of the widget (outside the window border).
-
+
FindChild:
Widget: ListOfWidgets
X: Int16
Y: Int16
-
+
--->
Widget: ListOfWidgets
- Find Child returns a descendent of the widget specified that
+ Find Child returns a descendent of the widget specified that
is at the root coordinates specified.
NOTE:
GetValues:
- names: ListOfString8
+ names: ListOfString8
widget: Widget
--->
-
+
values: ListOfString8
- GetValues will allow a number of resource values to be read
- on a particular widget. Currently only InterViews 3.0.1 Styles
+ GetValues will allow a number of resource values to be read
+ on a particular widget. Currently only InterViews 3.0.1 Styles
and their attributes are supported. In addition, the current
user interface only supports the return of 1 resource. The ability
to specify and return multiple resources is defined for future editres
interfaces where some or all of a widgets resource values are returned
- and displayed at once.
+ and displayed at once.
************************************************************/
SendWidgetTree = 0,
SetValues = 1,
GetResources = 2,
- GetGeometry = 3,
+ GetGeometry = 3,
FindChild = 4,
GetValues = 5
} EditresCommand;
void _XEditResPutString8
(
ProtocolStream *stream,
- char *str
+ _Xconst char *str
);
void _XEditResPut8
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
-/*
+/*
Copyright 1988, 1998 The Open Group
struct _XmuSegment *next;
} XmuSegment;
-typedef struct _XmuScanline {
+typedef struct _XmuScanline {
int y;
XmuSegment *segment;
struct _XmuScanline *next;
} XmuScanline;
-
+
typedef struct _XmuArea {
- XmuScanline *scanline;
+ XmuScanline *scanline;
} XmuArea;
#define XmuCreateArea() XmuNewArea(0, 0, 0, 0)
+# TODO: libXmuu split and/or elf filter emulation
-Name: libxmu
-Summary: X.Org X11 libXmu/libXmuu runtime libraries
-Version: 1.1.0
-Release: 2.6
-Group: System/Libraries
-License: MIT
-URL: http://www.x.org
-Source0: http://xorg.freedesktop.org/releases/individual/lib/%{name}-%{version}.tar.gz
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-BuildRequires: pkgconfig(xorg-macros)
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(xext)
-BuildRequires: pkgconfig(xt)
-BuildRequires: pkgconfig(xextproto)
-
+Summary: X.Org X11 libXmu/libXmuu runtime libraries
+Name: libXmu
+Version: 1.1.1
+Release: 1
+License: MIT
+Group: System Environment/Libraries
+URL: http://www.x.org
-%description
-This library contains miscellaneous utilities and is not part of the Xlib
-standard. It contains routines which only use public interfaces so that it
-may be layered on top of any proprietary implementation of Xlib or Xt.
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: pkgconfig(xorg-macros)
+BuildRequires: xorg-x11-xutils-dev
+BuildRequires: libX11-devel
+BuildRequires: libXext-devel
+BuildRequires: libXt-devel
+%description
+X.Org X11 libXmu/libXmuu runtime libraries
%package devel
-Summary: X.Org X11 libXmu development package
-Group: System/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: xorg-x11-filesystem
+Summary: X.Org X11 libXmu development package
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Provides: libxmu-devel
%description devel
-This library contains miscellaneous utilities and is not part of the Xlib
-standard.
-
-
+X.Org X11 libXmu development package
%prep
-%setup -q -n %{name}-%{version}
-
+%setup -q
%build
-
-%reconfigure --disable-static
+%reconfigure --disable-static \
+ LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
make %{?jobs:-j%jobs}
%install
-rm -rf %{buildroot}
-%make_install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+# We intentionally don't ship *.la files
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+# fixup later
+rm -rf $RPM_BUILD_ROOT%{_docdir}
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-
+%remove_docs
+%clean
+rm -rf $RPM_BUILD_ROOT
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
-%doc COPYING
+%doc COPYING README ChangeLog
%{_libdir}/libXmu.so.6
%{_libdir}/libXmu.so.6.2.0
%{_libdir}/libXmuu.so.1
%{_libdir}/libXmuu.so.1.0.0
-
%files devel
%defattr(-,root,root,-)
-%dir %{_includedir}/X11
%dir %{_includedir}/X11/Xmu
-%doc README ChangeLog
-%doc %{_docdir}/libXmu/Xmu.xml
-%doc %{_docdir}/libXmu/xlogo.svg
%{_includedir}/X11/Xmu/Atoms.h
%{_includedir}/X11/Xmu/CharSet.h
%{_includedir}/X11/Xmu/CloseHook.h
%{_includedir}/X11/Xmu/StdCmap.h
%{_includedir}/X11/Xmu/StdSel.h
%{_includedir}/X11/Xmu/SysUtil.h
+%{_includedir}/X11/Xmu/WhitePoint.h
%{_includedir}/X11/Xmu/WidgetNode.h
%{_includedir}/X11/Xmu/WinUtil.h
%{_includedir}/X11/Xmu/Xct.h
%{_includedir}/X11/Xmu/Xmu.h
-%{_includedir}/X11/Xmu/WhitePoint.h
%{_libdir}/libXmu.so
%{_libdir}/libXmuu.so
%{_libdir}/pkgconfig/xmu.pc
-/*
-
+/*
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/Xmu/StdCmap.h>
-
+
static XVisualInfo *getDeepestVisual(int, XVisualInfo*, int);
/*
*
* Define and retain as permanent resources all standard colormaps which are
* meaningful for the visuals of each screen of the display. Return 0 on
- * failure, non-zero on success. If the property of any standard colormap
+ * failure, non-zero on success. If the property of any standard colormap
* is already defined, redefine it.
*
* This interface is intended to be used by window managers or a client
* with the screen's root window. Each screen has exactly one root window.
* The property names of standard colormaps are predefined, and each property
* name may describe at most one colormap.
- *
+ *
* The standard colormaps are
* RGB_BEST_MAP
* RGB_RED_MAP
* how the standard colormap is defined. Because a standard colormap is
* associated with a specific visual, there must be a method of determining
* which visuals take precedence in defining standard colormaps.
- *
- * The method used here is: for the visual of greatest depth, define all
+ *
+ * The method used here is: for the visual of greatest depth, define all
* standard colormaps meaningful to that visual class, according to this
* order of (descending) precedence:
* 1. DirectColor
NULL))
status = XmuVisualStandardColormaps(dpy, scr, v1->visualid,
(unsigned) v1->depth, 1, 1);
- if (status &&
+ if (status &&
(((v1 = getDeepestVisual(GrayScale, vinfo, nvisuals)) != NULL)
- || ((v1 = getDeepestVisual(StaticGray, vinfo, nvisuals)) !=
+ || ((v1 = getDeepestVisual(StaticGray, vinfo, nvisuals)) !=
NULL)))
status = XmuVisualStandardColormaps(dpy, scr, v1->visualid,
(unsigned) v1->depth, 1, 1);
register int i;
register int maxdepth = 0;
XVisualInfo *v = NULL;
-
+
for (i=0; i < nvisuals; i++, vinfo++)
if (vinfo->class == visual_class && vinfo->depth > maxdepth)
{
-/*
+/*
Copyright 1988, 1998 The Open Group
} DisplayRec;
struct _AtomRec {
- char *name;
+ _Xconst char *name;
DisplayRec* head;
};
#define STATIC static
#endif
-#if !defined(UNIXCPP) || defined(ANSICPP)
#define DeclareAtom(atom,text) \
STATIC struct _AtomRec __##atom = { text, NULL }; \
AtomPtr _##atom = &__##atom;
-#else
-#define DeclareAtom(atom,text) \
-STATIC struct _AtomRec __/**/atom = { text, NULL }; \
-AtomPtr _/**/atom = &__/**/atom;
-#endif
DeclareAtom(XA_ATOM_PAIR, "ATOM_PAIR" )
DeclareAtom(XA_CHARACTER_POSITION, "CHARACTER_POSITION" )
XmuMakeAtom(_Xconst char *name)
{
AtomPtr ptr = XtNew(struct _AtomRec);
- ptr->name = (char *) name;
+ ptr->name = name;
ptr->head = NULL;
return ptr;
}
char *
XmuNameOfAtom(AtomPtr atom_ptr)
{
- return atom_ptr->name;
+ return (char *) atom_ptr->name;
}
-/*
-
+/*
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
Z = Z->next;
if (Z->y >= p->y)
{
- XmuScanline *q = XmuNewScanline(Z->y, 0, 0);
+ XmuScanline *q = XmuNewScanline(Z->y, 0, 0);
XmuScanlineCopy(q, Z);
XmuScanlineAnd(q, top);
-/*
+/*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
*
* *
* Author: Jim Fulton, MIT X Consortium
- *
- *
+ *
+ *
* Public Entry Points
- *
+ *
* CloseHook XmuAddCloseDisplayHook (dpy, func, arg)
* Display *dpy;
* XmuCloseHookProc func;
* XPointer arg;
- *
+ *
* Bool XmuRemoveCloseDisplayHook (dpy, hook, func, arg)
* Display *dpy;
* CloseHook hook;
* XmuCloseHookProc func;
* XPointer arg;
- *
+ *
* Bool XmuLookupCloseDisplayHook (dpy, hook, func, arg)
* Display *dpy;
* CloseHook hook;
* XmuCloseHookProc func;
* XPointer arg;
- *
+ *
*/
#ifdef HAVE_CONFIG_H
/*
- * Lookup - see whether or not a handle has been installed. If handle is
- * non-NULL, look for an entry that matches it; otherwise look for an entry
+ * Lookup - see whether or not a handle has been installed. If handle is
+ * non-NULL, look for an entry that matches it; otherwise look for an entry
* with the same function/argument pair.
*/
Bool
-/*
+/*
Copyright 1989, 1994, 1998 The Open Group
static int icbrt_with_bits(int, int);
static int icbrt_with_guess(int, int);
-/* To determine the best allocation of reds, greens, and blues in a
+/* To determine the best allocation of reds, greens, and blues in a
* standard colormap, use XmuGetColormapAllocation.
* vinfo specifies visual information for a chosen visual
* property specifies one of the standard colormap property names
- * red_max returns maximum red value
+ * red_max returns maximum red value
* green_max returns maximum green value
* blue_max returns maximum blue value
*
unsigned long *blue_max)
{
*red_max = (n * 30) / 100;
- *green_max = (n * 59) / 100;
- *blue_max = (n * 11) / 100;
+ *green_max = (n * 59) / 100;
+ *blue_max = (n * 11) / 100;
*green_max += ((n - 1) - (*red_max + *green_max + *blue_max));
}
/****************************************************************************/
/* Determine an appropriate color allocation for the RGB_DEFAULT_MAP.
* If a map has less than a minimum number of definable entries, we do not
- * produce an allocation for an RGB_DEFAULT_MAP.
+ * produce an allocation for an RGB_DEFAULT_MAP.
*
* For 16 planes, the default colormap will have 27 each RGB; for 12 planes,
* 12 each. For 8 planes, let n = the number of colormap entries, which may
ngrays = 12;
gray_allocation(ngrays, red, green, blue);
break;
-
+
default:
return 0;
}
* Which, on a GPX, allows for 252 entries in the best map, out of 254
* defineable colormap entries.
*/
-
+
static void
best_allocation(XVisualInfo *vinfo, unsigned long *red, unsigned long *green,
unsigned long *blue)
else
{
register int bits, n;
-
+
/* Determine n such that n is the least integral power of 2 which is
* greater than or equal to the number of entries in the colormap.
*/
n = n << 1;
bits++;
}
-
+
/* If the number of entries in the colormap is a power of 2, determine
* the allocation by "dealing" the bits, first to green, then red, then
* blue. If not, find the maximum integral red, green, and blue values
- * which, when multiplied together, do not exceed the number of
+ * which, when multiplied together, do not exceed the number of
* colormap entries.
*/
else
{
*red = icbrt_with_bits(vinfo->colormap_size, bits);
- *blue = *red;
+ *blue = *red;
*green = (vinfo->colormap_size / ((*red) * (*blue)));
}
(*red)--;
icbrt_loopcount++;
#endif
delta = (guess - a/(guess*guess))/3;
-#ifdef DEBUG
+#if defined(DEBUG) && defined(_X_ROOT_STATS)
printf("pass %d: guess=%d, delta=%d\n", icbrt_loopcount, guess, delta);
#endif
guess -= delta;
-/*
+/*
Copyright 1989, 1998 The Open Group
*
* All colormaps are created with read only allocations, with the exception
* of read only allocations of colors in the default map or otherwise
- * which fail to return the expected pixel value, and these are individually
+ * which fail to return the expected pixel value, and these are individually
* defined as read/write allocations. This is done so that all the cells
* defined in the default map are contiguous, for use in image processing.
* This typically happens with White and Black in the default map.
* the map of the static visual matches the definition given in the
* standard colormap structure.
*/
-
+
Status
XmuCreateColormap(Display *dpy, XStandardColormap *colormap)
/* dpy - specifies the connection under which the map is created
XVisualInfo *vpointer; /* for freeing the entire list */
long vinfo_mask; /* specifies the visual mask value */
int n; /* number of matching visuals */
- int status;
+ int status;
vinfo_template.visualid = colormap->visualid;
vinfo_mask = VisualIDMask;
if ((vinfo = XGetVisualInfo(dpy, vinfo_mask, &vinfo_template, &n)) == NULL)
return 0;
- /* A visual id may be valid on multiple screens. Also, there may
- * be multiple visuals with identical visual ids at different depths.
+ /* A visual id may be valid on multiple screens. Also, there may
+ * be multiple visuals with identical visual ids at different depths.
* If the colormap is the Default Colormap, use the Default Visual.
* Otherwise, arbitrarily, use the deepest visual.
*/
status = TRUEMATCH(red_mult, red_max, red_mask) &&
TRUEMATCH(green_mult, green_max, green_mask) &&
TRUEMATCH(blue_mult, blue_max, blue_mask);
- else
+ else
status = readonly_map(dpy, vinfo, colormap);
-
+
XFree((char *) vpointer);
return status;
}
unsigned long *pixels; /* array of colormap pixels */
unsigned long delta;
-
+
/* Determine ncolors, the number of colors to be defined.
* Insure that 1 < ncolors <= the colormap size.
*/
if (ncolors <= 1 || (int) ncolors > vinfo->colormap_size) return 0;
/* Allocate Read/Write as much of the colormap as we can possibly get.
- * Then insure that the pixels we were allocated are given in
+ * Then insure that the pixels we were allocated are given in
* monotonically increasing order, using a quicksort. Next, insure
* that our allocation includes a subset of contiguous pixels at least
- * as long as the number of colors to be defined. Now we know that
+ * as long as the number of colors to be defined. Now we know that
* these conditions are met:
* 1) There are no free cells in the colormap.
- * 2) We have a contiguous sequence of pixels, monotonically
+ * 2) We have a contiguous sequence of pixels, monotonically
* increasing, of length >= the number of colors requested.
*
- * One cell at a time, we will free, compute the next color value,
+ * One cell at a time, we will free, compute the next color value,
* then allocate read only. This takes a long time.
* This is done to insure that cells are allocated read only in the
* contiguous order which we prefer. If the server has a choice of
*/
if (first_index)
- XFreeColors(dpy, colormap->colormap, pixels, first_index,
+ XFreeColors(dpy, colormap->colormap, pixels, first_index,
(unsigned long) 0);
if (remainder)
XFreeColors(dpy, colormap->colormap,
register int p;
/* first try to allocate the entire colormap */
- if (XAllocColorCells(dpy, cmap, 1, (unsigned long *) NULL,
+ if (XAllocColorCells(dpy, cmap, 1, (unsigned long *) NULL,
(unsigned) 0, pixels, (unsigned) m))
return m;
}
return 0;
}
-
+
/****************************************************************************/
static Status
* If the read only allocation is granted, but gives us a cell which
* is not the one that we just freed, it is probably the case that
* we are trying allocate White or Black or some other color which
- * already has a read-only allocation in the map. So we try to
+ * already has a read-only allocation in the map. So we try to
* allocate the previously freed cell with a read/write allocation,
* because we want contiguous cells for image processing algorithms.
*/
-
+
pixel = color->pixel;
request.red = color->red;
request.green = color->green;
request.blue = color->blue;
XFreeColors(dpy, cmap, &pixel, 1, (unsigned long) 0);
- if (! XAllocColor(dpy, cmap, color)
+ if (! XAllocColor(dpy, cmap, color)
|| (color->pixel != pixel &&
- (!RWcell(dpy, cmap, color, &request, &pixel))))
+ (!RWcell(dpy, cmap, color, &request, &pixel))))
{
free_cells(dpy, cmap, pixels, npixels, (int)p);
return 0;
int i, last_pixel;
XColor color;
- last_pixel = (colormap->red_max + 1) * (colormap->green_max + 1) *
+ last_pixel = (colormap->red_max + 1) * (colormap->green_max + 1) *
(colormap->blue_max + 1) + colormap->base_pixel - 1;
for(i=colormap->base_pixel; i <= last_pixel; i++) {
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
register _Xconst struct _CursorName *table;
register int i;
char tmp[40];
-
+
if (strlen (name) >= sizeof tmp) return -1;
XmuCopyISOLatin1Lowered (tmp, name);
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
*/
-/*
+/*
* Author: Jim Fulton, MIT X Consortium
*/
dq = XmuDQCreate (_CloseDisplay, _FreeCCDQ, NULL);
if (!dq) return NULL;
}
-
+
/*
* See if the display is already there
*/
/*
-
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
#ifdef OS_NAME
return XtNewString(OS_NAME);
#else
-#if defined(X_OS_FILE) || defined(MOTD_FILE)
+#if defined(X_OS_FILE) || defined(MOTD_FILE)
FILE *f = NULL;
#endif
#include <X11/Xmu/SysUtil.h>
/*
- * XmuPrintDefaultErrorMessage - print a nice error that looks like the usual
+ * XmuPrintDefaultErrorMessage - print a nice error that looks like the usual
* message. Returns 1 if the caller should consider exitting else 0.
*/
int
char buffer[BUFSIZ];
char mesg[BUFSIZ];
char number[32];
- char *mtype = "XlibMessage";
+ _Xconst char *mtype = "XlibMessage";
register _XExtension *ext = (_XExtension *)NULL;
_XExtension *bext = (_XExtension *)NULL;
XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
(void) fprintf(fp, "%s: %s\n ", mesg, buffer);
- XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
+ XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
mesg, BUFSIZ);
(void) fprintf(fp, mesg, event->request_code);
if (event->request_code < 128) {
/* kludge, try to find the extension that caused it */
buffer[0] = '\0';
for (ext = dpy->ext_procs; ext; ext = ext->next) {
- if (ext->error_string)
+ if (ext->error_string)
(*ext->error_string)(dpy, event->error_code, &ext->codes,
buffer, BUFSIZ);
if (buffer[0]) {
ext->codes.first_error < event->error_code &&
(!bext || ext->codes.first_error > bext->codes.first_error))
bext = ext;
- }
+ }
if (bext)
XmuSnprintf(buffer, sizeof(buffer), "%s.%d", bext->name,
event->error_code - bext->codes.first_error);
(void) fprintf(fp, mesg, event->resourceid);
fputs("\n ", fp);
}
- XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
+ XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
mesg, BUFSIZ);
(void) fprintf(fp, mesg, event->serial);
fputs("\n ", fp);
}
/* got a "real" X error */
return XmuPrintDefaultErrorMessage (dpy, errorp, stderr);
-}
+}
-/*
-
+/*
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
- * XmuDQDestroy - free all storage associated with this display queue,
+ * XmuDQDestroy - free all storage associated with this display queue,
* optionally invoking the close callbacks.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include <X11/Xlib.h>
+#include <X11/Xlib.h>
#include <X11/Xmu/Drawing.h>
/*
x += (width - size) >> 1;
y += (height - size) >> 1;
-/*
+/*
* Draw what will be the thin strokes.
*
- * -----
+ * -----
* / /
* / /
* / /
poly[3].x = x + d31; poly[3].y = y + size;
XFillPolygon(dpy, drawable, gcFore, poly, 4, Convex, CoordModeOrigin);
-/*
+/*
* Erase area not needed for lower thin stroke.
*
- * ------
+ * ------
* / /
* / __ /
* / / /
poly[3].x = x + d31; poly[3].y = y + size;
XFillPolygon(dpy, drawable, gcBack, poly, 4, Convex, CoordModeOrigin);
-/*
+/*
* Erase area not needed for upper thin stroke.
*
- * ------
+ * ------
* / / /
* /--/ /
* / /
poly[3].x = x + size - size/4; poly[3].y = y + size;
XFillPolygon(dpy, drawable, gcFore, poly, 4, Convex, CoordModeOrigin);
-/*
+/*
* Erase to create gap.
*
* /
#include <stdlib.h>
#include <string.h>
-#define _XEditResPutBool _XEditResPut8
+#define _XEditResPutBool _XEditResPut8
#define _XEditResPutResourceType _XEditResPut8
/*
* Types
*/
typedef enum {
- BlockNone,
- BlockSetValues,
- BlockAll
+ BlockNone,
+ BlockSetValues,
+ BlockAll
} EditresBlock;
typedef struct _SetValuesEvent {
- EditresCommand type; /* first field must be type */
- WidgetInfo *widgets;
- unsigned short num_entries; /* number of set values requests */
- char *name;
- char *res_type;
+ EditresCommand type; /* first field must be type */
+ WidgetInfo *widgets;
+ unsigned short num_entries; /* number of set values requests */
+ char *name;
+ char *res_type;
XtPointer value;
unsigned short value_len;
} SetValuesEvent;
typedef struct _SVErrorInfo {
- SetValuesEvent *event;
- ProtocolStream *stream;
- unsigned short *count;
- WidgetInfo *entry;
+ SetValuesEvent *event;
+ ProtocolStream *stream;
+ unsigned short *count;
+ WidgetInfo *entry;
} SVErrorInfo;
typedef struct _GetValuesEvent {
- EditresCommand type; /* first field must be type */
- WidgetInfo *widgets;
- unsigned short num_entries; /* number of get values requests */
- char *name;
+ EditresCommand type; /* first field must be type */
+ WidgetInfo *widgets;
+ unsigned short num_entries; /* number of get values requests */
+ char *name;
} GetValuesEvent;
typedef struct _FindChildEvent {
- EditresCommand type; /* first field must be type */
- WidgetInfo *widgets;
+ EditresCommand type; /* first field must be type */
+ WidgetInfo *widgets;
short x, y;
} FindChildEvent;
typedef struct _GenericGetEvent {
- EditresCommand type; /* first field must be type */
- WidgetInfo *widgets;
- unsigned short num_entries; /* number of set values requests */
+ EditresCommand type; /* first field must be type */
+ WidgetInfo *widgets;
+ unsigned short num_entries; /* number of set values requests */
} GenericGetEvent, GetResEvent, GetGeomEvent;
/*
* Common to all events
*/
typedef struct _AnyEvent {
- EditresCommand type; /* first field must be type */
- WidgetInfo *widgets;
+ EditresCommand type; /* first field must be type */
+ WidgetInfo *widgets;
} AnyEvent;
/*
EditresBlock block;
SVErrorInfo error_info;
ProtocolStream stream;
- ProtocolStream *command_stream; /* command stream */
+ ProtocolStream *command_stream; /* command stream */
#if defined(LONG64) || defined(WORD64)
unsigned long base_address;
#endif
XrmValue*, XrmValue*, XtPointer*);
static EditresEvent *BuildEvent(Widget, Atom, XtPointer, ResIdent,
unsigned long);
-static char *DoFindChild(Widget, EditresEvent*, ProtocolStream*);
-static char *DoGetGeometry(Widget, EditresEvent*, ProtocolStream*);
-static char *DoGetResources(Widget, EditresEvent*, ProtocolStream*);
-static char *DoSetValues(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DoFindChild(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DoGetGeometry(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DoGetResources(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DoSetValues(Widget, EditresEvent*, ProtocolStream*);
static void DumpChildren(Widget, ProtocolStream*, unsigned short*);
-static char *DumpValues(Widget, EditresEvent*, ProtocolStream*);
-static char *DumpWidgets(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DumpValues(Widget, EditresEvent*, ProtocolStream*);
+static _Xconst char *DumpWidgets(Widget, EditresEvent*, ProtocolStream*);
static void ExecuteCommand(Widget, Atom, ResIdent, EditresEvent*);
static void ExecuteGetGeometry(Widget, ProtocolStream*);
static void ExecuteGetResources(Widget w, ProtocolStream *stream);
static int qcmp_widget_list(register _Xconst void*, register _Xconst void*);
static void SendCommand(Widget, Atom, ResIdent, EditResError,
ProtocolStream*);
-static void SendFailure(Widget, Atom, ResIdent, char*);
-static char *VerifyWidget(Widget, WidgetInfo*);
+static void SendFailure(Widget, Atom, ResIdent, _Xconst char*);
+static _Xconst char *VerifyWidget(Widget, WidgetInfo*);
/*
* External
{
Time time;
ResIdent ident;
- static Boolean first_time = False;
+ static Boolean first_time = False;
static Atom res_editor, res_comm;
- Display *dpy;
+ Display *dpy;
- if (event->type == ClientMessage)
+ if (event->type == ClientMessage)
{
- XClientMessageEvent * c_event = (XClientMessageEvent *)event;
+ XClientMessageEvent * c_event = (XClientMessageEvent *)event;
dpy = XtDisplay(w);
- if (!first_time)
+ if (!first_time)
{
Atom atoms[4];
- static char *names[] = {
+ static _Xconst char *names[] = {
EDITRES_NAME, EDITRES_COMMAND_ATOM,
- EDITRES_PROTOCOL_ATOM, EDITRES_CLIENT_VALUE
- };
-
- first_time = True;
- XInternAtoms(dpy, names, 4, False, atoms);
+ EDITRES_PROTOCOL_ATOM, EDITRES_CLIENT_VALUE
+ };
+
+ first_time = True;
+ XInternAtoms(dpy, (char **) names, 4, False, atoms);
res_editor = atoms[0];
res_editor_command = atoms[1];
res_editor_protocol = atoms[2];
LoadResources(w);
}
- if ((c_event->message_type != res_editor)
- || (c_event->format != EDITRES_SEND_EVENT_FORMAT))
+ if ((c_event->message_type != res_editor)
+ || (c_event->format != EDITRES_SEND_EVENT_FORMAT))
return;
time = c_event->data.l[0];
res_comm = c_event->data.l[1];
ident = (ResIdent) c_event->data.l[2];
- if (c_event->data.l[3] != CURRENT_PROTOCOL_VERSION)
+ if (c_event->data.l[3] != CURRENT_PROTOCOL_VERSION)
{
_XEditResResetStream(&globals.stream);
- _XEditResPut8(&globals.stream, (unsigned int) CURRENT_PROTOCOL_VERSION);
+ _XEditResPut8(&globals.stream,
+ (unsigned int) CURRENT_PROTOCOL_VERSION);
SendCommand(w, res_comm, ident, ProtocolMismatch, &globals.stream);
return;
}
XtGetSelectionValue(w, res_comm, res_editor_command,
- GetCommand, (XtPointer)(long)ident, time);
+ GetCommand, (XtPointer)(long)ident, time);
}
}
BuildEvent(Widget w, Atom sel, XtPointer data, ResIdent ident,
unsigned long length)
{
- EditresEvent *event;
+ EditresEvent *event;
ProtocolStream alloc_stream, *stream;
unsigned char temp;
register unsigned int i;
- stream = &alloc_stream;
- stream->current = stream->top = (unsigned char *)data;
- stream->size = HEADER_SIZE; /* size of header */
+ stream = &alloc_stream;
+ stream->current = stream->top = (unsigned char *)data;
+ stream->size = HEADER_SIZE; /* size of header */
/*
- * Retrieve the Header
+ * Retrieve the Header
*/
- if (length < HEADER_SIZE)
+ if (length < HEADER_SIZE)
{
- SendFailure(w, sel, ident, ERROR_MESSAGE);
- return (NULL);
+ SendFailure(w, sel, ident, ERROR_MESSAGE);
+ return (NULL);
}
- (void)_XEditResGet8(stream, &temp);
- if (temp != ident) /* Id's don't match, ignore request */
- return (NULL);
+ (void)_XEditResGet8(stream, &temp);
+ if (temp != ident) /* Id's don't match, ignore request */
+ return (NULL);
+
+ event = (EditresEvent *)XtCalloc(sizeof(EditresEvent), 1);
- event = (EditresEvent *)XtCalloc(sizeof(EditresEvent), 1);
+ (void)_XEditResGet8(stream, &temp);
+ event->any_event.type = (EditresCommand)temp;
+ (void)_XEditResGet32(stream, &stream->size);
+ stream->top = stream->current; /* reset stream to top of value */
- (void)_XEditResGet8(stream, &temp);
- event->any_event.type = (EditresCommand)temp;
- (void)_XEditResGet32(stream, &stream->size);
- stream->top = stream->current; /* reset stream to top of value */
-
/*
- * Now retrieve the data segment
+ * Now retrieve the data segment
*/
- switch(event->any_event.type)
+ switch(event->any_event.type)
{
case SendWidgetTree:
break; /* no additional info */
case SetValues:
{
- SetValuesEvent *sv_event = (SetValuesEvent *)event;
-
- if (!(_XEditResGetString8(stream, &sv_event->name)
- && _XEditResGetString8(stream, &sv_event->res_type)))
+ SetValuesEvent *sv_event = (SetValuesEvent *)event;
+
+ if (!(_XEditResGetString8(stream, &sv_event->name)
+ && _XEditResGetString8(stream, &sv_event->res_type)))
goto done;
/*
* Since we need the value length, we have to pull the
- * value out by hand
+ * value out by hand
*/
- if (!_XEditResGet16(stream, &sv_event->value_len))
+ if (!_XEditResGet16(stream, &sv_event->value_len))
goto done;
- sv_event->value = XtMalloc(sizeof(char) * (sv_event->value_len + 1));
+ sv_event->value = XtMalloc(sizeof(char) * (sv_event->value_len + 1));
- for (i = 0; i < sv_event->value_len; i++)
- if (!_XEditResGet8(stream, (unsigned char *)sv_event->value + i))
+ for (i = 0; i < sv_event->value_len; i++)
+ if (!_XEditResGet8(stream, (unsigned char *)sv_event->value + i))
goto done;
- ((char*)sv_event->value)[i] = '\0';
+ ((char*)sv_event->value)[i] = '\0';
- if (!_XEditResGet16(stream, &sv_event->num_entries))
+ if (!_XEditResGet16(stream, &sv_event->num_entries))
goto done;
sv_event->widgets = (WidgetInfo *)
XtCalloc(sizeof(WidgetInfo), sv_event->num_entries);
-
- for (i = 0; i < sv_event->num_entries; i++)
+
+ for (i = 0; i < sv_event->num_entries; i++)
if (!_XEditResGetWidgetInfo(stream, sv_event->widgets + i))
goto done;
- }
+ }
break;
case FindChild:
- {
- FindChildEvent *find_event = (FindChildEvent *)event;
-
- find_event->widgets = (WidgetInfo *)XtCalloc(sizeof(WidgetInfo), 1);
+ {
+ FindChildEvent *find_event = (FindChildEvent *)event;
+
+ find_event->widgets = (WidgetInfo *)XtCalloc(sizeof(WidgetInfo), 1);
- if (!(_XEditResGetWidgetInfo(stream, find_event->widgets)
- && _XEditResGetSigned16(stream, &find_event->x)
- && _XEditResGetSigned16(stream, &find_event->y)))
+ if (!(_XEditResGetWidgetInfo(stream, find_event->widgets)
+ && _XEditResGetSigned16(stream, &find_event->x)
+ && _XEditResGetSigned16(stream, &find_event->y)))
goto done;
- }
+ }
break;
case GetGeometry:
case GetResources:
- {
- GenericGetEvent *get_event = (GenericGetEvent *)event;
-
- if (!_XEditResGet16(stream, &get_event->num_entries))
+ {
+ GenericGetEvent *get_event = (GenericGetEvent *)event;
+
+ if (!_XEditResGet16(stream, &get_event->num_entries))
goto done;
-
+
get_event->widgets = (WidgetInfo *)
XtCalloc(sizeof(WidgetInfo), get_event->num_entries);
- for (i = 0; i < get_event->num_entries; i++)
- if (!_XEditResGetWidgetInfo(stream, get_event->widgets + i))
+ for (i = 0; i < get_event->num_entries; i++)
+ if (!_XEditResGetWidgetInfo(stream, get_event->widgets + i))
goto done;
- }
+ }
break;
- case GetValues:
- {
- GetValuesEvent *gv_event = (GetValuesEvent *)event;
+ case GetValues:
+ {
+ GetValuesEvent *gv_event = (GetValuesEvent *)event;
- _XEditResGetString8(stream, &gv_event->name);
- _XEditResGet16(stream, &gv_event->num_entries);
+ _XEditResGetString8(stream, &gv_event->name);
+ _XEditResGet16(stream, &gv_event->num_entries);
gv_event->widgets = (WidgetInfo *)
XtCalloc(sizeof(WidgetInfo), gv_event->num_entries);
- _XEditResGetWidgetInfo(stream, gv_event->widgets);
- }
- break;
+ _XEditResGetWidgetInfo(stream, gv_event->widgets);
+ }
+ break;
default:
{
char buf[BUFSIZ];
-
+
XmuSnprintf(buf, sizeof(buf),
- "Unknown Protocol request %d.", event->any_event.type);
+ "Unknown Protocol request %d.", event->any_event.type);
SendFailure(w, sel, ident, buf);
- FreeEvent(event);
- return (NULL);
+ FreeEvent(event);
+ return (NULL);
}
}
- return (event);
+ return (event);
- done:
+ done:
SendFailure(w, sel, ident, ERROR_MESSAGE);
FreeEvent(event);
- return (NULL);
-}
+ return (NULL);
+}
/*
* Function:
FreeEvent(EditresEvent *event)
{
if (event->any_event.widgets != NULL)
- {
+ {
XtFree((char *)event->any_event.widgets->ids);
XtFree((char *)event->any_event.widgets);
}
if (event->any_event.type == SetValues)
- {
+ {
XtFree(event->set_values_event.name);
XtFree(event->set_values_event.res_type);
}
-
+
XtFree((char *)event);
}
GetCommand(Widget w, XtPointer data, Atom *selection, Atom *type,
XtPointer value, unsigned long *length, int *format)
{
- ResIdent ident = (ResIdent)(long)data;
- EditresEvent *event;
+ ResIdent ident = (ResIdent)(long)data;
+ EditresEvent *event;
- if (*type != res_editor_protocol || *format != EDITRES_FORMAT)
+ if (*type != res_editor_protocol || *format != EDITRES_FORMAT)
return;
- if ((event = BuildEvent(w, *selection, value, ident, *length)) != NULL)
+ if ((event = BuildEvent(w, *selection, value, ident, *length)) != NULL)
{
ExecuteCommand(w, *selection, ident, event);
FreeEvent(event);
static void
ExecuteCommand(Widget w, Atom sel, ResIdent ident, EditresEvent *event)
{
- char *(*func)(Widget, EditresEvent*, ProtocolStream*);
- char *str;
+ _Xconst char *(*func)(Widget, EditresEvent*, ProtocolStream*);
+ _Xconst char *str;
- if (globals.block == BlockAll)
+ if (globals.block == BlockAll)
{
- SendFailure(w, sel, ident,
+ SendFailure(w, sel, ident,
"This client has blocked all Editres commands.");
return;
}
- else if (globals.block == BlockSetValues
- && event->any_event.type == SetValues)
+ else if (globals.block == BlockSetValues
+ && event->any_event.type == SetValues)
{
- SendFailure(w, sel, ident,
+ SendFailure(w, sel, ident,
"This client has blocked all SetValues requests.");
return;
}
- switch(event->any_event.type)
+ switch(event->any_event.type)
{
case SendWidgetTree:
#if defined(LONG64) || defined(WORD64)
case GetValues:
func = DumpValues;
break;
- default:
+ default:
{
char buf[BUFSIZ];
_XEditResResetStream(&globals.stream);
if ((str = (*func)(w, event, &globals.stream)) == NULL)
SendCommand(w, sel, ident, PartialSuccess, &globals.stream);
- else
+ else
SendFailure(w, sel, ident, str);
}
int *format_ret)
{
/*
- * I assume the intrinsics give me the correct selection back
+ * I assume the intrinsics give me the correct selection back
*/
if ((*target != client_value))
- return (False);
+ return (False);
*type_ret = res_editor_protocol;
- *value_ret = (XtPointer)globals.command_stream->real_top;
+ *value_ret = (XtPointer)globals.command_stream->real_top;
*length_ret = globals.command_stream->size + HEADER_SIZE;
*format_ret = EDITRES_FORMAT;
* Sends a failure message
*/
static void
-SendFailure(Widget w, Atom sel, ResIdent ident, char *str)
+SendFailure(Widget w, Atom sel, ResIdent ident, _Xconst char *str)
{
_XEditResResetStream(&globals.stream);
_XEditResPutString8(&globals.stream, str);
{
long old_alloc, old_size;
unsigned char *old_current;
-
+
/*
* We have cleverly keep enough space at the top of the header
* for the return protocol stream, so all we have to do is
* fill in the space
*/
- /*
+ /*
* Fool the insert routines into putting the header in the right
* place while being damn sure not to realloc (that would be very bad.)
*/
old_size = stream->size;
stream->current = stream->real_top;
- stream->alloc = stream->size + (2 * HEADER_SIZE);
-
+ stream->alloc = stream->size + (2 * HEADER_SIZE);
+
_XEditResPut8(stream, ident);
_XEditResPut8(stream, (unsigned char)error);
_XEditResPut32(stream, old_size);
stream->alloc = old_alloc;
stream->current = old_current;
stream->size = old_size;
-
- return ((XtPointer)stream->real_top);
-}
+
+ return ((XtPointer)stream->real_top);
+}
/*
* Function:
ProtocolStream *stream)
{
BuildReturnPacket(ident, error, stream);
- globals.command_stream = stream;
+ globals.command_stream = stream;
- /*
- * I REALLY want to own the selection. Since this was not triggered
- * by a user action, and I am the only one using this atom it is safe to
- * use CurrentTime
- */
- XtOwnSelection(w, sel, CurrentTime, ConvertReturnCommand, NULL, CommandDone);
+ /*
+ * I REALLY want to own the selection. Since this was not triggered
+ * by a user action, and I am the only one using this atom it is safe to
+ * use CurrentTime
+ */
+ XtOwnSelection(w, sel, CurrentTime, ConvertReturnCommand, NULL, CommandDone);
}
/************************************************************
************************************************************/
static int
qcmp_widget_list(register _Xconst void *left, register _Xconst void *right)
-{
- return (char *)*(Widget **)left - (char *)*(Widget **)right;
+{
+ return (char *)*(Widget **)left - (char *)*(Widget **)right;
}
/*
FindChildren(Widget parent, Widget **children, Bool normal, Bool popup,
Bool extra)
{
- CompositeWidget cw = (CompositeWidget)parent;
- Cardinal i, num_children, current = 0;
- Widget *extra_widgets = NULL;
- Cardinal num_extra = 0;
-
+ CompositeWidget cw = (CompositeWidget)parent;
+ Cardinal i, num_children, current = 0;
+ Widget *extra_widgets = NULL;
+ Cardinal num_extra = 0;
+
num_children = 0;
if (XtIsWidget(parent) && popup)
num_children += parent->core.num_popups;
-
- if (XtIsComposite(parent) && normal)
- num_children += cw->composite.num_children;
- if (XtIsWidget(parent) && extra)
+ if (XtIsComposite(parent) && normal)
+ num_children += cw->composite.num_children;
+
+ if (XtIsWidget(parent) && extra)
{
- XtResourceList norm_list, cons_list;
- Cardinal num_norm, num_cons;
- Arg args[1];
- Widget widget;
+ XtResourceList norm_list, cons_list;
+ Cardinal num_norm, num_cons;
+ Arg args[1];
+ Widget widget;
- XtGetResourceList(XtClass(parent), &norm_list, &num_norm);
+ XtGetResourceList(XtClass(parent), &norm_list, &num_norm);
- if (XtParent(parent) != NULL)
- XtGetConstraintResourceList(XtClass(XtParent(parent)),
- &cons_list, &num_cons);
- else
- num_cons = 0;
+ if (XtParent(parent) != NULL)
+ XtGetConstraintResourceList(XtClass(XtParent(parent)),
+ &cons_list, &num_cons);
+ else
+ num_cons = 0;
- extra_widgets = (Widget *)XtMalloc(sizeof(Widget));
- for (i = 0; i < num_norm; i++)
- if (strcmp(norm_list[i].resource_type, XtRWidget) == 0)
- {
- widget = NULL;
- XtSetArg(args[0], norm_list[i].resource_name, &widget);
- XtGetValues(parent, args, 1);
- if (widget && XtParent(widget) == parent)
- {
- ++num_extra;
- extra_widgets = (Widget *)
- XtRealloc((char *)extra_widgets, num_extra * sizeof(Widget));
- extra_widgets[num_extra - 1] = widget;
- }
- }
- for (i = 0; i < num_cons; i++)
- if (strcmp(cons_list[i].resource_type, XtRWidget) == 0)
- {
- widget = NULL;
- XtSetArg(args[0], cons_list[i].resource_name, &widget);
- XtGetValues(parent, args, 1);
- if (widget && XtParent(widget) == parent)
- {
- ++num_extra;
- extra_widgets = (Widget *)
- XtRealloc((char *)extra_widgets, num_extra * sizeof(Widget));
- extra_widgets[num_extra - 1] = widget;
- }
- }
- if (num_norm)
- XtFree((char *)norm_list);
- if (num_cons)
- XtFree((char *)cons_list);
+ extra_widgets = (Widget *)XtMalloc(sizeof(Widget));
+ for (i = 0; i < num_norm; i++)
+ if (strcmp(norm_list[i].resource_type, XtRWidget) == 0)
+ {
+ widget = NULL;
+ XtSetArg(args[0], norm_list[i].resource_name, &widget);
+ XtGetValues(parent, args, 1);
+ if (widget && XtParent(widget) == parent)
+ {
+ ++num_extra;
+ extra_widgets = (Widget *) XtRealloc(
+ (char *)extra_widgets, num_extra * sizeof(Widget));
+ extra_widgets[num_extra - 1] = widget;
+ }
+ }
+ for (i = 0; i < num_cons; i++)
+ if (strcmp(cons_list[i].resource_type, XtRWidget) == 0)
+ {
+ widget = NULL;
+ XtSetArg(args[0], cons_list[i].resource_name, &widget);
+ XtGetValues(parent, args, 1);
+ if (widget && XtParent(widget) == parent)
+ {
+ ++num_extra;
+ extra_widgets = (Widget *) XtRealloc(
+ (char *)extra_widgets, num_extra * sizeof(Widget));
+ extra_widgets[num_extra - 1] = widget;
+ }
+ }
+ if (num_norm)
+ XtFree((char *)norm_list);
+ if (num_cons)
+ XtFree((char *)cons_list);
}
- if ((num_children + num_extra) == 0)
+ if ((num_children + num_extra) == 0)
{
- *children = NULL;
- return (0);
+ *children = NULL;
+ return (0);
}
- *children = (Widget *)XtMalloc(sizeof(Widget) * (num_children + num_extra));
+ *children = (Widget *)XtMalloc(sizeof(Widget) * (num_children + num_extra));
if (XtIsComposite(parent) && normal)
- for (i = 0; i < cw->composite.num_children; i++, current++)
- (*children)[current] = cw->composite.children[i];
+ for (i = 0; i < cw->composite.num_children; i++, current++)
+ (*children)[current] = cw->composite.children[i];
if (XtIsWidget(parent) && popup)
- for (i = 0; i < parent->core.num_popups; i++, current++)
+ for (i = 0; i < parent->core.num_popups; i++, current++)
(*children)[current] = parent->core.popup_list[i];
- if (num_extra)
+ if (num_extra)
/* Check for dups */
{
- Cardinal j, old_num_extra = num_extra;
-
- qsort(extra_widgets, num_extra, sizeof(Widget), qcmp_widget_list);
- for (i = 0; i < num_extra - 1; i++)
- while (i < num_extra - 1 && extra_widgets[i] == extra_widgets[i + 1])
- {
- memmove(&extra_widgets[i], &extra_widgets[i + 1],
- (num_extra - i) * sizeof(Widget));
- --num_extra;
- }
-
- for (i = 0; i < num_children; i++)
- for (j = 0; j < num_extra; j++)
- if ((*children)[i] == extra_widgets[j])
+ Cardinal j, old_num_extra = num_extra;
+
+ qsort(extra_widgets, num_extra, sizeof(Widget), qcmp_widget_list);
+ for (i = 0; i < num_extra - 1; i++)
+ while (i < num_extra - 1 &&
+ extra_widgets[i] == extra_widgets[i + 1])
{
- if ((j + 1) < num_extra)
- memmove(&extra_widgets[j], &extra_widgets[j + 1],
- (num_extra - j) * sizeof(Widget));
- --num_extra;
+ memmove(&extra_widgets[i], &extra_widgets[i + 1],
+ (num_extra - i) * sizeof(Widget));
+ --num_extra;
}
- if (old_num_extra != num_extra)
- *children = (Widget *)XtRealloc((char *)*children, sizeof(Widget)
- * (num_children + num_extra));
-
- if (num_extra)
- memcpy(&(*children)[num_children], extra_widgets,
- sizeof(Widget) * num_extra);
+ for (i = 0; i < num_children; i++)
+ for (j = 0; j < num_extra; j++)
+ if ((*children)[i] == extra_widgets[j])
+ {
+ if ((j + 1) < num_extra)
+ memmove(&extra_widgets[j], &extra_widgets[j + 1],
+ (num_extra - j) * sizeof(Widget));
+ --num_extra;
+ }
+
+ if (old_num_extra != num_extra)
+ *children = (Widget *)XtRealloc((char *)*children, sizeof(Widget)
+ * (num_children + num_extra));
+
+ if (num_extra)
+ memcpy(&(*children)[num_children], extra_widgets,
+ sizeof(Widget) * num_extra);
}
- if (extra_widgets)
- XtFree((char *)extra_widgets);
- if (num_children + num_extra == 0)
+ if (extra_widgets)
+ XtFree((char *)extra_widgets);
+ if (num_children + num_extra == 0)
{
- XtFree((char *)*children);
- *children = NULL;
+ XtFree((char *)*children);
+ *children = NULL;
}
- return (num_children + num_extra);
+ return (num_children + num_extra);
}
-
+
/*
* Function:
* IsChild
IsChild(Widget top, Widget parent, Widget child)
{
int i, num_children;
- Widget *children;
+ Widget *children;
if (parent == NULL)
- return (top == child);
+ return (top == child);
- num_children = FindChildren(parent, &children, True, True, True);
+ num_children = FindChildren(parent, &children, True, True, True);
- for (i = 0; i < num_children; i++)
- if (children[i] == child)
- {
+ for (i = 0; i < num_children; i++)
+ if (children[i] == child)
+ {
XtFree((char *)children);
- return (True);
- }
+ return (True);
+ }
XtFree((char *)children);
- return (False);
+ return (False);
}
/*
* Description:
* Makes sure all the widgets still exist
*/
-static char *
+static _Xconst char *
VerifyWidget(Widget w, WidgetInfo *info)
{
Widget top;
register int count;
register Widget parent;
- register unsigned long *child;
+ register unsigned long *child;
- for (top = w; XtParent(top) != NULL; top = XtParent(top))
- ;
+ for (top = w; XtParent(top) != NULL; top = XtParent(top))
+ ;
parent = NULL;
child = info->ids;
count = 0;
- while (True)
+ while (True)
{
- if (!IsChild(top, parent, (Widget) *child))
- return ("This widget no longer exists in the client.");
+ if (!IsChild(top, parent, (Widget) *child))
+ return ("This widget no longer exists in the client.");
if (++count == info->num_widgets)
break;
- parent = (Widget)*child++;
+ parent = (Widget)*child++;
}
- info->real_widget = (Widget)*child;
+ info->real_widget = (Widget)*child;
- return (NULL);
+ return (NULL);
}
/************************************************************
* Returns:
* NULL
*/
-static char *
+static _Xconst char *
DoSetValues(Widget w, EditresEvent *event, ProtocolStream *stream)
{
- char *str;
+ _Xconst char *str;
register unsigned i;
unsigned short count = 0;
- SetValuesEvent *sv_event = (SetValuesEvent *)event;
-
- _XEditResPut16(stream, count); /* insert 0, will be overwritten later */
+ SetValuesEvent *sv_event = (SetValuesEvent *)event;
+
+ _XEditResPut16(stream, count); /* insert 0, will be overwritten later */
- for (i = 0; i < sv_event->num_entries; i++)
+ for (i = 0; i < sv_event->num_entries; i++)
{
- if ((str = VerifyWidget(w, &sv_event->widgets[i])) != NULL)
+ if ((str = VerifyWidget(w, &sv_event->widgets[i])) != NULL)
{
- _XEditResPutWidgetInfo(stream, &sv_event->widgets[i]);
+ _XEditResPutWidgetInfo(stream, &sv_event->widgets[i]);
_XEditResPutString8(stream, str);
count++;
}
- else
- ExecuteSetValues(sv_event->widgets[i].real_widget,
+ else
+ ExecuteSetValues(sv_event->widgets[i].real_widget,
sv_event, sv_event->widgets + i, stream, &count);
}
*(stream->top) = count >> XER_NBBY;
*(stream->top + 1) = count;
- return (NULL);
+ return (NULL);
}
/*
HandleToolkitErrors(String name, String type, String class, String msg,
String *params, Cardinal *num_params)
{
- SVErrorInfo *info = &globals.error_info;
- char buf[BUFSIZ];
+ SVErrorInfo *info = &globals.error_info;
+ char buf[BUFSIZ];
- if (streq(name, "unknownType"))
+ if (streq(name, "unknownType"))
XmuSnprintf(buf, sizeof(buf),
"The `%s' resource is not used by this widget.",
info->event->name);
- else if (streq(name, "noColormap"))
+ else if (streq(name, "noColormap"))
XmuSnprintf(buf, sizeof(buf), msg, params[0]);
else if (streq(name, "conversionFailed") || streq(name, "conversionError"))
{
"Could not convert the `%s' resource.",
info->event->name);
}
- else
+ else
XmuSnprintf(buf, sizeof(buf),
"Name: %s, Type: %s, Class: %s, Msg: %s",
name, type, class, msg);
/*
- * Insert this info into the protocol stream, and update the count
- */
+ * Insert this info into the protocol stream, and update the count
+ */
(*(info->count))++;
_XEditResPutWidgetInfo(info->stream, info->entry);
_XEditResPutString8(info->stream, buf);
ProtocolStream *stream, unsigned short *count)
{
XtErrorMsgHandler old;
- SVErrorInfo *info = &globals.error_info;
-
+ SVErrorInfo *info = &globals.error_info;
+
info->event = sv_event; /* No data can be passed to */
info->stream = stream; /* an error handler, so we */
- info->count = count; /* have to use a global */
+ info->count = count; /* have to use a global */
info->entry = entry;
old = XtAppSetWarningMsgHandler(XtWidgetToApplicationContext(w),
*/
#define TOOLKIT_TYPE ("Xt")
/*ARGSUSED*/
-static char *
+static _Xconst char *
DumpWidgets(Widget w, EditresEvent *event, ProtocolStream *stream)
{
unsigned short count = 0;
-
- /* Find Tree's root */
- for (; XtParent(w) != NULL; w = XtParent(w))
- ;
-
+
+ /* Find Tree's root */
+ for (; XtParent(w) != NULL; w = XtParent(w))
+ ;
+
/*
- * hold space for count, overwritten later
+ * hold space for count, overwritten later
*/
- _XEditResPut16(stream, (unsigned int)0);
+ _XEditResPut16(stream, (unsigned int)0);
DumpChildren(w, stream, &count);
/*
- * write out toolkit type
+ * write out toolkit type
*/
_XEditResPutString8(stream, TOOLKIT_TYPE);
/*
- * Overwrite the first 2 bytes with the real count
+ * Overwrite the first 2 bytes with the real count
*/
*(stream->top) = count >> XER_NBBY;
*(stream->top + 1) = count;
- return (NULL);
+ return (NULL);
}
/*
register WidgetClass c;
if (!XtIsTopLevelShell(w))
- return (False);
- for (c = XtClass(w); c; c = c->core_class.superclass)
- if (strcmp(c->core_class.class_name, "ApplicationShell") == 0)
- return (True);
+ return (False);
+ for (c = XtClass(w); c; c = c->core_class.superclass)
+ if (strcmp(c->core_class.class_name, "ApplicationShell") == 0)
+ return (True);
- return (False);
+ return (False);
}
static void
int i, num_children;
Widget *children;
unsigned long window;
- char *c_class;
+ char *c_class;
(*count)++;
-
- InsertWidget(stream, w); /* Insert the widget into the stream */
+
+ InsertWidget(stream, w); /* Insert the widget into the stream */
_XEditResPutString8(stream, XtName(w)); /* Insert name */
if (isApplicationShell(w))
- c_class = ((ApplicationShellWidget)w)->application.class;
+ c_class = ((ApplicationShellWidget)w)->application.class;
else
- c_class = XtClass(w)->core_class.class_name;
+ c_class = XtClass(w)->core_class.class_name;
- _XEditResPutString8(stream, c_class); /* Insert class */
+ _XEditResPutString8(stream, c_class); /* Insert class */
- if (XtIsWidget(w))
- if (XtIsRealized(w))
+ if (XtIsWidget(w))
+ if (XtIsRealized(w))
window = XtWindow(w);
else
window = EDITRES_IS_UNREALIZED;
- else
- window = EDITRES_IS_OBJECT;
+ else
+ window = EDITRES_IS_OBJECT;
- _XEditResPut32(stream, window); /* Insert window id */
+ _XEditResPut32(stream, window); /* Insert window id */
/*
- * Find children and recurse
+ * Find children and recurse
*/
- num_children = FindChildren(w, &children, True, True, True);
- for (i = 0; i < num_children; i++)
+ num_children = FindChildren(w, &children, True, True, True);
+ for (i = 0; i < num_children; i++)
DumpChildren(children[i], stream, count);
XtFree((char *)children);
* Returns:
* NULL
*/
-static char *
+static _Xconst char *
DoGetGeometry(Widget w, EditresEvent *event, ProtocolStream *stream)
{
unsigned i;
- char *str;
- GetGeomEvent *geom_event = (GetGeomEvent *)event;
-
+ _Xconst char *str;
+ GetGeomEvent *geom_event = (GetGeomEvent *)event;
+
_XEditResPut16(stream, geom_event->num_entries);
- for (i = 0; i < geom_event->num_entries; i++)
+ for (i = 0; i < geom_event->num_entries; i++)
{
- /*
- * Send out the widget id
+ /*
+ * Send out the widget id
*/
- _XEditResPutWidgetInfo(stream, &geom_event->widgets[i]);
+ _XEditResPutWidgetInfo(stream, &geom_event->widgets[i]);
- if ((str = VerifyWidget(w, &geom_event->widgets[i])) != NULL)
+ if ((str = VerifyWidget(w, &geom_event->widgets[i])) != NULL)
{
- _XEditResPutBool(stream, True); /* an error occured */
- _XEditResPutString8(stream, str); /* set message */
+ _XEditResPutBool(stream, True); /* an error occured */
+ _XEditResPutString8(stream, str); /* set message */
}
- else
+ else
ExecuteGetGeometry(geom_event->widgets[i].real_widget, stream);
}
- return (NULL);
+ return (NULL);
}
/*
Arg args[8];
Cardinal num_args = 0;
Position x, y;
-
- if (!XtIsRectObj(w) || (XtIsWidget(w) && !XtIsRealized(w)))
+
+ if (!XtIsRectObj(w) || (XtIsWidget(w) && !XtIsRealized(w)))
{
- _XEditResPutBool(stream, False); /* no error */
+ _XEditResPutBool(stream, False); /* no error */
_XEditResPutBool(stream, False); /* not visable */
for (i = 0; i < 5; i++) /* fill in extra space with 0's */
_XEditResPut16(stream, 0);
num_args++;
XtGetValues(w, args, num_args);
- if (!(XtIsManaged(w) && mapped_when_man) && XtIsWidget(w))
+ if (!(XtIsManaged(w) && mapped_when_man) && XtIsWidget(w))
{
XWindowAttributes attrs;
-
- /*
+
+ /*
* The toolkit does not maintain mapping state, we have
- * to go to the server
+ * to go to the server
*/
- if (XGetWindowAttributes(XtDisplay(w), XtWindow(w), &attrs) != 0)
+ if (XGetWindowAttributes(XtDisplay(w), XtWindow(w), &attrs) != 0)
{
- if (attrs.map_state != IsViewable)
+ if (attrs.map_state != IsViewable)
{
- _XEditResPutBool(stream, False); /* no error */
- _XEditResPutBool(stream, False); /* not visable */
- for (i = 0; i < 5; i++) /* fill in extra space with 0's */
+ _XEditResPutBool(stream, False); /* no error */
+ _XEditResPutBool(stream, False); /* not visable */
+ for (i = 0; i < 5; i++) /* fill in extra space with 0's */
_XEditResPut16(stream, 0);
return;
}
}
- else
+ else
{
_XEditResPut8(stream, True); /* Error occured. */
_XEditResPutString8(stream, "XGetWindowAttributes failed.");
XtTranslateCoords(w, -((int) border_width), -((int) border_width), &x, &y);
- _XEditResPutBool(stream, False); /* no error */
- _XEditResPutBool(stream, True); /* Visable */
+ _XEditResPutBool(stream, False); /* no error */
+ _XEditResPutBool(stream, True); /* Visable */
_XEditResPut16(stream, x);
_XEditResPut16(stream, y);
_XEditResPut16(stream, width);
Position child_x, child_y;
Boolean mapped_when_managed;
- if (!XtIsRectObj(child)) /* we must at least be a rect obj */
+ if (!XtIsRectObj(child)) /* we must at least be a rect obj */
return (False);
num = 0;
XtSetArg(args[num], XtNy, &child_y); num++;
XtSetArg(args[num], XtNborderWidth, &border_width); num++;
XtGetValues(child, args, num);
-
+
/*
* The only way we will know of the widget is mapped is to see if
* mapped when managed is True and this is a managed child. Otherwise
- * we will have to ask the server if this window is mapped
+ * we will have to ask the server if this window is mapped
*/
- if (XtIsWidget(child) && !(mapped_when_managed && XtIsManaged(child)))
+ if (XtIsWidget(child) && !(mapped_when_managed && XtIsManaged(child)))
{
XWindowAttributes attrs;
- if (XGetWindowAttributes(XtDisplay(child), XtWindow(child), &attrs)
- && attrs.map_state != IsViewable)
+ if (XGetWindowAttributes(XtDisplay(child), XtWindow(child), &attrs)
+ && attrs.map_state != IsViewable)
return (False);
}
- return ((x >= child_x)
- && (x <= (child_x + (Position)width + 2 * (Position)border_width))
- && (y >= child_y)
- && (y <= (child_y + (Position)height + 2 * (Position)border_width)));
+ return ((x >= child_x)
+ && (x <= (child_x + (Position)width + 2 * (Position)border_width))
+ && (y >= child_y)
+ && (y <= (child_y + (Position)height + 2 * (Position)border_width)));
}
/*
* Description:
* Finds the child that actually contains the point shown.
*/
-static Widget
+static Widget
_FindChild(Widget parent, int x, int y)
{
- Widget *children;
- int i = FindChildren(parent, &children, True, False, True);
+ Widget *children;
+ int i = FindChildren(parent, &children, True, False, True);
- while (i > 0)
+ while (i > 0)
{
i--;
- if (PositionInChild(children[i], x, y))
+ if (PositionInChild(children[i], x, y))
{
Widget child = children[i];
-
+
XtFree((char *)children);
- return (_FindChild(child, x - child->core.x, y - child->core.y));
+ return (_FindChild(child, x - child->core.x, y - child->core.y));
}
}
XtFree((char *)children);
- return (parent);
+ return (parent);
}
/*
* An allocated error message if something went horribly wrong and
* no set values were performed, else NULL.
*/
-static char *
+static _Xconst char *
DoFindChild(Widget w, EditresEvent *event, ProtocolStream *stream)
{
- char *str;
+ _Xconst char *str;
Widget parent, child;
Position parent_x, parent_y;
- FindChildEvent *find_event = (FindChildEvent *)event;
-
- if ((str = VerifyWidget(w, find_event->widgets)) != NULL)
- return (str);
+ FindChildEvent *find_event = (FindChildEvent *)event;
+
+ if ((str = VerifyWidget(w, find_event->widgets)) != NULL)
+ return (str);
parent = find_event->widgets->real_widget;
XtTranslateCoords(parent, (Position) 0, (Position) 0,
&parent_x, &parent_y);
-
+
child = _FindChild(parent, find_event->x - (int) parent_x,
find_event->y - (int) parent_y);
InsertWidget(stream, child);
- return (NULL);
+ return (NULL);
}
/************************************************************
* Returns:
* NULL
*/
-static char *
+static _Xconst char *
DoGetResources(Widget w, EditresEvent *event, ProtocolStream *stream)
{
unsigned int i;
- char *str;
- GetResEvent *res_event = (GetResEvent *)event;
-
+ _Xconst char *str;
+ GetResEvent *res_event = (GetResEvent *)event;
+
_XEditResPut16(stream, res_event->num_entries); /* number of replys */
- for (i = 0; i < res_event->num_entries; i++)
+ for (i = 0; i < res_event->num_entries; i++)
{
- /*
- * Send out the widget id
+ /*
+ * Send out the widget id
*/
- _XEditResPutWidgetInfo(stream, &res_event->widgets[i]);
- if ((str = VerifyWidget(w, &res_event->widgets[i])) != NULL)
+ _XEditResPutWidgetInfo(stream, &res_event->widgets[i]);
+ if ((str = VerifyWidget(w, &res_event->widgets[i])) != NULL)
{
- _XEditResPutBool(stream, True); /* an error occured */
- _XEditResPutString8(stream, str); /* set message */
+ _XEditResPutBool(stream, True); /* an error occured */
+ _XEditResPutString8(stream, str); /* set message */
}
- else
+ else
{
- _XEditResPutBool(stream, False); /* no error occured */
- ExecuteGetResources(res_event->widgets[i].real_widget, stream);
+ _XEditResPutBool(stream, False); /* no error occured */
+ ExecuteGetResources(res_event->widgets[i].real_widget, stream);
}
}
- return (NULL);
+ return (NULL);
}
/* Function:
Cardinal num_norm, num_cons;
register Cardinal i;
- /*
- * Get Normal Resources
+ /*
+ * Get Normal Resources
*/
XtGetResourceList(XtClass(w), &norm_list, &num_norm);
- if (XtParent(w) != NULL)
- XtGetConstraintResourceList(XtClass(XtParent(w)), &cons_list,&num_cons);
+ if (XtParent(w) != NULL)
+ XtGetConstraintResourceList(XtClass(XtParent(w)), &cons_list,&num_cons);
else
num_cons = 0;
- _XEditResPut16(stream, num_norm + num_cons); /* how many resources */
-
+ _XEditResPut16(stream, num_norm + num_cons); /* how many resources */
+
/*
- * Insert all the normal resources
+ * Insert all the normal resources
*/
- for (i = 0; i < num_norm; i++)
+ for (i = 0; i < num_norm; i++)
{
_XEditResPutResourceType(stream, NormalResource);
_XEditResPutString8(stream, norm_list[i].resource_name);
_XEditResPutString8(stream, norm_list[i].resource_class);
_XEditResPutString8(stream, norm_list[i].resource_type);
}
- XtFree((char *)norm_list);
+ XtFree((char *)norm_list);
/*
- * Insert all the constraint resources
+ * Insert all the constraint resources
*/
- if (num_cons > 0)
+ if (num_cons > 0)
{
- for (i = 0; i < num_cons; i++)
+ for (i = 0; i < num_cons; i++)
{
_XEditResPutResourceType(stream, ConstraintResource);
_XEditResPutString8(stream, cons_list[i].resource_name);
_XEditResPutString8(stream, cons_list[i].resource_class);
_XEditResPutString8(stream, cons_list[i].resource_type);
}
- XtFree((char *)cons_list);
+ XtFree((char *)cons_list);
}
}
* NULL
*/
/*ARGSUSED*/
-static char *
+static _Xconst char *
DumpValues(Widget w, EditresEvent* event, ProtocolStream* stream)
{
- char *str;
- Arg warg[1];
- String res_value = NULL;
- GetValuesEvent *gv_event = (GetValuesEvent *)event;
-
- /* put the count in the stream */
- _XEditResPut16(stream, (unsigned int)1);
-
- /*
- * Get the resource of the widget asked for by the
- * resource editor and insert it into the stream
- */
- XtSetArg(warg[0], gv_event->name, &res_value);
-
- if ((str = VerifyWidget(w, &gv_event->widgets[0])) != NULL)
- _XEditResPutString8(stream, str);
- else
+ _Xconst char *str;
+ Arg warg[1];
+ _Xconst _XtString res_value = NULL;
+ GetValuesEvent *gv_event = (GetValuesEvent *)event;
+
+ /* put the count in the stream */
+ _XEditResPut16(stream, (unsigned int)1);
+
+ /*
+ * Get the resource of the widget asked for by the
+ * resource editor and insert it into the stream
+ */
+ XtSetArg(warg[0], gv_event->name, &res_value);
+
+ if ((str = VerifyWidget(w, &gv_event->widgets[0])) != NULL)
+ _XEditResPutString8(stream, str);
+ else
{
- _XEditresGetStringValues(gv_event->widgets[0].real_widget, warg, 1);
- if (!res_value)
- res_value = "NoValue";
- _XEditResPutString8(stream, res_value);
+ _XEditresGetStringValues(gv_event->widgets[0].real_widget, warg, 1);
+ if (!res_value)
+ res_value = "NoValue";
+ _XEditResPutString8(stream, res_value);
}
- return (NULL);
+ return (NULL);
}
/************************************************************
InsertWidget(ProtocolStream *stream, Widget w)
{
Widget temp;
- unsigned long *widget_list;
+ unsigned long *widget_list;
register int i, num_widgets;
- for (temp = w, i = 0; temp != NULL; temp = XtParent(temp), i++)
- ;
+ for (temp = w, i = 0; temp != NULL; temp = XtParent(temp), i++)
+ ;
num_widgets = i;
- widget_list = (unsigned long *)XtMalloc(sizeof(unsigned long) * num_widgets);
+ widget_list = (unsigned long *)XtMalloc(sizeof(unsigned long) * num_widgets);
/*
- * Put the widgets into the list
- * make sure that they are inserted in the list from parent -> child
+ * Put the widgets into the list
+ * make sure that they are inserted in the list from parent -> child
*/
- for (i--, temp = w; temp != NULL; temp = XtParent(temp), i--)
+ for (i--, temp = w; temp != NULL; temp = XtParent(temp), i--)
widget_list[i] = (unsigned long)temp;
-
- _XEditResPut16(stream, num_widgets); /* insert number of widgets */
- for (i = 0; i < num_widgets; i++) /* insert Widgets themselves */
+
+ _XEditResPut16(stream, num_widgets); /* insert number of widgets */
+ for (i = 0; i < num_widgets; i++) /* insert Widgets themselves */
_XEditResPut32(stream, widget_list[i]);
-
+
XtFree((char *)widget_list);
}
* Inserts a string into the protocol stream.
*/
void
-_XEditResPutString8(ProtocolStream *stream, char *str)
+_XEditResPutString8(ProtocolStream *stream, _Xconst char *str)
{
int i, len = strlen(str);
_XEditResPut16(stream, len);
- for (i = 0; i < len; i++, str++)
+ for (i = 0; i < len; i++, str++)
_XEditResPut8(stream, *str);
}
{
unsigned char temp;
- if (stream->size >= stream->alloc)
+ if (stream->size >= stream->alloc)
{
stream->alloc += 100;
- stream->real_top = (unsigned char *)
- XtRealloc((char *)stream->real_top, stream->alloc + HEADER_SIZE);
+ stream->real_top = (unsigned char *)
+ XtRealloc((char *)stream->real_top, stream->alloc + HEADER_SIZE);
stream->top = stream->real_top + HEADER_SIZE;
stream->current = stream->top + stream->size;
}
{
int i;
- for (i = 3; i >= 0; i--)
- _XEditResPut8(stream, (value >> (XER_NBBY * i)) & BYTE_MASK);
+ for (i = 3; i >= 0; i--)
+ _XEditResPut8(stream, (value >> (XER_NBBY * i)) & BYTE_MASK);
}
/*
unsigned int i;
_XEditResPut16(stream, info->num_widgets);
- for (i = 0; i < info->num_widgets; i++)
+ for (i = 0; i < info->num_widgets; i++)
_XEditResPut32(stream, info->ids[i]);
}
{
stream->current = stream->top;
stream->size = 0;
- if (stream->real_top == NULL)
+ if (stream->real_top == NULL)
{
- stream->real_top = (unsigned char *)
- XtRealloc((char *)stream->real_top, stream->alloc + HEADER_SIZE);
+ stream->real_top = (unsigned char *)
+ XtRealloc((char *)stream->real_top, stream->alloc + HEADER_SIZE);
stream->top = stream->real_top + HEADER_SIZE;
stream->current = stream->top + stream->size;
}
}
/*
- * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
+ * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
*
* The only modified field if the "current" field
*
Bool
_XEditResGet8(ProtocolStream *stream, unsigned char *value)
{
- if (stream->size < (unsigned long)(stream->current - stream->top))
- return (False);
+ if (stream->size < (unsigned long)(stream->current - stream->top))
+ return (False);
- *value = *((stream->current)++);
- return (True);
+ *value = *((stream->current)++);
+ return (True);
}
/*
{
unsigned char temp1, temp2;
- if (!(_XEditResGet8(stream, &temp1) && _XEditResGet8(stream, &temp2)))
- return (False);
-
- *value = ((unsigned short)temp1 << XER_NBBY) + (unsigned short)temp2;
- return (True);
+ if (!(_XEditResGet8(stream, &temp1) && _XEditResGet8(stream, &temp2)))
+ return (False);
+
+ *value = ((unsigned short)temp1 << XER_NBBY) + (unsigned short)temp2;
+ return (True);
}
/*
{
unsigned char temp1, temp2;
- if (!(_XEditResGet8(stream, &temp1) && _XEditResGet8(stream, &temp2)))
- return (False);
-
- if (temp1 & (1 << (XER_NBBY - 1))) /* If the sign bit is active */
+ if (!(_XEditResGet8(stream, &temp1) && _XEditResGet8(stream, &temp2)))
+ return (False);
+
+ if (temp1 & (1 << (XER_NBBY - 1))) /* If the sign bit is active */
{
*value = -1; /* store all 1's */
*value &= (temp1 << XER_NBBY); /* Now and in the MSB */
- *value &= temp2; /* and LSB */
+ *value &= temp2; /* and LSB */
}
- else
- *value = ((unsigned short)temp1 << XER_NBBY) + (unsigned short)temp2;
+ else
+ *value = ((unsigned short)temp1 << XER_NBBY) + (unsigned short)temp2;
- return (True);
+ return (True);
}
/*
{
unsigned short temp1, temp2;
- if (!(_XEditResGet16(stream, &temp1) && _XEditResGet16(stream, &temp2)))
- return (False);
-
- *value = ((unsigned short)temp1 << (XER_NBBY * 2)) + (unsigned short)temp2;
- return (True);
+ if (!(_XEditResGet16(stream, &temp1) && _XEditResGet16(stream, &temp2)))
+ return (False);
+
+ *value = ((unsigned short)temp1 << (XER_NBBY * 2)) + (unsigned short)temp2;
+ return (True);
}
/* Function:
unsigned short len;
register unsigned i;
- if (!_XEditResGet16(stream, &len))
- return (False);
+ if (!_XEditResGet16(stream, &len))
+ return (False);
*str = XtMalloc(sizeof(char) * (len + 1));
- for (i = 0; i < len; i++)
+ for (i = 0; i < len; i++)
{
- if (!_XEditResGet8(stream, (unsigned char *)*str + i))
+ if (!_XEditResGet8(stream, (unsigned char *)*str + i))
{
XtFree(*str);
*str = NULL;
- return (False);
+ return (False);
}
}
- (*str)[i] = '\0';
+ (*str)[i] = '\0';
- return (True);
+ return (True);
}
/*
{
unsigned int i;
- if (!_XEditResGet16(stream, &info->num_widgets))
- return (False);
+ if (!_XEditResGet16(stream, &info->num_widgets))
+ return (False);
- info->ids = (unsigned long *)XtMalloc(sizeof(long) * info->num_widgets);
+ info->ids = (unsigned long *)XtMalloc(sizeof(long) * info->num_widgets);
- for (i = 0; i < info->num_widgets; i++)
+ for (i = 0; i < info->num_widgets; i++)
{
- if (!_XEditResGet32(stream, info->ids + i))
+ if (!_XEditResGet32(stream, info->ids + i))
{
XtFree((char *)info->ids);
info->ids = NULL;
- return (False);
+ return (False);
}
#if defined(LONG64) || defined(WORD64)
info->ids[i] |= globals.base_address;
#endif
}
- return (True);
+ return (True);
}
-
+
/************************************************************
* Code for Loading the EditresBlock resource
************************************************************/
XmuNCopyISOLatin1Lowered(ptr, from_val->addr, sizeof(ptr));
- if (streq(ptr, "none"))
+ if (streq(ptr, "none"))
block = BlockNone;
- else if (streq(ptr, "setvalues"))
+ else if (streq(ptr, "setvalues"))
block = BlockSetValues;
- else if (streq(ptr, "all"))
+ else if (streq(ptr, "all"))
block = BlockAll;
- else
+ else
{
Cardinal num_params = 1;
String params[1];
return FALSE;
}
- if (to_val->addr != NULL)
+ if (to_val->addr != NULL)
{
- if (to_val->size < sizeof(EditresBlock))
+ if (to_val->size < sizeof(EditresBlock))
{
to_val->size = sizeof(EditresBlock);
return FALSE;
}
*(EditresBlock *)(to_val->addr) = block;
}
- else
- to_val->addr = (XtPointer)block;
+ else
+ to_val->addr = (XtPointer)block;
to_val->size = sizeof(EditresBlock);
return TRUE;
{
static XtResource resources[] = {
{"editresBlock", "EditresBlock", XtREditresBlock, sizeof(EditresBlock),
- XtOffsetOf(Globals, block), XtRImmediate, (XtPointer)BlockNone}
+ XtOffsetOf(Globals, block), XtRImmediate, (XtPointer)BlockNone}
};
- for (; XtParent(w) != NULL; w = XtParent(w))
- ;
+ for (; XtParent(w) != NULL; w = XtParent(w))
+ ;
XtAppSetTypeConverter(XtWidgetToApplicationContext(w),
XtRString, XtREditresBlock, CvtStringToBlock,
- NULL, 0, XtCacheAll, NULL);
+ NULL, 0, XtCacheAll, NULL);
- XtGetApplicationResources(w, (XtPointer)&globals, resources,
- XtNumber(resources), NULL, 0);
+ XtGetApplicationResources(w, (XtPointer)&globals, resources,
+ XtNumber(resources), NULL, 0);
}
/*
static void
_XEditresGetStringValues(Widget w, Arg *warg, int numargs)
{
- static char buffer[32];
- XtResourceList res_list;
- Cardinal num_res;
- XtResource *res = NULL;
- long value;
- Cardinal i;
- char *string = "";
- Arg args[1];
- XrmValue to, from;
-
- /*
- * Look for the resource
- */
- XtGetResourceList(XtClass(w), &res_list, &num_res);
- for (i = 0; i < num_res; i++)
- if (strcmp(res_list[i].resource_name, warg->name) == 0)
- {
- res = &res_list[i];
- break;
- }
+ static char buffer[32];
+ XtResourceList res_list;
+ Cardinal num_res;
+ XtResource *res = NULL;
+ long value;
+ Cardinal i;
+ char *string = "";
+ Arg args[1];
+ XrmValue to, from;
- if (res == NULL && XtParent(w) != NULL)
- {
- XtFree((char *)res_list);
- XtGetConstraintResourceList(XtClass(XtParent(w)), &res_list, &num_res);
- for (i = 0; i < num_res; i++)
+ /*
+ * Look for the resource
+ */
+ XtGetResourceList(XtClass(w), &res_list, &num_res);
+ for (i = 0; i < num_res; i++)
if (strcmp(res_list[i].resource_name, warg->name) == 0)
- {
+ {
res = &res_list[i];
break;
- }
+ }
+
+ if (res == NULL && XtParent(w) != NULL)
+ {
+ XtFree((char *)res_list);
+ XtGetConstraintResourceList(XtClass(XtParent(w)), &res_list, &num_res);
+ for (i = 0; i < num_res; i++)
+ if (strcmp(res_list[i].resource_name, warg->name) == 0)
+ {
+ res = &res_list[i];
+ break;
+ }
}
- if (res == NULL)
+ if (res == NULL)
{
- /* Couldn't find resource */
-
- XtFree((char *)res_list);
- *(XtPointer *)warg->value = NULL;
- return;
+ /* Couldn't find resource */
+
+ XtFree((char *)res_list);
+ *(XtPointer *)warg->value = NULL;
+ return;
}
- /* try to get the value in the proper size */
- switch (res->resource_size)
+ /* try to get the value in the proper size */
+ switch (res->resource_size)
{
#ifdef LONG64
- long v8;
+ long v8;
#endif
- int v4;
- short v2;
- char v1;
+ int v4;
+ short v2;
+ char v1;
case 1:
- XtSetArg(args[0], res->resource_name, &v1);
- XtGetValues(w, args, 1);
- value = (int)v1;
- break;
+ XtSetArg(args[0], res->resource_name, &v1);
+ XtGetValues(w, args, 1);
+ value = (int)v1;
+ break;
case 2:
- XtSetArg(args[0], res->resource_name, &v2);
- XtGetValues(w, args, 1);
- value = (int)v2;
- break;
+ XtSetArg(args[0], res->resource_name, &v2);
+ XtGetValues(w, args, 1);
+ value = (int)v2;
+ break;
case 4:
- XtSetArg(args[0], res->resource_name, &v4);
- XtGetValues(w, args, 1);
- value = (int)v4;
- break;
+ XtSetArg(args[0], res->resource_name, &v4);
+ XtGetValues(w, args, 1);
+ value = (int)v4;
+ break;
#ifdef LONG64
case 8:
- XtSetArg(args[0], res->resource_name, &v8);
- XtGetValues(w, args, 1);
- value = (long)v8;
- break;
+ XtSetArg(args[0], res->resource_name, &v8);
+ XtGetValues(w, args, 1);
+ value = (long)v8;
+ break;
#endif
default:
- fprintf(stderr, "_XEditresGetStringValues: bad size %d\n",
- res->resource_size);
- string = "bad size";
- *(char **)(warg->value) = string;
- XtFree((char *)res_list);
- return;
+ fprintf(stderr, "_XEditresGetStringValues: bad size %d\n",
+ res->resource_size);
+ string = "bad size";
+ *(char **)(warg->value) = string;
+ XtFree((char *)res_list);
+ return;
}
- /*
- * If the resource is already String, no conversion needed
- */
- if (strcmp(XtRString, res->resource_type) == 0)
+ /*
+ * If the resource is already String, no conversion needed
+ */
+ if (strcmp(XtRString, res->resource_type) == 0)
{
- if (value == 0)
- string = "(null)";
- else
- string = (char *)value;
+ if (value == 0)
+ string = "(null)";
+ else
+ string = (char *)value;
}
- else
+ else
{
- from.size = res->resource_size;
- from.addr = (XPointer)&value;
- to.addr = NULL;
- to.size = 0;
-
- if (XtConvertAndStore(w,res->resource_type, &from, XtRString, &to))
- string = to.addr;
- else
+ from.size = res->resource_size;
+ from.addr = (XPointer)&value;
+ to.addr = NULL;
+ to.size = 0;
+
+ if (XtConvertAndStore(w,res->resource_type, &from, XtRString, &to))
+ string = to.addr;
+ else
{
- string = buffer;
- /*
- * Conversion failed, fall back to representing it as integer
- */
- switch (res->resource_size)
+ string = buffer;
+ /*
+ * Conversion failed, fall back to representing it as integer
+ */
+ switch (res->resource_size)
{
case sizeof(char):
- XmuSnprintf(buffer, sizeof(buffer), "%d", (int)(value & 0xff));
- break;
+ XmuSnprintf(buffer, sizeof(buffer), "%d", (int)(value & 0xff));
+ break;
case sizeof(short):
- XmuSnprintf(buffer, sizeof(buffer), "%d", (int)(value & 0xffff));
- break;
+ XmuSnprintf(buffer, sizeof(buffer), "%d", (int)(value & 0xffff));
+ break;
case sizeof(int):
- XmuSnprintf(buffer, sizeof(buffer), "0x%08x", (int)value);
- break;
+ XmuSnprintf(buffer, sizeof(buffer), "0x%08x", (int)value);
+ break;
#ifdef LONG64
case sizeof(long):
- XmuSnprintf(buffer, sizeof(buffer), "0x%016lx", value);
- break;
+ XmuSnprintf(buffer, sizeof(buffer), "0x%016lx", value);
+ break;
#endif
}
}
}
- if (string == NULL)
- string = "";
+ if (string == NULL)
+ string = "";
- *(char **)(warg->value) = string;
- XtFree((char *)res_list);
+ *(char **)(warg->value) = string;
+ XtFree((char *)res_list);
}
XmuRegisterExternalAgent(Widget w, XtPointer data,
XEvent *event, Boolean *cont)
{
-/*
+/*
* This is a stub. Writers of protocol libraries
* that want to add protocol to Xaw, such as RAP, will reimplement this
* procedure in their own libraries.
-/*
-
+/*
+
Copyright 1988,1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
}
stippled_pixmap = XCreatePixmapFromBitmapData (display,
- RootWindowOfScreen(screen), (char *)pixmap_bits,
+ RootWindowOfScreen(screen), (char *)pixmap_bits,
pixmap_width, pixmap_height, fore, back, depth);
/* and insert it at the head of the cache */
-/*
-
+/*
+
Copyright 1988, 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
XPointer data; /* Data to pass the function. */
XtAppContext * app_con_list; /* a null terminated list of app_contexts. */
};
-
+
/*
* Prototypes
*/
static Bool AddToAppconList(XtAppContext**, XtAppContext);
-
+
static struct InitializerList * init_list = NULL;
static Cardinal init_list_length = 0;
XmuAddInitializer(XmuInitializerProc func, XPointer data)
{
init_list_length++;
- init_list = (struct InitializerList *) XtRealloc( (char *) init_list,
- (sizeof(struct InitializerList) *
+ init_list = (struct InitializerList *) XtRealloc( (char *) init_list,
+ (sizeof(struct InitializerList) *
init_list_length) );
init_list[init_list_length - 1].function = func;
return (True);
}
-
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
Pixmap
XmuLocateBitmapFile(Screen *screen, _Xconst char *name, char *srcname,
- int srcnamelen, int *widthp, int *heightp,
+ int srcnamelen, int *widthp, int *heightp,
int *xhotp, int *yhotp)
{
- return XmuLocatePixmapFile (screen, name,
+ return XmuLocatePixmapFile (screen, name,
(unsigned long) 1, (unsigned long) 0,
(unsigned int) 1, srcname, srcnamelen,
widthp, heightp, xhotp, yhotp);
* version that reads pixmap data as well as bitmap data
*/
Pixmap
-XmuLocatePixmapFile(Screen *screen, _Xconst char *name,
- unsigned long fore, unsigned long back,
- unsigned int depth,
+XmuLocatePixmapFile(Screen *screen, _Xconst char *name,
+ unsigned long fore, unsigned long back,
+ unsigned int depth,
char *srcname, int srcnamelen,
int *widthp, int *heightp, int *xhotp, int *yhotp)
{
/* what a hack; need to initialize it */
(void) XGetDefault (dpy, "", "");
}
- if (XrmQGetResource (XrmGetDatabase(dpy), xrm_name, xrm_class,
+ if (XrmQGetResource (XrmGetDatabase(dpy), xrm_name, xrm_class,
&rep_type, &value) &&
rep_type == XrmPermStringToQuark("String")) {
- cache->string_to_bitmap.bitmapFilePath =
+ cache->string_to_bitmap.bitmapFilePath =
split_path_string (value.addr);
}
}
_XmuStringToBitmapFreeCache(register XmuCvtCache *c)
{
if (c->string_to_bitmap.bitmapFilePath) {
- if (c->string_to_bitmap.bitmapFilePath[0])
+ if (c->string_to_bitmap.bitmapFilePath[0])
free (c->string_to_bitmap.bitmapFilePath[0]);
free ((char *) (c->string_to_bitmap.bitmapFilePath));
}
-/*
-
+/*
+
Copyright 1988, 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
-/*
-
+/*
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
* To create a standard colormap if one does not currently exist, or
- * replace the currently existing standard colormap, use
+ * replace the currently existing standard colormap, use
* XmuLookupStandardColormap().
*
* Given a screen, a visual, and a property, XmuLookupStandardColormap()
* the default colormap of the screen. It will call XmuStandardColormap()
* to create the standard colormap.
*
- * If replace is true, any previous definition of the property will be
+ * If replace is true, any previous definition of the property will be
* replaced. If retain is true, the property and the colormap will be
* made permanent for the duration of the server session. However,
* pre-existing property definitions which are not replaced cannot be made
- * permanent by a call to XmuLookupStandardColormap(); a request to retain
+ * permanent by a call to XmuLookupStandardColormap(); a request to retain
* resources pertains to newly created resources.
*
- * Returns 0 on failure, non-zero on success. A request to create a
+ * Returns 0 on failure, non-zero on success. A request to create a
* standard colormap upon a visual which cannot support such a map is
* considered a failure. An example of this would be requesting any
* standard colormap property on a monochrome visual, or, requesting an
*/
{
Display *odpy; /* original display connection */
- XStandardColormap *colormap;
+ XStandardColormap *colormap;
XVisualInfo vinfo_template, *vinfo; /* visual */
long vinfo_mask;
unsigned long r_max, g_max, b_max; /* allocation */
- int count;
+ int count;
Colormap cmap; /* colormap ID */
Status status = 0;
/* Match the requested visual */
- vinfo_template.visualid = visualid;
+ vinfo_template.visualid = visualid;
vinfo_template.screen = screen;
vinfo_template.depth = depth;
vinfo_mask = VisualIDMask | VisualScreenMask | VisualDepthMask;
if (vinfo->colormap_size <= 2) {
XFree((char *) vinfo);
- return 0;
+ return 0;
}
- /* If the requested property already exists on this screen, and,
+ /* If the requested property already exists on this screen, and,
* if the replace flag has not been set to true, return success.
* lookup() will remove a pre-existing map if replace is true.
*/
!replace) {
/* Someone has defined the property since we last looked.
* Since we will not replace it, release our own resources.
- * If this is the default map, our allocations will be freed
+ * If this is the default map, our allocations will be freed
* when this connection closes.
*/
if (colormap->killid == ReleaseByFreeingColormap)
*
* If new is not NULL, new points to an XStandardColormap structure which
* describes a standard colormap of the specified property. It will be made
- * a standard colormap of the screen if none already exists, or if replace
+ * a standard colormap of the screen if none already exists, or if replace
* is true.
*/
}
/* The property exists and is RGB_DEFAULT_MAP */
-
+
for (i=0, s=stdcmaps; (i < count) && (s->visualid != visualid); i++, s++)
;
/* Found an RGB_DEFAULT_MAP property with a matching visualid */
if (replace) {
- /* Free old resources first - we may need them, particularly in
+ /* Free old resources first - we may need them, particularly in
* the default colormap of the screen. However, because of this,
- * it is possible that we will destroy the old resource and fail
+ * it is possible that we will destroy the old resource and fail
* to create a new one if XmuStandardColormap() fails.
*/
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
#include <X11/Xmu/SysUtil.h>
#include <stdio.h>
-
-#ifndef HAS_SNPRINTF
-#undef SCOPE
-#define SCOPE static
-#include "snprintf.c"
-#endif
-
#include <stdarg.h>
/*
lintlib_DATA = $(LINTLIB) $(LINTLIBUU)
$(LINTLIB): $(libXmu_la_SOURCES)
- $(LINT) -y -oXmu -x $(ALL_LINT_FLAGS) $(libXmu_la_SOURCES)
+ $(LINT) -y -oXmu -x $(ALL_LINT_FLAGS) $(libXmu_la_SOURCES)
$(LINTLIBUU): $(libXmuu_la_SOURCES)
- $(LINT) -y -oXmuu -x $(ALL_LINT_FLAGS) $(libXmuu_la_SOURCES)
+ $(LINT) -y -oXmuu -x $(ALL_LINT_FLAGS) $(libXmuu_la_SOURCES)
endif MAKE_LINT_LIB
* and return data
*
* Note that this file and ../X/XRdBitF.c look very similar.... Keep them
- * that way (but don't use common source code so that people can have one
+ * that way (but don't use common source code so that people can have one
* without the other).
*/
hexTable[' '] = -1; hexTable[','] = -1;
hexTable['}'] = -1; hexTable['\n'] = -1;
hexTable['\t'] = -1;
-
+
initialized = True;
}
int value = 0;
int gotone = 0;
int done = 0;
-
+
/* loop, accumulate hex value until find delimiter */
/* skip any initial delimiters found in read stream */
}
continue;
}
-
+
if (sscanf(line, "static short %s = {", name_and_type) == 1)
version10p = 1;
else if (sscanf(line,"static unsigned char %s = {",name_and_type) == 1)
if (strcmp("bits[]", type))
continue;
-
+
if (!ww || !hh)
RETURN (BitmapFileInvalid);
size = bytes_per_line * hh;
data = (unsigned char *) Xmalloc ((unsigned int) size);
- if (!data)
+ if (!data)
RETURN (BitmapNoMemory);
if (version10p) {
int bytes;
for (bytes=0, ptr=data; bytes<size; bytes++, ptr++) {
- if ((value = NextInt(fstream)) < 0)
+ if ((value = NextInt(fstream)) < 0)
RETURN (BitmapFileInvalid);
*ptr=value;
}
return 1;
}
-#ifndef __UNIXOS2__
+#ifndef __UNIXOS2__
/* one last place to look */
drive = getenv ("HOMEDRIVE");
if (drive) {
int
-XmuReadBitmapDataFromFile(_Xconst char *filename, unsigned int *width,
+XmuReadBitmapDataFromFile(_Xconst char *filename, unsigned int *width,
unsigned int *height, unsigned char **datap,
int *x_hot, int *y_hot)
{
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
rad = height >> 1;
XDrawLine(dpy, p, gc, rad, rad, width - rad - 1, rad);
}
- XShapeCombineMask(dpy, XtWindow(w), ShapeBounding,
+ XShapeCombineMask(dpy, XtWindow(w), ShapeBounding,
-(int)w->core.border_width, -(int)w->core.border_width,
p, ShapeSet);
if (w->core.border_width)
-/*
+/*
Copyright 1989, 1998 The Open Group
* given standard property name. Return a pointer to an XStandardColormap
* structure which describes the newly created colormap, upon success.
* Upon failure, return NULL.
- *
+ *
* XmuStandardColormap() calls XmuCreateColormap() to create the map.
*
* Resources created by this function are not made permanent; that is the
int n;
/* Match the required visual information to an actual visual */
- vinfo_template.visualid = visualid;
+ vinfo_template.visualid = visualid;
vinfo_template.screen = screen;
vinfo_template.depth = depth;
vinfo_mask = VisualIDMask | VisualScreenMask | VisualDepthMask;
stdcmap->red_max = red_max;
stdcmap->green_max = green_max;
stdcmap->blue_max = blue_max;
- if (property == XA_RGB_GRAY_MAP)
+ if (property == XA_RGB_GRAY_MAP)
stdcmap->red_mult = stdcmap->green_mult = stdcmap->blue_mult = 1;
else if (vinfo->class == TrueColor || vinfo->class == DirectColor) {
stdcmap->red_mult = lowbit(vinfo->red_mask);
XFreeColormap(dpy, stdcmap->colormap);
else if (stdcmap->killid != None)
XFreePixmap(dpy, stdcmap->killid);
-
+
XFree((char *) stdcmap);
return (XStandardColormap *) NULL;
}
if (ncolors > vinfo->colormap_size)
return 0;
}
-
+
/* Determine that the allocation and visual make sense for the property */
switch (property)
if (green_max == 0)
return 0;
break;
- case XA_RGB_BLUE_MAP:
+ case XA_RGB_BLUE_MAP:
if (blue_max == 0)
return 0;
break;
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* BitmapFilePath. If the resource is not defined, the default
* value is the build symbol BITMAPDIR.
*
- * shares lots of code with XmuConvertStringToCursor.
+ * shares lots of code with XmuConvertStringToCursor.
*
* To use, include the following in your ClassInitialize procedure:
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital not be
used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* XmuConvertStringToCursor:
*
* allows String to specify a standard cursor name (from cursorfont.h), a
- * font name and glyph index of the form "FONT fontname index [[font] index]",
+ * font name and glyph index of the form "FONT fontname index [[font] index]",
* or a bitmap file name (absolute, or relative to the global resource
* bitmapFilePath, class BitmapFilePath). If the resource is not
* defined, the default value is the build symbol BITMAPDIR.
sizeof(Screen *)}
};
- XtAddConverter(XtRString, XtRCursor, XmuCvtStringToCursor,
+ XtAddConverter(XtRString, XtRCursor, XmuCvtStringToCursor,
screenConvertArg, XtNumber(screenConvertArg));
*
*/
if (0 == strncmp(FONTSPECIFIER, name, strlen(FONTSPECIFIER))) {
char source_name[PATH_MAX], mask_name[PATH_MAX];
- int source_char, mask_char, fields;
+ int source_char, mask_char, fields = 0;
Font source_font, mask_font;
XrmValue fromString, toFont;
XrmValue cvtArg;
Boolean success;
Display *dpy = DisplayOfScreen(screen);
- char *strspec = NULL;
+ char *strspec = NULL;
+ int strspeclen;
#ifdef XMU_KLUDGE
Cardinal num;
#endif
- strspec = XtMalloc(strlen("FONT %s %d %s %d") + 21);
- sprintf(strspec, "FONT %%%lds %%d %%%lds %%d",
- (unsigned long)sizeof(source_name) - 1,
- (unsigned long)sizeof(mask_name) - 1);
- fields = sscanf(name, strspec,
- source_name, &source_char,
- mask_name, &mask_char);
- XtFree(strspec);
+ strspeclen = strlen("FONT %s %d %s %d") + 21;
+ strspec = XtMalloc(strspeclen);
+ if (strspec != NULL) {
+ snprintf(strspec, strspeclen, "FONT %%%lds %%d %%%lds %%d",
+ (unsigned long)sizeof(source_name) - 1,
+ (unsigned long)sizeof(mask_name) - 1);
+ fields = sscanf(name, strspec,
+ source_name, &source_char,
+ mask_name, &mask_char);
+ XtFree(strspec);
+ }
if (fields < 2) {
XtStringConversionWarning(name, XtRCursor);
return;
return;
}
- if ((source = XmuLocateBitmapFile (screen, name,
+ if ((source = XmuLocateBitmapFile (screen, name,
maskname, (sizeof maskname) - 4,
NULL, NULL, &xhot, &yhot)) == None) {
XtStringConversionWarning (name, XtRCursor);
len = strlen (maskname);
for (i = 0; i < 2; i++) {
strcpy (maskname + len, i == 0 ? "Mask" : "msk");
- if ((mask = XmuLocateBitmapFile (screen, maskname, NULL, 0,
+ if ((mask = XmuLocateBitmapFile (screen, maskname, NULL, 0,
NULL, NULL, NULL, NULL)) != None)
break;
}
number = 1;
XmuCvtStringToCursor(args, &number, fromVal, &ret_val);
-
+
cursor = *((Cursor *) ret_val.addr);
if (cursor == None || (fg == BlackPixelOfScreen(screen)
new_done(Cursor, cursor);
}
-
-
-/*
+/*
Copyright 1989, 1998 The Open Group
*/
static struct _namepair {
XrmQuark quark;
- char *name;
+ _Xconst char *name;
XtGravity gravity;
} names[] = {
{ NULLQUARK, XtEForget, ForgetGravity },
};
/*
- * This function is deprecated as of the addition of
+ * This function is deprecated as of the addition of
* XtCvtStringToGravity in R6
*/
void
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
-/*
-
+/*
+
Copyright 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
XSetWMNormalHints (dpy, w, hints);
return True;
}
-
-/*
+/*
Copyright 1989, 1998 The Open Group
/*
* To create all of the appropriate standard colormaps for a given visual on
* a given screen, use XmuVisualStandardColormaps.
- *
+ *
* Define all appropriate standard colormap properties for the given visual.
* If replace is true, any previous definition will be removed.
* If retain is true, new properties will be retained for the duration of
status = XmuLookupStandardColormap(dpy, screen, visualid, depth,
XA_RGB_BEST_MAP, replace, retain);
- if (!status && (vinfo->class == PseudoColor ||
+ if (!status && (vinfo->class == PseudoColor ||
vinfo->class == DirectColor)) {
XmuDeleteStandardColormap(dpy, screen, XA_RGB_DEFAULT_MAP);
XmuDeleteStandardColormap(dpy, screen, XA_RGB_GRAY_MAP);
/*
-
+
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
#define nreslist (int) (cons ? sup->nconstraints : sup->nresources)
res.resource_name = name;
- for (sup = node->superclass;
+ for (sup = node->superclass;
sup && (XtResourceList) binsearch ((char *) &res,
reslist, nreslist,
sizeof(XtResource),
*/
superclass = superclass->core_class.superclass;
}
- done:
+ done:
if (wn->superclass) {
wn->siblings = wn->superclass->children;
wn->superclass->children = wn;
-/*
+/*
Copyright 1989, 1998 The Open Group
else
priv->itembuf = (XctString)malloc(priv->buf_count);
}
- (void) memmove((char *)priv->itembuf, (char *)data->item,
+ (void) memmove((char *)priv->itembuf, (char *)data->item,
data->item_length);
data->item = priv->itembuf;
if (hasCdata) {
struct _DisplayRec* head;
};
-#if !defined(UNIXCPP) || defined(ANSICPP)
#define DeclareAtom(atom) \
extern struct _AtomRec __##atom; \
AtomPtr _##atom = &__##atom;
-#else
-#define DeclareAtom(atom) \
-extern struct _AtomRec __/**/atom; \
-AtomPtr _/**/atom = &__/**/atom;
-#endif
DeclareAtom(XA_ATOM_PAIR)
DeclareAtom(XA_CHARACTER_POSITION)