* in this Software without prior written authorization from GROUPE BULL.
*/
-Arnaud LE HORS BULL Research FRANCE -- Koala Project
+Arnaud LE HORS BULL Research FRANCE -- Koala Project
(XPM - X PixMap format version 2 & 3)
Internet: lehors@sophia.inria.fr
-Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis,
+Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis,
2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE
Voice phone: (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F
+commit acaaea96776b36c097d5413040c5ce85d3ae6cb9
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed Mar 7 20:39:55 2012 -0800
+
+ libXpm 3.5.10
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 1450186652cb9d2efe55c8da7cb64996eddd34c7
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Nov 18 23:25:16 2011 -0800
+
+ closeness_cmp: maintain constness when casting pointers
+
+ create.c: In function 'closeness_cmp':
+ create.c:224:5: warning: cast discards qualifiers from pointer target type
+ create.c:224:5: warning: cast discards qualifiers from pointer target type
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 7aa7b34491de534da56d637552ee86f94f038cc3
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Nov 18 23:22:12 2011 -0800
+
+ sxpm: make ErrorMessage take const char * arg to fix -Wwrite-strings warnings
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 4cedf181bcfe13e5d206554c51edb82cb17e7ad5
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Fri Nov 11 10:17:11 2011 -0800
+
+ Include missing headers
+
+ This fixes implicit declarations for strdup and strcasecmp.
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 933b5d1f1fe9273d1a984707687b36ec61c4c5af
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 10 21:32:15 2011 -0800
+
+ Fix gcc -Wwrite-strings warnings that don't require public API changes
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 696be14bcb4daef5280b425e297223c6ae530cb5
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 10 21:03:44 2011 -0800
+
+ Assume C89 and just use const, not local Const macro
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 29972ebbb2409bcba87637069a7ad9a958b3325d
+Author: Julien Cristau <jcristau@debian.org>
+Date: Sat Sep 24 19:18:56 2011 +0200
+
+ Link sxpm against -lX11
+
+ It calls various Xlib functions so should link with -lX11 directly.
+
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+
+commit 3ea70059805b3ebc795f797b5880b90b6b3a9235
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Sep 16 22:48:53 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 0c9e200c3975917f5d78eac67b1f4cedefd73079
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sat Mar 5 20:39:03 2011 -0500
+
+ man: add missing title header (.TH) __xorgversion__
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 0f8f24302bb0e35eaab16f16358bf9c44f9f3af1
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sat Mar 5 15:35:17 2011 -0500
+
+ config: move man pages into their own directory
+
+ As per X.Org guidelines.
+ Fix whitespace issues.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 9c622c5fc82f2a19ae41e75398fee4ff1de52a1d
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 11:43:44 2011 -0500
+
+ config: minor layout change in configure.ac
+
+ Group statements per section as per Autoconf standard layout
+ Quote statements where appropriate.
+ No functional configuration changes
+
+ 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 22a434d061af224536baee6c6110b603c5c96b2c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Oct 29 17:29:25 2010 -0700
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html lang="en">
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<TITLE>FAQ XPM</TITLE>
-</HEAD>
-
-<body>
-<h1 align="center">The XPM<br>
-Frequently Asked Questions</h1>
-<p>
-This article contains the answers to some Frequently Asked Questions about the
-XPM format and/or library. If you don't find the answer to your problem here,
-then you can mail either to lehors@sophia.inria.fr or to the mailing list
-xpm-talk@sophia.inria.fr.
-
-
-<h2>Contents</h2>
-
-<ol>
-<li><a href="#Q1">How do I convert my images to or from XPM ?</a>
-<li><a href="#Q2">Why are my XPM files said to be invalid ?</a>
-<li><a href="#Q3">Why does my program core dumps using XPM ?</a>
-<li><a href="#Q4">Why does my program core dumps using XPM with a widget ?</a>
-<li><a href="#Q5">How can I get a non rectangular icon using XPM ?</a>
-<li><a href="#Q6">What exactly triggers the creation of a mask when using XPM ?</a>
-<li><a href="#Q7">How should I use the mask ?</a>
-<li><a href="#Q8">Is there a string to pixmap converter somewhere ?</a>
-<li><a href="#Q9">How can I edit XPM icons ?</a>
-<li><a href="#Q10">Is there a collection of icons somewhere ?</a>
-<li><a href="#Q11">The documentation fails to print out. Why ?</a>
-<li><a href="#copy">Copyright</a>
-</ol>
-
-
-<h2><a name="Q1">1. How do I convert my images to or from XPM ?</a></h2>
-<p>
- Netpbm is surely the best image conversion package that I know of. It defines
- formats for color, gray and monochrome images and provides a set of filters.
- Thus a GIF image can be converted to XPM with something like:
-<p>
- $ giftoppm youricon.gif | ppmtoxpm > youricon.xpm
-<p>
- The latest release can be found at least from wuarchive.wustl.edu
- (128.252.135.4), directory /graphics/graphics/packages/NetPBM
-
-
-<h2><a name="Q2">2. Why are my XPM files said to be invalid ?</a></h2>
-<p>
- There are three official versions of the XPM format. The XPM library since
- version 3.3 can read all them but writes out only XPM 3. Also the small
- program called sxpm which is part of the XPM library package can be used to
- automatically translate XPM 1 and 2 files to XPM 3 with a command such as:
-<p>
- $ sxpm -nod yourxpm1or2file -o yourxpm3file
-<p>
- Also, the XPM format defines "None" to be the color name meaning
- "transparent", but IXI used to hack the XPM library in its early days to
- handle transparency as "#Transparent". This makes IXI format not compatible
- with the official XPM format, and so not readable neither by the official XPM
- library nor any of the programs built on top of it.
-<p>
- The only solutions are either to stick on IXI programs which can deal with
- their format or convert your files to the standard XPM format. This can be
- done simply by changing "#Transparent" to "None".
-
-
-<h2><a name="Q3">3. Why does my program core dumps using XPM ?</a></h2>
-<p>
- Be sure the XpmAttributes structure you pass by reference has a valid
- valuemask. You can give NULL instead if you don't want to use an
- XpmAttributes but if you do, you MUST initialize its valuemask component to
- some valid value, at least 0, otherwise unpredictable errors can occur.
-<p>
- So instead of doing something like:
-<pre>
- XpmAttributes attrib;
-
- XpmReadFileToPixmap(dpy, d, filename, &pixmap, &mask, &attrib);
-</pre>
-<p>
- you should do:
-<pre>
- XpmAttributes attrib;
-
- attrib.valuemask = 0;
- XpmReadFileToPixmap(dpy, d, filename, &pixmap, &mask, &attrib);
-</pre>
-
-
-<h2><a name="Q4">4. Why does my program core dumps using XPM with a widget ?</a></h2>
-<ul>
-<li>First the XPM library is Xlib level, so don't pass your widget as a
- Drawable parameter. A Drawable is either a Window or a Pixmap. The widget's
- window can do the job but:
-
-<li>Then a widget only gets a Window when realized, so passing XtWindow(widget)
- with a not yet realized widget is wrong. Either realize you widget first or
- use another window. Since the Drawable parameter is only used to specify
- the screen to which the pixmap must be created on, most of the time the
- default root window is just fine.
-</ul>
-
-
-<h2><a name="Q5">5. How can I get a non rectangular icon using XPM ?</a></h2>
-<p>
- The X Window System does not support transparent color. However there are
- several ways you can use to get the same visual effect using XPM:
-<ul>
-<li>First you can use the None color to get a shape mask and use it as
- explained below (question 7).
-
-<li>Second you can define a symbolic color name such as "mask" in the XPM
- format file, then use the color overriding mechanism to set this symbolic
- color to the color of the underlying object. Note that in this case the XPM
- library won't create a shape mask, and that if the color of the underlying
- object is changed then you'll have to create a new pixmap.
-</ul>
-
-
-<h2><a name="Q6">6. What exactly triggers the creation of a mask when using XPM ?</a></h2>
-<p>
- Basically a mask is created if "None" is used as one of the color of the
- pixmap. Be aware that this is not only true if it is used in the XPM of the
- pixmap since the colors can be overridden at load time. So a mask is created
- if the "None" color is used at load time, coming either from the XPM
- definition or the color overriding.
-
-
-<h2><a name="Q7">7. How should I use the mask ?</a></h2>
-<p>
- There are basically two ways of using the mask:
-<ul>
-<li>Use the mask as a shapemask with the X11 Nonrectangular Saphe Window
- Extension. Typically this is what should be done when the icon is used in a
- desktop.
-
-<li>Use the mask as a clipmask in the GC you pass to XCopyArea when drawing the
- pixmap. So the "transparent" pixels being not actually drawn will get the
- underlying pixels colors.
-</ul>
-
-
-<h2><a name="Q8">8. Is there a string to pixmap converter for Motif ?</a></h2>
-<p>
- Yes, Motif 2.0 or later does support XPM pixmaps as well as XBM bitmaps.
-
-
-<h2><a name="Q9">9. How can I edit XPM icons ?</a></h2>
-<p>
- As listed below several editors either commercial or not are supporting the
- XPM format. However, pixmap is the one I would recommend since it is freely
- available and, being fully dedicated to XPM, it allows to edit all the
- special things, such as the symbolic color names, which makes XPM different
- from all the other image formats. Pixmap can always be found by ftp from
- ftp.x.org (contrib) and avahi.inria.fr (pub/pixmap).
-<p>
-Last Update: 3 August 1994
-<table border=1>
-<caption>XPM Icon Editors</caption>
-<tr><th>Program<th>Infos<th>Source/Author<th>Platforms<th>SA<th>XPM<th>cost
-<tr><td>pixmap<td><ul>
- <li><a href="ftp://ftp.x.org/contrib/application/pixmap/pixmap2.6.tar.gz">ftp://ftp.x.org/contrib/application/pixmap/pixmap2.6.tar.gz</a>
- <li>requires 3.4 or higher revision of Xpm lib.
- <li>supports all XPM format features
- <li>current version doesn't work on 24-plane displays
-</ul>
-<td>Lionel Mallet<td>source<td>yes<td>3<td>NC
-
-<tr><td>pixt<td><ul>
- <li><a href="ftp://ftp.x.org/contrib/pixt.tar.Z">ftp://ftp.x.org/contrib/pixt.tar.Z</a>
- <li>doesn't work on 24-plane displays
- <li>last updated November 1991
-</ul>
-<td>J. Michael Flanery<td>source<td>yes<td>1<td>NC
-
-<tr><td>pixed<td><ul>
- <li>part of X.desktop
- <li>current version doesn't work on 24-plane displays
-</ul>
-<td>IXI<td>Many UNIX<td>no<td>3<td>N/A
-
-<tr><td>olpixmap<td><ul>
- <li>packaged with the OLIT (OpenLook) toolkit
-</ul>
-<td>USL<td>Sun, SVR4.2, UnixWare<td>no<td>1<td>N/A
-
-<tr><td>xfedor<td><ul>
- <li>only uses XLIB
- <li>doesn't work on 24-plane displays
-</ul>
-<td>Daniel Dardailler<td>source<td>yes<td>3<td>NC
-
-<tr><td>SCOpaint<td><ul>
- <li>included with the ODT package
-</ul>
-<td>SCO/Wing Eng<td>ODT<td>yes<td>2.8<td>N/A
-
-<tr><td>pme.icn<td><ul>
- <li>written in the Icon language
-</ul>
-<td>Icon Project<td>source<td>yes<td>3<td>NC
-
-<tr><td>PixEditT<td><ul>
- <li>there is currently no support for editing the colormap
-</ul>
-<td>Free Widget Foundation<td>source<td>yes<td>3<td>NC
-
-<tr><td>xscribble<td><ul>
- <li>requires the FWF, 8-bit pseudocolor
- <li><a href="ftp://ftp.cis.ufl.edu/pub/thoth">ftp://ftp.cis.ufl.edu/pub/thoth</a>
- <li>Alpha version (last updated April 1993)
-</ul>
-<td>Robert Forsman<td>source<td>yes<td>?<td>NC
-
-<tr><td>vueicon<td><ul>
- <li>included with Vue3.0
-</ul>
-<td>Hewlett-Packard<td>HP<td>yes<td>3<td>N/A
-
-<tr><td>iconedit V3<td> <td>SunSoft<td>Sparc/Sun3<td>yes<td>2<td>N/A
-
-<tr><td>Pixmap Editor<td><ul>
- <li>this is a Widget, not a complete program
-</ul>
-<td>ICS<td>?<td>yes<td>?<td>?
-
-<tr><td>ezX<td> <td>Sunrise Softwarey<td>?<td>?<td>?<td>N/A
-
-<tr><td>XPaint<td><ul>
- <li>full featured, works on all displays
- <li>current release is 2.1.1 (last update January 1994)
-</ul>
-<td>David Koblas<td>source<td>yes<td>3<td>NC
-
-<tr><td>Phoenix<td><ul>
- <li>full featured, 24-bit painting program, requires Motif.
- <li><a href="ftp://nic.funet.fi/pub/graphics/packages/phoenix">ftp://nic.funet.fi/pub/graphics/packages/phoenix</a>
- <li>Beta version (last updated September 1993)
-</ul>
-<td>ohtcolor@niksula.hut.fi<td>source<td>yes<td>3<td>NC
-
-<tr><td>pixed<td><ul>
- <li>pixed is part of the TeleUSE UIMS
- <li>More info is available from service@ignite.alsys.com
-</ul>
-<td>Alsys<td>Many UNIX<td>yes<td>3<td>N/A
-
-<tr><td>display<td><ul>
- <li><a href="ftp://ftp.x.org/contrib/application/ImageMagick/ImageMagick-3.2.tar.gz">ftp://ftp.x.org/contrib/application/ImageMagick/ImageMagick-3.2.tar.gz</a>
- <li>lots of image conversion and manipulation features
-</ul>
-<td>John Cristy<td>source<td>yes<td>3<td>NC
-</table>
-
-<p>
-SA - Stand Alone program<br>
-NC - No Charge (i.e. free); most programs are copyrighted.<br>
-XPM - XPM format supported<br>
-source - built from source code; likely works on all standard X platforms<br>
-N/A - icon editor is normally distributed with other software
-
-<p>
-Send updates, additions, corrections, etc. to <a
-href="mailto:dan@bristol.com">dan@bristol.com</a>
-
-
-<h2><a name="Q10">10. Is there a collection of icons somewhere ?</a></h2>
-<p>
- At least there is one freely available: Anthony's X Icon Library. You can
- found it on several ftp servers, such as <a href="ftp://server.berkeley.edu/pub/AIcons">server.berkeley.edu/pub/AIcons</a>. It
- contains only small icons (less than about 100x100 pixels in size) which are
- stored in groups in a logical way. Color icons are stored in XPM format and
- Black & White icons in XBM.
-
-
-<h2><a name="Q11">11. The documentation fails to print out. Why ?</a></h2>
-<p>
- The PostScript documentation file is formatted for US letter paper. Frame
- Maker tries very hard to ensure that you have the right paper and punts if
- you don't. However, you can easily work around this problem by applying the
- following patch. If for some reason applying the patch fails, you can still
- do it by hand. Just locate the corresponding block in the PS file and remove
- the lines with a leading '-' character.
- By the way, this applies to any doc generated by Frame Maker. The
- corresponding block might be slightly different depending on which version of
- Frame Maker was used, but it is still easy to locate.
-
-<pre>
-*** xpm.PS Wed Sep 11 15:47:43 1996
---- xpm-A4.PS Thu Nov 21 09:27:28 1996
-***************
-*** 647,668 ****
- 0 ne /edown exch def
- /yscale exch def
- /xscale exch def
-- FMLevel1 {
-- manualfeed {setmanualfeed} if
-- /FMdicttop countdictstack 1 add def
-- /FMoptop count def
-- setpapername
-- manualfeed {true} {papersize} ifelse
-- {manualpapersize} {false} ifelse
-- {desperatepapersize} {false} ifelse
-- { (Can't select requested paper size for Frame print job!) FMFAILURE } if
-- count -1 FMoptop {pop pop} for
-- countdictstack -1 FMdicttop {pop end} for
-- }
-- {{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice}stopped
-- { (Can't select requested paper size for Frame print job!) FMFAILURE } if
-- {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
-- ifelse
-
- FMPColor {
- currentcolorscreen
---- 647,652 ----
-</pre>
-
-
-<hr>
-<h2><a name="copy">Copyright (C) 1989-95 GROUPE BULL</a></h2>
-<p>
-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:
-<p>
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-<p>
-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
-GROUPE BULL 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.
-<p>
-Except as contained in this notice, the name of GROUPE BULL shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from GROUPE BULL.
-</body>
-</html>
+++ /dev/null
-CHANGES
-COPYRIGHT
-FAQ.html
-FILES
-Imakefile
-Makefile.noX
-README.html
-README.AMIGA
-README.MSW
-namecvt
-lib
-lib/Imakefile
-lib/Makefile.noX
-lib/Makefile.AmigaGCC
-lib/Smakefile
-lib/Attrib.c
-lib/CrBufFrI.c
-lib/CrBufFrP.c
-lib/CrDatFrI.c
-lib/CrDatFrP.c
-lib/CrIFrBuf.c
-lib/CrIFrDat.c
-lib/CrIFrP.c
-lib/CrPFrBuf.c
-lib/CrPFrDat.c
-lib/CrPFrI.c
-lib/Image.c
-lib/Info.c
-lib/RdFToBuf.c
-lib/RdFToDat.c
-lib/RdFToI.c
-lib/RdFToP.c
-lib/WrFFrBuf.c
-lib/WrFFrDat.c
-lib/WrFFrI.c
-lib/WrFFrP.c
-lib/amigax.h
-lib/amigax.c
-lib/create.c
-lib/data.c
-lib/descrip.mms
-lib/hashtab.c
-lib/make.com
-lib/misc.c
-lib/parse.c
-lib/rgb.c
-lib/rgbtab.h
-lib/scan.c
-lib/simx.h
-lib/simx.c
-lib/xpm.h
-lib/XpmI.h
-lib/Xpm-def.cpp
-doc
-doc/xpm.PS
-sxpm
-sxpm/Imakefile
-sxpm/Makefile.noX
-sxpm/plaid.xpm
-sxpm/plaid_ext.xpm
-sxpm/plaid_mask.xpm
-sxpm/sxpm.c
-sxpm/sxpm.man
-cxpm
-cxpm/Imakefile
-cxpm/Makefile.noX
-cxpm/cxpm.c
-cxpm/cxpm.man
--- /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.
+
# Daniel Stone disowns all copyright on this file; no warranty is given as to its
# suitability or otherwise.
-SUBDIRS = doc include src sxpm cxpm
+SUBDIRS = doc include man src sxpm cxpm
ACLOCAL_AMFLAGS = -I m4
fixed creation of the mask in SetColor()
- patch from Jan Wielemaker <jan@swi.psy.uva.nl>
- makefiles are provided for VMS
- - given by Martin P.J. Zinser m.zinser@gsi.de
+ - given by Martin P.J. Zinser m.zinser@gsi.de
- Imakefiles reworked to get smoother builds and fixes from:
- Paul DuBois dubois@primate.wisc.edu
- Larry Schwimmer schwim@cyclone.stanford.edu
increasing this became a requisite).
BUGS CORRECTED:
- - Many warnings have been fixed - patch from Daniel Dardailler
+ - Many warnings have been fixed - patch from Daniel Dardailler
daniel@osf.org
3.2e (93/02/05)
ENHANCEMENTS:
- parsing optimized for single and double characters color
- - patch originally from Martin Brunecky
+ - patch originally from Martin Brunecky
marbru@build1.auto-trol.com
BUGS CORRECTED:
BUGS CORRECTED:
- SVR4 defines for including <string.h> instead of <strings.h>
- Jason Patterson <jasonp@fitmail.qut.edu.au>
- - attributes->extensions and attributes->nextensions fields were not
+ - attributes->extensions and attributes->nextensions fields were not
set correctly when no extensions present in file.
- Simon_Scott Cornish <cornish@ecr.mu.oz.au>
3.1 (92/02/03)
ENHANCEMENTS:
- - sxpm now have more standard options (mainly suggested by
+ - sxpm now have more standard options (mainly suggested by
Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>):
Usage: sxpm [options...]
- xpmtoppm.c has is own strstr function which is used if NEED_STRSTR
is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy).
-
+
BUGS CORRECTED:
- many bugs have been fixed, especially for ansi compilers -
Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and
word colorname. Lionel Mallet (mallet@ipvpel.unipv.it).
- parser was triggered by the "/" character inside string.
Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected.
- - sxpm maps the window only if the option "-nod" is not selected.
+ - sxpm maps the window only if the option "-nod" is not selected.
CHANGES TO THE DOC:
- the documentation presents the new API and features.
to override default colors by giving a pixel value (in such a case
symbol value must be set to NULL),
- the XpmInfo struct contains the new member 'rgb_fname' in which one
- can specify an rgb text file name while writing a pixmap with the
+ can specify an rgb text file name while writing a pixmap with the
XWritePixmapFile function (otherwise this member should be set to
NULL). This way colorname will be searched and written out if found
instead of the RGB value,
+++ /dev/null
-# ===========================================================================
-# http://www.nongnu.org/autoconf-archive/ax_define_dir.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
-#
-# DESCRIPTION
-#
-# This macro sets VARNAME to the expansion of the DIR variable, taking
-# care of fixing up ${prefix} and such.
-#
-# VARNAME is then offered as both an output variable and a C preprocessor
-# symbol.
-#
-# Example:
-#
-# AX_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
-#
-# LICENSE
-#
-# Copyright (c) 2008 Stepan Kasal <kasal@ucw.cz>
-# Copyright (c) 2008 Andreas Schwab <schwab@suse.de>
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2008 Alexandre Oliva
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved.
-
-AU_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR])
-AC_DEFUN([AX_DEFINE_DIR], [
- prefix_NONE=
- exec_prefix_NONE=
- test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
- test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
-dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
-dnl refers to ${prefix}. Thus we have to use `eval' twice.
- eval ax_define_dir="\"[$]$2\""
- eval ax_define_dir="\"$ax_define_dir\""
- AC_SUBST($1, "$ax_define_dir")
- AC_DEFINE_UNQUOTED($1, "$ax_define_dir", [$3])
- test "$prefix_NONE" && prefix=NONE
- test "$exec_prefix_NONE" && exec_prefix=NONE
-])
+++ /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 "$@"
+
# Initialize Autoconf
AC_PREREQ([2.60])
-AC_INIT([libXpm],
- [3.5.9],
- [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
- [libXpm])
+AC_INIT([libXpm], [3.5.10],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXpm])
AC_CONFIG_SRCDIR([Makefile.am])
-AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
# Obtain compiler/linker options for dependencies
PKG_CHECK_MODULES(XPM, xproto x11)
-PKG_CHECK_MODULES(SXPM, xt xext xextproto, build_sxpm=true, build_sxpm=false)
+PKG_CHECK_MODULES(SXPM, x11 xt xext xextproto, build_sxpm=true, build_sxpm=false)
AM_CONDITIONAL(BUILD_SXPM, test x$build_sxpm = xtrue)
# Internationalization & localization support
fi
if test "x$USE_GETTEXT" = "xyes" ; then
- AC_DEFINE([USE_GETTEXT], 1,
+ AC_DEFINE([USE_GETTEXT], 1,
[Define to 1 if you want to use the gettext() function.])
fi
AM_CONDITIONAL(USE_GETTEXT, test "x$USE_GETTEXT" = "xyes")
AC_CONFIG_FILES([Makefile
doc/Makefile
include/Makefile
+ man/Makefile
src/Makefile
sxpm/Makefile
cxpm/Makefile
cxpm_SOURCES = cxpm.c
-# Man page
-appmandir = $(APP_MAN_DIR)
-
-appman_PRE = cxpm.man
-appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
-
-EXTRA_DIST = $(appman_PRE)
-CLEANFILES = $(appman_DATA)
-
-SUFFIXES = .$(APP_MAN_SUFFIX) .man
-
-# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
-.man.$(APP_MAN_SUFFIX):
- $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
-
if USE_GETTEXT
noinst_DATA = cxpm.po
cxpm.po: $(cxpm_SOURCES:%=$(srcdir)/%)
$(AM_V_GEN)xgettext -c"L10N_Comments" -d cxpm -n $(cxpm_SOURCES:%=$(srcdir)/%)
-CLEANFILES += cxpm.po
+CLEANFILES = cxpm.po
endif
case XpmSuccess:
return;
case XpmOpenFailed:
- /* L10N_Comments : Error produced when filename does not exist
+ /* L10N_Comments : Error produced when filename does not exist
or insufficient permissions to open (i.e. cxpm /no/such/file ) */
error = gettext("Cannot open file");
break;
break;
case XpmNoMemory:
/* L10N_Comments : Error produced when filename can be read, but
- is too big for memory
+ is too big for memory
(i.e. limit datasize 32 ; cxpm /usr/dt/backdrops/Crochet.pm ) */
error = gettext("Not enough memory");
break;
+++ /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
-libxpm (1:3.5.9-2slp2) unstable; urgency=low
-
- * change the Makefile for gcc 4.5
- * Git: 165.213.180.234:slp/pkgs/xorg/lib/libxpm
- * Tag: libxpm_3.5.9-2slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Wed, 30 Mar 2011 10:43:19 +0900
-
-libxpm (1:3.5.9-1slp2) unstable; urgency=low
-
- * [X11R7.6] upgrade package
- * Git: 165.213.180.234:slp/pkgs/xorg/lib/libxpm
- * Tag: libxpm_3.5.9-1slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Thu, 06 Jan 2011 10:43:46 +0900
-
-libxpm (1:3.5.8-5slp2) unstable; urgency=low
-
- * Add --as-needed
- * Git: 165.213.180.234:/git/slp/pkgs/xorg/lib/libxpm
- * Tag: libxpm_3.5.8-5slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Sat, 20 Nov 2010 15:24:32 +0900
-
-libxpm (1:3.5.8-4slp2) unstable; urgency=low
-
- * Update maintainer
- * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/X11
- * Tag: libxpm_3.5.8-4slp2
-
- -- Sung-Jin Park <sj76.park@samsung.com> Wed, 21 Apr 2010 13:58:48 +0900
-
-libxpm (1:3.5.8-3slp2) unstable; urgency=low
-
- * modify the package name
-
- -- SooChan Lim <sc1.lim@samsung.com> Thu, 25 Mar 2010 17:56:40 +0900
-
-libxpm (1:3.5.8-2) unstable; urgency=low
-
- * Import debian packages
- * Install .la files
-
- -- Sung-Jin Park <sj76.park@samsung.com> Mon, 07 Dec 2009 10:30:13 +0900
-
-libxpm (1:3.5.8-1) unstable; urgency=low
-
- [ Timo Aaltonen ]
- * New upstream release.
- * Bump the build-dep on xutils-dev (>= 1:7.5~1).
-
- [ Julien Cristau ]
- * Bump Standards-Version to 3.8.3.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 25 Nov 2009 19:31:08 +0100
-
-libxpm (1:3.5.7-2) unstable; urgency=low
-
- [ Julien Cristau ]
- * Drop -1 debian revisions from build-deps.
- * Bump Standards-Version to 3.7.3.
- * Drop the XS- prefix from Vcs-* control fields.
- * libxpm4{,-dbg} don't need to depend on x11-common.
- * Add xpm.PS.gz to the -dev package (closes: #525551).
- * Don't handle nostrip in DEB_BUILD_OPTIONS explicitly, dh_strip does the
- right thing.
- * Use filter instead of findstring to parse DEB_BUILD_OPTIONS in
- debian/rules.
- * Add README.source, bump Standards-Version to 3.8.1.
- * Run autoreconf at build time.
- * Allow parallel builds.
- * Move -dbg package to new debug section.
- * Don't pass -l and -L options to dh_shlibdeps, it seems to be useless
- nowadays.
-
- [ Brice Goglin ]
- * Add a link to www.X.org and a reference to the upstream module
- in the long description.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 10 Jun 2009 14:59:30 +0200
-
-libxpm (1:3.5.7-1) unstable; urgency=low
-
- * New upstream release.
- * Add the upstream URL to debian/copyright.
- * Use binary:Version instead of the deprecated Source-Version.
- * Add myself to uploaders, and remove Branden with his permission.
-
- -- Julien Cristau <jcristau@debian.org> Sat, 25 Aug 2007 10:50:50 +0200
-
-libxpm (1:3.5.6-3) unstable; urgency=low
-
- * Put binary packages in the correct sections.
- * Run dh_shlibdeps with -L libxpm4 -l debian/libxpm4/usr/lib so xpmutils
- gets a dependency on libxpm4. Fixes bug noticed by checklib.
-
- -- Julien Cristau <jcristau@debian.org> Mon, 21 May 2007 17:35:32 +0200
-
-libxpm (1:3.5.6-2) unstable; urgency=low
-
- * Upload to unstable.
- * Add XS-Vcs-Browser.
- * Remove Fabio from Uploaders, with his permission.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 11 Apr 2007 16:31:32 +0200
-
-libxpm (1:3.5.6-1) experimental; urgency=low
-
- * New upstream release.
- * Add XS-Vcs-Git header to debian/control.
- * Drop obsolete CVS information from the long descriptions.
- * Install the upstream changelog.
-
- -- Julien Cristau <jcristau@debian.org> Fri, 16 Feb 2007 16:24:44 +0100
-
-libxpm (1:3.5.5-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 17:12:38 -0400
-
-libxpm (1:3.5.5-1) experimental; urgency=low
-
- * New upstream release
- * Run dh_install with --list-missing
- * Bump debhelper compat to 5
- * Remove extra x11-common dep in the -dev package
- * Version x11-common pre-dep in the -dev package to use 1:7.0.0 to match the
- rest of Debian and shut lintian up
- * Add the sxpm and cxpm manpages to xpm-utils
-
- -- David Nusinow <dnusinow@debian.org> Mon, 3 Jul 2006 19:23:49 -0400
-
-libxpm (1:3.5.4.2-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:50:00 -0400
-
-libxpm (1:3.5.4.2-2) unstable; urgency=low
-
- * Upload to unstable
-
- -- David Nusinow <dnusinow@debian.org> Thu, 23 Mar 2006 22:45:13 -0500
-
-libxpm (1:3.5.4.2-1) experimental; urgency=low
-
- * First upload to Debian
-
- -- David Nusinow <dnusinow@debian.org> Thu, 29 Dec 2005 20:54:06 -0500
-
-libxpm (1:3.5.2-5) breezy; urgency=low
-
- * Add a Build-Depends on libxext-dev. For my next stunning move, I'll
- actually pay attention to what I'm doing.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Sat, 23 Jul 2005 01:33:31 +1000
-
-libxpm (1:3.5.2-4) breezy; urgency=low
-
- * Bump Build-Depends on libx11-dev, libxt-dev, libxext-dev and
- x11proto-core-dev to avoid _XOPEN_SOURCE.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Sat, 23 Jul 2005 00:24:13 +1000
-
-libxpm (1:3.5.2-3) breezy; urgency=low
-
- * Fix cat-walks-across-keyboard attack in debian/control.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Wed, 20 Jul 2005 21:18:57 +1000
-
-libxpm (1:3.5.2-2) breezy; urgency=low
-
- * blah blah xpmutils Replaces: xbase-clients (<< 6.8.2-38) blah blah
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Wed, 20 Jul 2005 18:45:27 +1000
-
-libxpm (1:3.5.2-1) breezy; urgency=low
-
- * First libxpm release.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Mon, 16 May 2005 22:10:17 +1000
+++ /dev/null
-Source: libxpm
-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>, DDavid Nusinow <dnusinow@debian.org>, Julien Cristau <jcristau@debian.org>
-Build-Depends: debhelper (>= 5.0.0), automake, libtool, xutils-dev (>= 1:7.5-1slp2), libx11-dev (>= 1:0.99.2), libxt-dev (>= 1:0.99.1-5), x11proto-core-dev (>= 7.0.1), libxext-dev (>= 1:0.99.1), pkg-config
-Standards-Version: 3.8.3
-Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxpm
-Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxpm.git
-
-Package: libxpm4
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: X11 pixmap library
- libXpm provides support and common operation for the XPM pixmap format, which
- is commonly used in legacy X applications. XPM is an extension of the
- monochrome XBM bitmap specificied in the X protocol.
- .
- 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/libXpm
-
-Package: libxpm4-dbg
-Section: debug
-Architecture: any
-Priority: extra
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxpm4 (= ${binary:Version})
-Description: X11 pixmap library (debug package)
- libXpm provides support and common operation for the XPM pixmap format, which
- is commonly used in legacy X applications. XPM is an extension of the
- monochrome XBM bitmap specificied in the X protocol.
- .
- This package contains the debug versions of the library found in libxpm4.
- 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/libXpm
-
-Package: libxpm-dev
-Section: libdevel
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libxpm4 (= ${binary:Version}), libx11-dev, x11proto-core-dev
-Pre-Depends: x11-common (>= 1:7.0.0)
-Description: X11 pixmap library (development headers)
- libXpm provides support and common operation for the XPM pixmap format, which
- is commonly used in legacy X applications. XPM is an extension of the
- monochrome XBM bitmap specificied in the X protocol.
- .
- This package contains the development headers for the library found in
- libxpm4. 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/libXpm
-
-Package: xpmutils
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Replaces: xbase-clients (<< 6.8.2-38)
-Description: X11 pixmap utilities
- This package provides two tools, cxpm and sxpm.
- .
- cxpm is a tool to check the integrity of an XPM file.
- .
- sxpm is a tool to view XPM files, and takes a number of options.
- .
- 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/libXpm
+++ /dev/null
-This package was downloaded from
-http://xorg.freedesktop.org/releases/individual/lib/
-
-Copyright (C) 1989-95 GROUPE BULL
-
-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
-GROUPE BULL 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 GROUPE BULL shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from GROUPE BULL.
+++ /dev/null
-usr/include/X11/*
-usr/lib/libXpm.a
-usr/lib/libXpm.so
-usr/lib/libXpm.la
-usr/lib/pkgconfig/xpm.pc
+++ /dev/null
-usr/lib/libXpm.so.4*
+++ /dev/null
-#!/usr/bin/make -f
-# debian/rules for the Debian libxpm 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
-
-# set this to the name of the main shlib's binary package
-PACKAGE = libxpm4
-
-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
-
-
-build: build-stamp
-build-stamp:
- dh_testdir
- autoreconf -vfi
- 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:
- 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 aclocal.m4 compile config.guess config.h.in config.sub configure
- rm -f INSTALL 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: build install
- dh_testdir
- dh_testroot
-
-# dh_installdocs
- dh_install --sourcedir=debian/tmp --list-missing
-# dh_installchangelogs ChangeLog
- dh_link
- dh_strip --dbg-package=$(PACKAGE)-dbg
- dh_compress
- dh_fixperms
- dh_makeshlibs
- dh_shlibdeps
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-# Build architecture-independent files here.
-binary-indep: build install
-# Nothing to do
-
-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/ libXpm-(.*)\.tar\.gz
+++ /dev/null
-usr/bin/cxpm
-usr/bin/sxpm
-usr/share/man/man1/sxpm.1
-usr/share/man/man1/cxpm.1
+++ /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.
--- xpm-A4.PS Thu Nov 21 09:27:28 1996
***************
*** 647,668 ****
- 0 ne /edown exch def
+ 0 ne /edown exch def
/yscale exch def
/xscale exch def
- FMLevel1 {
- manualfeed {setmanualfeed} if
-- /FMdicttop countdictstack 1 add def
-- /FMoptop count def
-- setpapername
-- manualfeed {true} {papersize} ifelse
-- {manualpapersize} {false} ifelse
-- {desperatepapersize} {false} ifelse
+- /FMdicttop countdictstack 1 add def
+- /FMoptop count def
+- setpapername
+- manualfeed {true} {papersize} ifelse
+- {manualpapersize} {false} ifelse
+- {desperatepapersize} {false} ifelse
- { (Can't select requested paper size for Frame print job!) FMFAILURE } if
- count -1 FMoptop {pop pop} for
-- countdictstack -1 FMdicttop {pop end} for
+- countdictstack -1 FMdicttop {pop end} for
- }
- {{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice}stopped
- { (Can't select requested paper size for Frame print job!) FMFAILURE } if
- {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
-- ifelse
-
+- ifelse
+
FMPColor {
currentcolorscreen
--- 647,652 ----
README.MSW hedu@cul-ipn.uni-kiel.de 5/94
The XPM library for MS-Windows
-
+
Motivated by the wxWindows library, which is a (freely available) toolkit
-for developing multi-platform, graphical applications from the same body
-of C++ code, I wanted to have XPM pixmaps for MS-windows. Instead of rewriting
+for developing multi-platform, graphical applications from the same body
+of C++ code, I wanted to have XPM pixmaps for MS-windows. Instead of rewriting
a XPM-parser I managed to port the XPM-library-code to MS-windows.
Thanks to Anaud Le Hors this became a part of the official XPM-library.
-Until now it's only used together with wxWindows. And even there it's more
-a kind of beta. But it should be possible to run it as a simple libxpm.a
+Until now it's only used together with wxWindows. And even there it's more
+a kind of beta. But it should be possible to run it as a simple libxpm.a
without wxWindows.
The key is a transformation of some X types plus some basic X functions.
With these defines and the according functions from simx.c you can call
XPM-functions the way it's done under X windows. It can look like this:
- ErrorStatus=XpmCreateImageFromData(&dc, data,
+ ErrorStatus=XpmCreateImageFromData(&dc, data,
&ximage,(XImage **)NULL, &xpmAttr);
ms_bitmap = ximage->bitmap;
// releases the malloc,but do not destroy the bitmap
XImageFree(ximage);
-
+
Supported functions are the Xpm*Image* but not the Xpm*Pixmap*.
DRAWBACKS:
(You might uncomment NEED_STRCASECMP in xpm.h if it's in your lib)
This should compile into libxpm.a. Good luck...
-FTP:
+FTP:
wxWindows is currently available from the Artificial Intelligence
Applications Institute (University of Edinburgh) by anonymous FTP.
skye.aiai.ed.ac.uk pub/wxwin/
wxxpm, XPM support for wxWindows, the latest version is available at
yoda.cul-ipn.uni-kiel.de pub/wxxpm/
and maybe in the contrib or tools of wxWindows
-
+
Please contact me if you have suggestions, comments or problems!
================================================================
* I've used the xpm package under NT 4.0 and MSVC++ 4.2.
- * I've made a big performance improvement in
+ * I've made a big performance improvement in
ParseAndPutPixels(), fixed creation of the mask in
SetColor() in create.c. I looked into XCreateImage()
in simx.c, but commented out my improvement for reasons
make depend (optional)
</pre>
<p>
- Then simply execute:
+ Then simply execute:
<pre>
make
</pre>
<p>
- which will build the XPM library and the sxpm application.
+ which will build the XPM library and the sxpm application.
Then do:
<pre>
make install
--- /dev/null
+#
+# 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.
+#
+
+appmandir = $(APP_MAN_DIR)
+appman_PRE = sxpm.man cxpm.man
+appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
+
+EXTRA_DIST = $(appman_PRE)
+CLEANFILES = $(appman_DATA)
+SUFFIXES = .$(APP_MAN_SUFFIX) .man
+
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+.man.$(APP_MAN_SUFFIX):
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
.\"in this Software without prior written authorization from Arnaud LE HORS.
.\"
.nr )S 12
-.TH CXPM 1
+.TH CXPM __appmansuffix__ __xorgversion__
.PD
.ad b
.SH NAME
cxpm \- Check an XPM (X PixMap) file - XPM 1, 2, or 3.
.SH SYNOPSIS
\fBcxpm\fR
-[\|\fIfilename\fP\|]
+[\|\fIfilename\fP\|]
.SH DESCRIPTION
.PP
The \fBcxpm\fP program can be used to check the format of any XPM (version 1, 2,
.\"in this Software without prior written authorization from GROUPE BULL.
.\"
.nr )S 12
-.TH SXPM 1
+.TH SXPM __appmansuffix__ __xorgversion__
.PD
.ad b
.SH NAME
sxpm \- Show an XPM (X PixMap) file and/or convert XPM 1 or 2 files to XPM 3.
.SH SYNOPSIS
\fBsxpm\fR
-[\|\fB-d\fR displayname\|]
-[\|\fB-g\fR geometry\|]
-[\|\fB-hints\fR\|]
-[\|\fB-icon\fR filename\|]
+[\|\fB-d\fR displayname\|]
+[\|\fB-g\fR geometry\|]
+[\|\fB-hints\fR\|]
+[\|\fB-icon\fR filename\|]
[\|\fB-plaid\| | \|\fRfilename\| | \|-\|]
-[\|\fB-o\fR filename\| | \|\fB-o\fR -\|]
-[\|\fB-pcmap\fR\|]
-[\|\fB-closecolors\fR\|]
-[\|\fB-nod\fR\|]
-[\|\fB-nom\fR\|]
-[\|\fB-mono | -grey4 | -grey | -color\fR\|]
-[\|\fB-sc\fR symbol color\|]
-[\|\fB-sp\fR symbol pixel\|]
-[\|\fB-cp\fR color pixel\|]
-[\|\fB-rgb\fR filename\|]
-[\|\fB-v\fR\|]
+[\|\fB-o\fR filename\| | \|\fB-o\fR -\|]
+[\|\fB-pcmap\fR\|]
+[\|\fB-closecolors\fR\|]
+[\|\fB-nod\fR\|]
+[\|\fB-nom\fR\|]
+[\|\fB-mono | -grey4 | -grey | -color\fR\|]
+[\|\fB-sc\fR symbol color\|]
+[\|\fB-sp\fR symbol pixel\|]
+[\|\fB-cp\fR color pixel\|]
+[\|\fB-rgb\fR filename\|]
+[\|\fB-v\fR\|]
.SH DESCRIPTION
.PP
The \fIsxpm\fP program can be used to view any XPM (version 1, 2, or 3) file
--- /dev/null
+Summary: X.Org X11 libXpm runtime library
+Name: libXpm
+Version: 3.5.10
+Release: 1
+License: MIT
+Group: System Environment/Libraries
+URL: http://www.x.org
+
+Source0: %{name}-%{version}.tar.gz
+
+BuildRequires: gettext
+BuildRequires: pkgconfig(xext) pkgconfig(xt) pkgconfig(xau)
+BuildRequires: pkgconfig(xorg-macros)
+BuildRequires: pkgconfig(xproto)
+
+%description
+X.Org X11 libXpm runtime library
+
+%package devel
+Summary: X.Org X11 libXpm development package
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Provides: libxpm-devel
+
+%description devel
+X.Org X11 libXpm development package
+
+%prep
+%setup -q
+
+%build
+%reconfigure --disable-static \
+ LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
+make %{?jobs:-j%jobs}
+
+%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
+
+%remove_docs
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING ChangeLog
+%{_libdir}/libXpm.so.4
+%{_libdir}/libXpm.so.4.11.0
+
+%files devel
+%defattr(-,root,root,-)
+%{_bindir}/cxpm
+%{_bindir}/sxpm
+%{_includedir}/X11/xpm.h
+%{_libdir}/libXpm.so
+%{_libdir}/pkgconfig/xpm.pc
+#%dir %{_mandir}/man1x
+#%{_mandir}/man1/*.1*
+#%{_mandir}/man1/*.1x*
+++ /dev/null
-
-Name: libxpm
-Summary: X.Org X11 libXpm runtime library
-Version: 3.5.9
-Release: 2.7
-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(xproto)
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(xext)
-BuildRequires: pkgconfig(xau)
-BuildRequires: pkgconfig(xt)
-BuildRequires: gettext-tools
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-
-%description
-Description: %{summary}
-
-
-%package devel
-Summary: Development components for the libXpm library
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-Description: %{summary}
-
-
-%prep
-%setup -q -n %{name}-%{version}
-
-
-%build
-export LDFLAGS+=" -Wl,--hash-style=both -Wl,--as-needed"
-%reconfigure
-
-# Call make instruction with smp support
-make %{?jobs:-j%jobs}
-
-%install
-rm -rf %{buildroot}
-%make_install
-
-
-%clean
-rm -rf %{buildroot}
-
-
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-
-
-%files
-%defattr(-,root,root,-)
-%doc AUTHORS COPYING ChangeLog
-%{_libdir}/libXpm.so.4
-%{_libdir}/libXpm.so.4.11.0
-
-
-%files devel
-%defattr(-,root,root,-)
-%{_bindir}/cxpm
-%{_bindir}/sxpm
-%dir %{_includedir}/X11
-%{_includedir}/X11/xpm.h
-%{_libdir}/libXpm.so
-%{_libdir}/pkgconfig/xpm.pc
-#%dir %{_mandir}/man1x
-%doc %{_mandir}/man1/*.1*
-
XpmColor **colorTable, **color;
unsigned int a;
- if (ncolors >= UINT_MAX / sizeof(XpmColor *))
+ if (ncolors >= UINT_MAX / sizeof(XpmColor *))
return XpmNoMemory;
colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
}
ErrorStatus = WriteColors(&ptr, &ptr_size, &used_size,
image->colorTable, image->ncolors, image->cpp);
-
+
if (ErrorStatus != XpmSuccess)
RETURN(ErrorStatus);
fclose(fp);
#ifdef VMS
/* VMS often stores text files in a variable-length record format,
- where there are two bytes of size followed by the record. fread
- converts this so it looks like a record followed by a newline.
- Unfortunately, the size reported by fstat() (and fseek/ftell)
- counts the two bytes for the record terminator, while fread()
- counts only one. So, fread() sees fewer bytes in the file (size
- minus # of records) and thus when asked to read the amount
+ where there are two bytes of size followed by the record. fread
+ converts this so it looks like a record followed by a newline.
+ Unfortunately, the size reported by fstat() (and fseek/ftell)
+ counts the two bytes for the record terminator, while fread()
+ counts only one. So, fread() sees fewer bytes in the file (size
+ minus # of records) and thus when asked to read the amount
returned by stat(), it fails.
The best solution, suggested by DEC, seems to consider the length
returned from fstat() as an upper bound and call fread() with
#endif
/* MS Windows define a function called WriteFile @#%#&!!! */
-LFUNC(xpmWriteFile, int, (FILE *file, XpmImage *image, char *name,
+LFUNC(xpmWriteFile, int, (FILE *file, XpmImage *image, const char *name,
XpmInfo *info));
LFUNC(WriteColors, void, (FILE *file, XpmColor *colors, unsigned int ncolors));
XpmInfo *info)
{
xpmData mdata;
- char *name, *dot, *s, new_name[BUFSIZ] = {0};
+ const char *name;
+ char *dot, *s, new_name[BUFSIZ] = {0};
int ErrorStatus;
/* open file to write */
name = new_name;
}
/* change '-' to '_' */
- s = name;
+ s = new_name;
while ((dot = strchr(s, '-'))) {
*dot = '_';
s = dot;
xpmWriteFile(
FILE *file,
XpmImage *image,
- char *name,
+ const char *name,
XpmInfo *info)
{
/* calculation variables */
unsigned int x, y, h;
h = height - 1;
- if (cpp != 0 && width >= (UINT_MAX - 3)/cpp)
- return XpmNoMemory;
+ if (cpp != 0 && width >= (UINT_MAX - 3)/cpp)
+ return XpmNoMemory;
p = buf = (char *) XpmMalloc(width * cpp + 3);
if (!buf)
return (XpmNoMemory);
#ifndef SIZE_MAX
# ifdef ULONG_MAX
# define SIZE_MAX ULONG_MAX
-# else
+# else
# define SIZE_MAX UINT_MAX
# endif
#endif
unsigned int line;
int CommentLength;
char Comment[XPMMAXCMTLEN];
- char *Bcmt, *Ecmt, Bos, Eos;
+ const char *Bcmt, *Ecmt;
+ char Bos, Eos;
int format; /* 1 if XPM1, 0 otherwise */
#ifdef CXPMPROG
int lineNum;
#define SPC ' '
typedef struct {
- char *type; /* key word */
- char *Bcmt; /* string beginning comments */
- char *Ecmt; /* string ending comments */
+ const char *type; /* key word */
+ const char *Bcmt; /* string beginning comments */
+ const char *Ecmt; /* string ending comments */
char Bos; /* character beginning strings */
char Eos; /* character ending strings */
- char *Strs; /* strings separator */
- char *Dec; /* data declaration string */
- char *Boa; /* string beginning assignment */
- char *Eoa; /* string ending assignment */
+ const char *Strs; /* strings separator */
+ const char *Dec; /* data declaration string */
+ const char *Boa; /* string beginning assignment */
+ const char *Eoa; /* string ending assignment */
} xpmDataType;
extern xpmDataType xpmDataTypes[];
/* Maximum number of rgb mnemonics allowed in rgb text file. */
#define MAX_RGBNAMES 1024
-extern char *xpmColorKeys[];
+extern const char *xpmColorKeys[];
#define TRANSPARENT_COLOR "None" /* this must be a string! */
#define ZINDEX1(x, y, img) ((y) * img->bytes_per_line) + ((x) >> 3)
#endif /* not AMIGA */
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
#ifdef NEED_STRDUP
FUNC(xpmstrdup, char *, (char *s1));
#else
#undef xpmstrdup
#define xpmstrdup strdup
+#include <string.h>
#endif
-#ifdef NEED_STRCASECMP
+#ifdef NEED_STRCASECMP
FUNC(xpmstrcasecmp, int, (char *s1, char *s2));
#else
#undef xpmstrcasecmp
#define xpmstrcasecmp strcasecmp
+#include <strings.h>
#endif
FUNC(xpmatoui, unsigned int,
unsigned int depth)
{
struct RastPort *rp;
-
+
rp = XpmMalloc (sizeof (*rp));
if (rp != NULL)
{
else
{
unsigned int i;
-
+
rp->BitMap = XpmMalloc (sizeof (*rp->BitMap));
if (rp->BitMap == NULL)
{
FreeRastPort (rp, width, height);
return NULL;
}
-
+
InitBitMap (rp->BitMap, depth, width, height);
for (i = 0; i < depth; ++i)
rp->BitMap->Planes[i] = NULL;
}
}
}
-
+
return rp;
}
else
{
unsigned int i;
-
+
for (i = 0; i < rp->BitMap->Depth; ++i)
{
if (rp->BitMap->Planes[i] != NULL)
unsigned int depth)
{
XImage *img;
-
+
img = XpmMalloc (sizeof (*img));
if (img != NULL)
{
return NULL;
}
}
-
+
return img;
}
FreeRastPort (ximage->rp, ximage->width, ximage->height);
XpmFree (ximage);
}
-
+
return Success;
}
{
SetAPen (ximage->rp, pixel);
WritePixel (ximage->rp, x, y);
-
+
return Success;
}
if (GfxBase->LibNode.lib_Version >= 39)
{
unsigned long r, g, b;
-
+
r = screen_in_out->red * 0x00010001;
g = screen_in_out->green * 0x00010001;
b = screen_in_out->blue * 0x00010001;
TAG_DONE);
if (screen_in_out->pixel == -1)
return False;
-
+
QueryColor (colormap, screen_in_out);
}
else
XColor nearest, trial;
long nearest_delta, trial_delta;
int num_cells, i;
-
+
num_cells = colormap->Count;
nearest.pixel = 0;
QueryColor (colormap, &nearest);
screen_in_out->green = nearest.green;
screen_in_out->blue = nearest.blue;
}
-
+
return True;
}
if (GfxBase->LibNode.lib_Version >= 39)
{
int i;
-
+
for (i = 0; i < npixels; i++)
ReleasePen (colormap, pixels[i]);
}
-
+
return Success;
}
XColor *exact_def_return)
{
int spec_length;
-
+
if (spec == 0)
return False;
-
+
spec_length = strlen(spec);
if (spec[0] == '#')
{
int hexlen;
char hexstr[10];
-
+
hexlen = (spec_length - 1) / 3;
if (hexlen < 1 || hexlen > 4 || hexlen * 3 != spec_length - 1)
return False;
-
+
hexstr[hexlen] = '\0';
strncpy (hexstr, spec + 1, hexlen);
exact_def_return->red = strtoul (hexstr, NULL, 16) << (16 - 4*hexlen);
exact_def_return->green = strtoul (hexstr, NULL, 16) << (16 - 4*hexlen);
strncpy (hexstr, spec + 1 + 2 * hexlen, hexlen);
exact_def_return->blue = strtoul (hexstr, NULL, 16) << (16 - 4*hexlen);
-
+
return True;
}
else
int items, red, green, blue;
char line[512], name[512];
Bool success = False;
-
+
rgbf = fopen ("LIBS:rgb.txt", "r");
if (rgbf == NULL)
return False;
-
+
while (fgets(line, sizeof (line), rgbf) && !success)
{
items = sscanf (line, "%d %d %d %[^\n]\n",
&red, &green, &blue, name);
if (items != 4)
continue;
-
+
if (red < 0 || red > 0xFF
|| green < 0 || green > 0xFF
|| blue < 0 || blue > 0xFF)
{
continue;
}
-
+
if (0 == xpmstrcasecmp (spec, name))
{
exact_def_return->red = red * 0x0101;
}
}
fclose (rgbf);
-
+
return success;
}
}
if (GfxBase->LibNode.lib_Version >= 39)
{
unsigned long rgb[3];
-
+
GetRGB32 (colormap, def_in_out->pixel, 1, rgb);
def_in_out->red = rgb[0] >> 16;
def_in_out->green = rgb[1] >> 16;
else
{
unsigned short rgb;
-
+
rgb = GetRGB4 (colormap, def_in_out->pixel);
def_in_out->red = ((rgb >> 8) & 0xF) * 0x1111;
def_in_out->green = ((rgb >> 4) & 0xF) * 0x1111;
def_in_out->blue = (rgb & 0xF) * 0x1111;
}
-
+
return Success;
}
int ncolors)
{
int i;
-
+
for (i = 0; i < ncolors; i++)
QueryColor (colormap, &defs_in_out[i]);
-
+
return Success;
}
} CloseColor;
static int
-closeness_cmp(Const void *a, Const void *b)
+closeness_cmp(const void *a, const void *b)
{
- CloseColor *x = (CloseColor *) a, *y = (CloseColor *) b;
+ const CloseColor *x = (const CloseColor *) a, *y = (const CloseColor *) b;
/* cast to int as qsort requires */
return (int) (x->closeness - y->closeness);
* occurred, so we try the next closest color, and so on, until no more
* colors are within closeness of the target. If we knew that the
* colormap had changed, we could skip this sequence.
- *
+ *
* If _none_ of the colors within closeness of the target can be allocated,
* then we can finally be pretty sure that the colormap has actually
* changed. In this case we try to allocate the original color (again),
* then try the closecolor stuff (again)...
- *
+ *
* In theory it would be possible for an infinite loop to occur if another
* process kept changing the colormap every time we sorted it, so we set
* a maximum on the number of iterations. After this many tries, we use
* XGrabServer() to ensure that the colormap remains unchanged.
- *
+ *
* This approach gives particularly bad worst case performance - as many as
* <MaximumIterations> colormap reads and sorts may be needed, and as
* many as <MaximumIterations> * <ColormapSize> attempted allocations
ErrorStatus = XpmSuccess;
- if (image->ncolors >= UINT_MAX / sizeof(Pixel))
+ if (image->ncolors >= UINT_MAX / sizeof(Pixel))
return (XpmNoMemory);
/* malloc pixels index tables */
LFUNC(_XReverse_Bytes, int, (register unsigned char *bpt, register unsigned int nb));
-static unsigned char Const _reverse_byte[0x100] = {
+static unsigned char const _reverse_byte[0x100] = {
0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
}
}
-static unsigned char Const _lomask[0x09] = {
+static unsigned char const _lomask[0x09] = {
0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};
-static unsigned char Const _himask[0x09] = {
+static unsigned char const _himask[0x09] = {
0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00};
static void
unsigned char *array;
XImage *tmp_img;
BOOL success = FALSE;
-
+
array = XpmMalloc ((((width+15)>>4)<<4)*sizeof (*array));
if (array != NULL)
{
}
XpmFree (array);
}
-
+
if (!success)
{
for (y = 0; y < height; ++y)
unsigned long pixel)
{
unsigned char *addr;
-
+
if(x < 0 || y < 0)
return 0;
unsigned long pixel)
{
unsigned char *addr;
-
+
if(x < 0 || y < 0)
return 0;
xpmGetCmt(data, &colors_cmt);
/* malloc pixels index tables */
- if (ncolors >= UINT_MAX / sizeof(Pixel))
+ if (ncolors >= UINT_MAX / sizeof(Pixel))
RETURN(XpmNoMemory);
image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * ncolors);
register char c;
register unsigned int n = 0;
unsigned int notend;
- char *s, *s2;
+ char *s;
+ const char *s2;
s = data->Comment;
*s = data->Bcmt[0];
register int c;
register unsigned int n = 0, a;
unsigned int notend;
- char *s, *s2;
+ char *s;
+ const char *s2;
s = data->Comment;
*s = data->Bcmt[0];
HASH_TABLE_GROWS
table->size = size;
table->limit = size / 3;
- if (size >= UINT_MAX / sizeof(*atomTable))
+ if (size >= UINT_MAX / sizeof(*atomTable))
return (XpmNoMemory);
atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable));
if (!atomTable)
unsigned int cpp, XpmColor *colorTable,
xpmHashTable *hashtable, unsigned int **pixels));
-char *xpmColorKeys[] = {
+const char *xpmColorKeys[] = {
"s", /* key #1: symbol */
"m", /* key #2: mono visual */
"g4", /* key #3: 4 grays visual */
unsigned int lastwaskey; /* key read */
char buf[BUFSIZ+1];
char curbuf[BUFSIZ]; /* current buffer */
- char **sptr, *s;
+ const char **sptr;
+ char *s;
XpmColor *color;
XpmColor *colorTable;
char **defaults;
unsigned int a, x, y;
if ((height > 0 && width >= UINT_MAX / height) ||
- width * height >= UINT_MAX / sizeof(unsigned int))
+ width * height >= UINT_MAX / sizeof(unsigned int))
return XpmNoMemory;
#ifndef FOR_MSW
iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
/* Loop reading each line in the file. */
n = 0;
- rgb = rgbn;
+ rgb = rgbn;
/* Quit if rgb text file has too many entries. */
while (fgets(line, sizeof(line), rgbf) && n < MAX_RGBNAMES) {
* minus \ and " for string compat
* and ? to avoid ANSI trigraphs. */
-static char *printable =
+static const char *printable =
" .XoO+@#$%&*=-;:>,<1234567890qwertyuipasdfghjklzxcvbnmMNBVCZ\
ASDFGHJKLPIUYTREWQ!~^/()_`'][{}|";
LFUNC(ScanTransparentColor, int, (XpmColor *color, unsigned int cpp,
XpmAttributes *attributes));
-LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors,
- unsigned int ncolors,
+LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors,
+ unsigned int ncolors,
Pixel *pixels, unsigned int mask,
unsigned int cpp, XpmAttributes *attributes));
if (!pmap.pixelindex)
RETURN(XpmNoMemory);
- if (pmap.size >= UINT_MAX / sizeof(Pixel))
+ if (pmap.size >= UINT_MAX / sizeof(Pixel))
RETURN(XpmNoMemory);
pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size);
/*
* scan the image data
- *
+ *
* In case depth is 1 or bits_per_pixel is 4, 6, 8, 24 or 32 use optimized
* functions, otherwise use slower but sure general one.
- *
+ *
*/
if (image) {
#ifndef FOR_MSW
xpmRgbName rgbn[MAX_RGBNAMES];
#else
- xpmRgbName *rgbn = NULL;
-#endif
+ xpmRgbName *rgbn = NULL;
+#endif
int rgbn_max = 0;
unsigned int i, j, c, i2;
XpmColor *color;
#ifndef FOR_MSW
sprintf(buf, "#%04X%04X%04X",
xcolor->red, xcolor->green, xcolor->blue);
-#else
+#else
sprintf(buf, "#%02x%02x%02x",
xcolor->red, xcolor->green, xcolor->blue);
-#endif
+#endif
color->c_color = (char *) xpmstrdup(buf);
}
if (!color->c_color) {
* level.
*/
-static unsigned long Const low_bits_table[] = {
+static unsigned long const low_bits_table[] = {
0x00000000, 0x00000001, 0x00000003, 0x00000007,
0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f,
0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff,
unsigned int x, y;
unsigned char *pixels;
XImage *tmp_img;
-
+
pixels = XpmMalloc ((((width+15)>>4)<<4)*sizeof (*pixels));
if (pixels == NULL)
return XpmNoMemory;
-
+
tmp_img = AllocXImage ((((width+15)>>4)<<4), 1, image->rp->BitMap->Depth);
if (tmp_img == NULL)
CLEAN_UP (XpmNoMemory);
-
+
iptr = pmap->pixelindex;
for (y = 0; y < height; ++y)
{
CLEAN_UP (XpmNoMemory);
}
}
-
+
CLEAN_UP (XpmSuccess);
}
/* I get only 1 plane but 8 bits per pixel,
so I think BITSPIXEL should be depth */
-int
+int
XDefaultDepth(Display *display, Screen *screen)
{
int d, b;
/* convert hex color names,
wrong digits (not a-f,A-F,0-9) are treated as zero */
-static int
+static int
hexCharToInt(c)
{
int r;
return (r);
}
-static int
+static int
rgbFromHex(char *hex, int *r, int *g, int *b)
{
int len;
}
/* Color related functions */
-int
+int
XParseColor(Display *d, Colormap *cmap, char *name, XColor *color)
{
int r, g, b; /* only 8 bit values used */
}
-int
+int
XAllocColor(Display *d, Colormap cmap, XColor *color)
{
/* colormap not used yet so color->pixel is the real COLORREF (RBG) and not an
index in some colormap as in X */
return (1);
}
-void
+void
XQueryColors(Display *display, Colormap *colormap,
XColor *xcolors, int ncolors)
{
}
return;
}
-int
+int
XFreeColors(Display *d, Colormap cmap,
unsigned long pixels[], int npixels, unsigned long planes)
{
}
-void
+void
XImageFree(XImage *img)
{
if (img) {
XpmFree(img);
}
}
-void
+void
XDestroyImage(XImage *img)
{
if (img) {
AM_CPPFLAGS = -I$(top_srcdir)/include
AM_CFLAGS = $(CWARNFLAGS) $(SXPM_CFLAGS)
-AM_LDFLAGS = $(XPM_LIBS)
sxpm_SOURCES = sxpm.c
LDADD = $(SXPM_LIBS) $(top_builddir)/src/libXpm.la
-# Man page
-appmandir = $(APP_MAN_DIR)
-
-appman_PRE = sxpm.man
-appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
-
-CLEANFILES = $(appman_DATA)
-
-SUFFIXES = .$(APP_MAN_SUFFIX) .man
-
-# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
-.man.$(APP_MAN_SUFFIX):
- $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
-
if USE_GETTEXT
noinst_DATA = sxpm.po
sxpm.po: $(sxpm_SOURCES:%=$(srcdir)/%)
$(AM_V_GEN)xgettext -c"L10N_Comments" -d sxpm -n $(sxpm_SOURCES:%=$(srcdir)/%)
-CLEANFILES += sxpm.po
+CLEANFILES = sxpm.po
endif
endif
EXTRA_DIST = \
plaid_ext.xpm \
plaid_mask.xpm \
- plaid.xpm \
- sxpm.man
+ plaid.xpm
/* XPM */
static char * plaid[] = {
-/* plaid pixmap
+/* plaid pixmap
* width height ncolors chars_per_pixel */
"22 22 4 2 ",
/* colors */
"+ c yellow m white s lines_in_dark ",
"x m black s dark_color ",
/* pixels */
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x Y x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
+"x x x x x x x x x x x x x x x x x x x x x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
" x x x Y x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
-" x x x x Y x x x ",
-"x x x x x x x x x x x x x x x x x x x x x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
" x x x x Y x x x "
} ;
/* XPM */
static char * plaid[] = {
-/* plaid pixmap
+/* plaid pixmap
* width height ncolors chars_per_pixel */
"22 22 4 2 XPMEXT",
/* colors */
"+ c yellow m white s lines_in_dark ",
"x m black s dark_color ",
/* pixels */
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x x x x x x x x x x x x x ",
-"x x x x x x x x x x x x + x x x x x ",
-" x x x x Y x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x x x x x x x x x x x x x ",
+"x x x x x x x x x x x x + x x x x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
+"x x x x x x x x x x x x x x x x x x x x x x ",
+" x x x x Y x x x ",
+" x x x Y x x ",
+" x x x x Y x x x ",
" x x x Y x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
-" x x x x Y x x x ",
-"x x x x x x x x x x x x x x x x x x x x x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
-" x x x x Y x x x ",
-" x x x Y x x ",
" x x x x Y x x x ",
"XPMEXT ext1 data1",
"XPMEXT ext2",
/* XPM */
static char * plaid[] = {
-/* plaid pixmap
+/* plaid pixmap
* width height ncolors chars_per_pixel */
"22 22 5 2",
/* colors */
"x m black s dark_color ",
" c none s mask ",
/* pixels */
-" x x x x x + x x x x x ",
-" . x x x x x x x x x x x ",
-" . x x x x x x + x x x x x ",
-" . x . x x x x x x x x x x x ",
-" . x . x x x x x x + x x x x x ",
-" Y Y Y Y Y + x + x + x + x + x + ",
-" x x . x . x x x x x x + x x x x x ",
-" . x . x . x . x x x x x x x x x x x ",
-" . x x x . x . x x x x x x + x x x x x ",
-" . x . x . x . x . x x x x x x x x x x x ",
-" . x . x x x . x . x x x x x x + x x x x x ",
-". . . . . x . . . . . x . x . x Y x . x . x ",
+" x x x x x + x x x x x ",
+" . x x x x x x x x x x x ",
+" . x x x x x x + x x x x x ",
+" . x . x x x x x x x x x x x ",
+" . x . x x x x x x + x x x x x ",
+" Y Y Y Y Y + x + x + x + x + x + ",
+" x x . x . x x x x x x + x x x x x ",
+" . x . x . x . x x x x x x x x x x x ",
+" . x x x . x . x x x x x x + x x x x x ",
+" . x . x . x . x . x x x x x x x x x x x ",
+" . x . x x x . x . x x x x x x + x x x x x ",
+". . . . . x . . . . . x . x . x Y x . x . x ",
+". . . . . x . . . . . . x . x . Y . x . x . ",
+". . . . . x . . . . . x . x . x Y x . x . x ",
+". . . . . x . . . . . . x . x . Y . x . x . ",
+". . . . . x . . . . . x . x . x Y x . x . x ",
+"x x x x x x x x x x x x x x x x x x x x x x ",
+". . . . . x . . . . . x . x . x Y x . x . x ",
+". . . . . x . . . . . . x . x . Y . x . x . ",
+". . . . . x . . . . . x . x . x Y x . x . x ",
". . . . . x . . . . . . x . x . Y . x . x . ",
-". . . . . x . . . . . x . x . x Y x . x . x ",
-". . . . . x . . . . . . x . x . Y . x . x . ",
-". . . . . x . . . . . x . x . x Y x . x . x ",
-"x x x x x x x x x x x x x x x x x x x x x x ",
-". . . . . x . . . . . x . x . x Y x . x . x ",
-". . . . . x . . . . . . x . x . Y . x . x . ",
-". . . . . x . . . . . x . x . x Y x . x . x ",
-". . . . . x . . . . . . x . x . Y . x . x . ",
". . . . . x . . . . . x . x . x Y x . x . x "
} ;
static Colormap colormap;
void Usage(void);
-void ErrorMessage(int ErrorStatus, char *tag);
+void ErrorMessage(int ErrorStatus, const char *tag);
void Punt(int i);
void VersionInfo(void);
void kinput(Widget widget, char *tag, XEvent *xe, Boolean *b);
unsigned int i, j;
for (i = 0; i < view.attributes.nextensions; i++) {
- /* L10N_Comments : Output when -v & file has extensions
+ /* L10N_Comments : Output when -v & file has extensions
%s is replaced by extension name */
fprintf(stderr, gettext("Xpm extension : %s\n"),
view.attributes.extensions[i].name);
void
Usage(void)
{
- /* L10N_Comments : Usage message (sxpm -h) in two parts.
+ /* L10N_Comments : Usage message (sxpm -h) in two parts.
In the first part %s is replaced by the command name. */
fprintf(stderr, gettext("\nUsage: %s [options...]\n"), command[0]);
fprintf(stderr, gettext("Where options are:\n\
void
ErrorMessage(
int ErrorStatus,
- char *tag)
+ const char *tag)
{
char *error = NULL;
char *warning = NULL;
case XpmSuccess:
return;
case XpmColorError:
-/* L10N_Comments : The following set of messages are classified as
+/* L10N_Comments : The following set of messages are classified as
either errors or warnings. Based on the class of message, different
- wrappers are selected at the end to state the message source & class.
+ wrappers are selected at the end to state the message source & class.
L10N_Comments : WARNING produced when filename can be read, but
contains an invalid color specification (need to create test case)*/
warning = gettext("Could not parse or alloc requested color");
break;
case XpmOpenFailed:
- /* L10N_Comments : ERROR produced when filename does not exist
+ /* L10N_Comments : ERROR produced when filename does not exist
or insufficient permissions to open (i.e. sxpm /no/such/file ) */
error = gettext("Cannot open file");
break;
break;
case XpmNoMemory:
/* L10N_Comments : ERROR produced when filename can be read, but
- is too big for memory
+ is too big for memory
(i.e. limit datasize 32 ; sxpm /usr/dt/backdrops/Crochet.pm ) */
error = gettext("Not enough memory");
break;